From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933001AbWL0RLX (ORCPT ); Wed, 27 Dec 2006 12:11:23 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932991AbWL0RKx (ORCPT ); Wed, 27 Dec 2006 12:10:53 -0500 Received: from pentafluge.infradead.org ([213.146.154.40]:41425 "EHLO pentafluge.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932993AbWL0RKH (ORCPT ); Wed, 27 Dec 2006 12:10:07 -0500 From: Mauro Carvalho Chehab To: LKML Cc: V4L-DVB Maintainers , Amit Choudhary , Andrew Morton , Mauro Carvalho Chehab Subject: [PATCH 18/28] V4L/DVB (4990): Cpia2/cpia2_usb.c: fix error-path leak Date: Wed, 27 Dec 2006 14:57:30 -0200 Message-id: <20061227165730.PS80878600018@infradead.org> In-Reply-To: <20061227165016.PS89442900000@infradead.org> References: <20061227165016.PS89442900000@infradead.org> Mime-Version: 1.0 X-Mailer: Evolution 2.8.0-1mdv2007.0 Content-Transfer-Encoding: 7bit X-Bad-Reply: References and In-Reply-To but no 'Re:' in Subject. X-SRS-Rewrite: SMTP reverse-path rewritten from by pentafluge.infradead.org See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org From: Amit Choudhary Free previously allocated memory (in array elements) if kmalloc() returns NULL in submit_urbs(). Signed-off-by: Amit Choudhary Signed-off-by: Andrew Morton Signed-off-by: Mauro Carvalho Chehab --- drivers/media/video/cpia2/cpia2_usb.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/drivers/media/video/cpia2/cpia2_usb.c b/drivers/media/video/cpia2/cpia2_usb.c index 28dc6a1..d8e9298 100644 --- a/drivers/media/video/cpia2/cpia2_usb.c +++ b/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; } }