From: Johannes Weiner Date: Tue, 10 Mar 2009 21:43:56 +0000 (+0100) Subject: HID: fix incorrect free in hiddev X-Git-Tag: upstream/snapshot3+hdmi~19965^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=48e7a3c95c9f98c2cb6f894820e3cc2d0448e92f;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git HID: fix incorrect free in hiddev If hiddev_open() fails, it wrongly frees the shared hiddev structure kept in hiddev_table instead of the hiddev_list structure allocated for the opened file descriptor. Existing references to this structure will then accessed free memory. This was introduced by 079034073 "HID: hiddev cleanup -- handle all error conditions properly". Signed-off-by: Johannes Weiner Cc: Oliver Neukum Cc: Jiri Kosina Signed-off-by: Andrew Morton Signed-off-by: Jiri Kosina --- diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c index 4940e4d..00ea1ed 100644 --- a/drivers/hid/usbhid/hiddev.c +++ b/drivers/hid/usbhid/hiddev.c @@ -306,7 +306,7 @@ static int hiddev_open(struct inode *inode, struct file *file) return 0; bail: file->private_data = NULL; - kfree(list->hiddev); + kfree(list); return res; }