diff options
author | Frank Praznik <frank.praznik@oh.rr.com> | 2015-05-06 02:47:28 +0200 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2015-05-07 10:41:34 +0200 |
commit | 131a8a9a56f16d8d237b39a8677ccee44a355392 (patch) | |
tree | 999270eca3d62fc6abd3e81100c0e7347e17d76e /drivers/hid | |
parent | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jik... (diff) | |
download | linux-131a8a9a56f16d8d237b39a8677ccee44a355392.tar.xz linux-131a8a9a56f16d8d237b39a8677ccee44a355392.zip |
HID: sony: Prevent the freeing of an unitialized ida value
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>
Diffstat (limited to 'drivers/hid')
-rw-r--r-- | drivers/hid/hid-sony.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c index 6ca96cebb44c..4c521b2c6a82 100644 --- a/drivers/hid/hid-sony.c +++ b/drivers/hid/hid-sony.c @@ -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; } |