From: Amit Choudhary Free previously allocated memory (in array elements) if kmalloc() returns NULL in submit_urbs(). Signed-off-by: Amit Choudhary Cc: Mauro Carvalho Chehab Signed-off-by: Andrew Morton --- drivers/media/video/cpia2/cpia2_usb.c | 4 ++++ 1 files changed, 4 insertions(+) diff -puN drivers/media/video/cpia2/cpia2_usb.c~drivers-media-video-cpia2-cpia2_usbc-free drivers/media/video/cpia2/cpia2_usb.c --- a/drivers/media/video/cpia2/cpia2_usb.c~drivers-media-video-cpia2-cpia2_usbc-free +++ a/drivers/media/video/cpia2/cpia2_usb.c @@ -640,6 +640,10 @@ static int submit_urbs(struct camera_dat cam->sbuf[i].data = kmalloc(FRAMES_PER_DESC * FRAME_SIZE_PER_DESC, GFP_KERNEL); if (!cam->sbuf[i].data) { + while (--i >= 0) { + kfree(cam->sbuf[i].data); + cam->sbuf[i].data = NULL; + } return -ENOMEM; } } _