diff options
author | Jesper Juhl <jj@chaosbits.net> | 2012-01-29 16:55:28 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-02-08 12:38:57 -0200 |
commit | 9fa728ea35501fb5cd56880839ad867265c61822 (patch) | |
tree | 1cd006be56640036e6db87da0d3052e47b08022b /drivers/staging/media | |
parent | 41292b16117bdd8e1321223b6a14e86aa1cb5fbb (diff) | |
download | talos-op-linux-9fa728ea35501fb5cd56880839ad867265c61822.tar.gz talos-op-linux-9fa728ea35501fb5cd56880839ad867265c61822.zip |
[media] easycap: Fix mem leak in easycap_usb_probe()
If allocating 'pdata_urb' fails, the function will return -ENOMEM
without freeing the memory allocated, just a few lines above, for
'purb' and will leak that memory when 'purb' goes out of scope.
This patch resolves the leak by freeing the allocated storage with
usb_free_urb() before the return.
Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/staging/media')
-rw-r--r-- | drivers/staging/media/easycap/easycap_main.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/staging/media/easycap/easycap_main.c b/drivers/staging/media/easycap/easycap_main.c index 8ff5f38ea196..3d439b790cc6 100644 --- a/drivers/staging/media/easycap/easycap_main.c +++ b/drivers/staging/media/easycap/easycap_main.c @@ -3825,6 +3825,7 @@ static int easycap_usb_probe(struct usb_interface *intf, /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ pdata_urb = kzalloc(sizeof(struct data_urb), GFP_KERNEL); if (!pdata_urb) { + usb_free_urb(purb); SAM("ERROR: Could not allocate struct data_urb.\n"); return -ENOMEM; } |