summaryrefslogtreecommitdiff
path: root/drivers/media/video/cpia2
diff options
context:
space:
mode:
authorDouglas Schilling Landgraf <dougsland@linuxtv.org>2008-09-04 11:21:03 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-09-29 08:26:10 -0300
commitbeeb82becc5cdd88766b4ec21f13952e2af03324 (patch)
tree356cafa4213910b75c3477bdc8c2d5dd6d54fe43 /drivers/media/video/cpia2
parentff9b3e430b04e00dd2d29a26ae9438d7044a51db (diff)
downloadlwn-beeb82becc5cdd88766b4ec21f13952e2af03324.tar.gz
lwn-beeb82becc5cdd88766b4ec21f13952e2af03324.zip
V4L/DVB (8885): cpia2_usb: fix memory leak
Free allocated memory Signed-off-by: Douglas Schilling Landgraf <dougsland@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cpia2')
-rw-r--r--drivers/media/video/cpia2/cpia2_usb.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/video/cpia2/cpia2_usb.c b/drivers/media/video/cpia2/cpia2_usb.c
index a4574740350d..a8a199047cbd 100644
--- a/drivers/media/video/cpia2/cpia2_usb.c
+++ b/drivers/media/video/cpia2/cpia2_usb.c
@@ -632,7 +632,7 @@ int cpia2_usb_transfer_cmd(struct camera_data *cam,
static int submit_urbs(struct camera_data *cam)
{
struct urb *urb;
- int fx, err, i;
+ int fx, err, i, j;
for(i=0; i<NUM_SBUF; ++i) {
if (cam->sbuf[i].data)
@@ -657,6 +657,9 @@ static int submit_urbs(struct camera_data *cam)
}
urb = usb_alloc_urb(FRAMES_PER_DESC, GFP_KERNEL);
if (!urb) {
+ ERR("%s: usb_alloc_urb error!\n", __func__);
+ for (j = 0; j < i; j++)
+ usb_free_urb(cam->sbuf[j].urb);
return -ENOMEM;
}