greybus: connection: prevent oops for protocol_id sysfs file
authorGreg Kroah-Hartman <gregkh@google.com>
Thu, 23 Jul 2015 01:21:04 +0000 (18:21 -0700)
committerGreg Kroah-Hartman <gregkh@google.com>
Thu, 23 Jul 2015 19:52:20 +0000 (12:52 -0700)
If we don't have a protocol assigned to a connection, don't oops when
trying to read the "protocol_id" sysfs file.

Fixes Jira SW-968.

Reported-by: Alexandre Bailon <abailon@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/staging/greybus/connection.c

index 4663397cb7e37fb7e2b984a6e07ba7610efe6095..cac04dd711301ada184d8a6ee241283338dab273 100644 (file)
@@ -80,7 +80,10 @@ protocol_id_show(struct device *dev, struct device_attribute *attr, char *buf)
 {
        struct gb_connection *connection = to_gb_connection(dev);
 
-       return sprintf(buf, "%d\n", connection->protocol->id);
+       if (connection->protocol)
+               return sprintf(buf, "%d\n", connection->protocol->id);
+       else
+               return -EINVAL;
 }
 static DEVICE_ATTR_RO(protocol_id);