HID: thingm: set the proper error code before leaving
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>
Tue, 2 Sep 2014 19:50:43 +0000 (15:50 -0400)
committerJiri Kosina <jkosina@suse.cz>
Wed, 3 Sep 2014 21:46:09 +0000 (23:46 +0200)
In case of an unsupported firmware, the driver bails out without setting
the LEDs interfaces, but forget to set the proper error code.
err is then still equal to 0 and the hid subsytem consider the device
to be in perfect shape.
When removing it, thingm_remove() tries to unbind the rgb LEDs which
has not been created, leading to a segfault.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-thingm.c

index 134be89b15eadd3af92f81ac55e8d4d77790529e..f91f97144ace782e301fd121c4a26f9f0c8fa1ce 100644 (file)
@@ -250,6 +250,7 @@ static int thingm_probe(struct hid_device *hdev, const struct hid_device_id *id)
 
        if (!tdev->fwinfo) {
                hid_err(hdev, "unsupported firmware %c\n", tdev->version.major);
+               err = -ENODEV;
                goto stop;
        }