HID: hidraw: free list for all error in hidraw_open
authorAmit Nagal <helloin.amit@gmail.com>
Wed, 7 Sep 2011 11:48:47 +0000 (13:48 +0200)
committerJiri Kosina <jkosina@suse.cz>
Wed, 7 Sep 2011 11:48:47 +0000 (13:48 +0200)
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>
drivers/hid/hidraw.c

index c79578b5a788f48ba74ec9aa2df5c82b8385b882..c841a8e77339b381bf8e0693c9779201377dfa06 100644 (file)
@@ -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;
 
 }