HID: sony: Prevent the freeing of an unitialized ida value
authorFrank Praznik <frank.praznik@oh.rr.com>
Wed, 6 May 2015 00:47:28 +0000 (20:47 -0400)
committerJiri Kosina <jkosina@suse.cz>
Thu, 7 May 2015 08:41:34 +0000 (10:41 +0200)
sony_allocate_output_report() was being called before sony_set_device_id()
which meant that an unallocated ida value was was freed if the output
report allocation failed and the probe function jumped to err_stop.

Do the device ID allocation before the output report allocation to avoid
freeing an unallocated value in case of a failure.

Signed-off-by: Frank Praznik <frank.praznik@oh.rr.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-sony.c

index 6ca96cebb44ce1e01290ae7d718ad97c44d9998b..4c521b2c6a829ffd841e473bdc3c0b11407a7e54 100644 (file)
@@ -1993,15 +1993,15 @@ static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id)
                return ret;
        }
 
-       ret = sony_allocate_output_report(sc);
+       ret = sony_set_device_id(sc);
        if (ret < 0) {
-               hid_err(hdev, "failed to allocate the output report buffer\n");
+               hid_err(hdev, "failed to allocate the device id\n");
                goto err_stop;
        }
 
-       ret = sony_set_device_id(sc);
+       ret = sony_allocate_output_report(sc);
        if (ret < 0) {
-               hid_err(hdev, "failed to allocate the device id\n");
+               hid_err(hdev, "failed to allocate the output report buffer\n");
                goto err_stop;
        }
 
This page took 0.026539 seconds and 5 git commands to generate.