aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/misc/iowarrior.c
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.de>2007-06-12 09:36:07 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-06-26 02:38:05 -0400
commitfc0f8fc9be654bbff08ede04a49bd8f9805b9e13 (patch)
treeb17852dae108fdf0ee9ec4d792a3ceefd40a1261 /drivers/usb/misc/iowarrior.c
parent944dc184f6fe0dc63633099ba87cb75fe4ee0c51 (diff)
USB: memory leak in iowarrior.c
this is a classical memory leak in the ioctl handler. The buffer is simply never freed. This fixes it the obvious way. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/misc/iowarrior.c')
-rw-r--r--drivers/usb/misc/iowarrior.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c
index fc51207b71b8..3bb33f7bfa36 100644
--- a/drivers/usb/misc/iowarrior.c
+++ b/drivers/usb/misc/iowarrior.c
@@ -495,8 +495,8 @@ static int iowarrior_ioctl(struct inode *inode, struct file *file,
495 495
496 /* verify that the device wasn't unplugged */ 496 /* verify that the device wasn't unplugged */
497 if (!dev->present) { 497 if (!dev->present) {
498 mutex_unlock(&dev->mutex); 498 retval = -ENODEV;
499 return -ENODEV; 499 goto error_out;
500 } 500 }
501 501
502 dbg("%s - minor %d, cmd 0x%.4x, arg %ld", __func__, dev->minor, cmd, 502 dbg("%s - minor %d, cmd 0x%.4x, arg %ld", __func__, dev->minor, cmd,
@@ -579,9 +579,10 @@ static int iowarrior_ioctl(struct inode *inode, struct file *file,
579 retval = -ENOTTY; 579 retval = -ENOTTY;
580 break; 580 break;
581 } 581 }
582 582error_out:
583 /* unlock the device */ 583 /* unlock the device */
584 mutex_unlock(&dev->mutex); 584 mutex_unlock(&dev->mutex);
585 kfree(buffer);
585 return retval; 586 return retval;
586} 587}
587 588