isight_firmware: fix a leak and double kfree()
authorParag Warudkar <parag.warudkar@gmail.com>
Tue, 12 Aug 2008 22:08:46 +0000 (15:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 12 Aug 2008 23:07:28 +0000 (16:07 -0700)
Signed-off-by: Parag Warudkar <parag.warudkar@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/usb/misc/isight_firmware.c

index d94aa7387608fde3db0e3690eea050980bc0b5df..b897f6554ecdd0e282fd4d5b0dfed072f041f3b7 100644 (file)
@@ -48,7 +48,8 @@ static int isight_firmware_load(struct usb_interface *intf,
 
        if (request_firmware(&firmware, "isight.fw", &dev->dev) != 0) {
                printk(KERN_ERR "Unable to load isight firmware\n");
-               return -ENODEV;
+               ret = -ENODEV;
+               goto out;
        }
 
        ptr = firmware->data;
@@ -91,7 +92,6 @@ static int isight_firmware_load(struct usb_interface *intf,
                             buf, llen, 300) != llen) {
                                printk(KERN_ERR
                                       "Failed to load isight firmware\n");
-                               kfree(buf);
                                ret = -ENODEV;
                                goto out;
                        }