summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmit Nagal <helloin.amit@gmail.com>2011-09-07 13:48:47 +0200
committerJiri Kosina <jkosina@suse.cz>2011-09-07 13:48:47 +0200
commit1a8962317f494ad858971fc08ba035eff658a5c9 (patch)
tree67ef5b407e8fb04f99e05cb8af63fdeda4d4e803
parentHID: unlock on error path in hid_device_probe() (diff)
downloadlinux-1a8962317f494ad858971fc08ba035eff658a5c9.tar.xz
linux-1a8962317f494ad858971fc08ba035eff658a5c9.zip
HID: hidraw: free list for all error in hidraw_open
In function hidraw_open struct hidraw_list *list should be freed for all error conditions. Signed-off-by: Amit Nagal <helloin.amit@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--drivers/hid/hidraw.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c
index c79578b5a788..c841a8e77339 100644
--- a/drivers/hid/hidraw.c
+++ b/drivers/hid/hidraw.c
@@ -259,7 +259,6 @@ static int hidraw_open(struct inode *inode, struct file *file)
mutex_lock(&minors_lock);
if (!hidraw_table[minor]) {
- kfree(list);
err = -ENODEV;
goto out_unlock;
}
@@ -285,6 +284,8 @@ static int hidraw_open(struct inode *inode, struct file *file)
out_unlock:
mutex_unlock(&minors_lock);
out:
+ if (err < 0)
+ kfree(list);
return err;
}