Re: [PATCH 3/8] drivers/media/video/hdpvr: introduce missing kfree
Hej, On Tue, Feb 02, 2010 at 01:19:15PM -0200, Mauro Carvalho Chehab wrote: Janne Grunau wrote: On Fri, Sep 11, 2009 at 06:21:35PM +0200, Julia Lawall wrote: Error handling code following a kzalloc should free the allocated data. Thanks for the report. I'll commit a different patch which adds the buffer to the buffer list as soon it is allocated. The hdpvr_free_buffers() in the error handling code will clean it up then. See below: Any news about this subject? The current upstream code still misses the change bellow it was fixed differently in cd0e280f kind regards, Janne -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 3/8] drivers/media/video/hdpvr: introduce missing kfree
Janne Grunau wrote: Hej, On Tue, Feb 02, 2010 at 01:19:15PM -0200, Mauro Carvalho Chehab wrote: Janne Grunau wrote: On Fri, Sep 11, 2009 at 06:21:35PM +0200, Julia Lawall wrote: Error handling code following a kzalloc should free the allocated data. Thanks for the report. I'll commit a different patch which adds the buffer to the buffer list as soon it is allocated. The hdpvr_free_buffers() in the error handling code will clean it up then. See below: Any news about this subject? The current upstream code still misses the change bellow it was fixed differently in cd0e280f Thanks! I'm removing it from my queue :) Now, the only hdpvr patch is this one: hdpvr-video: cleanup signedness http://patchwork.kernel.org/patch/74902 Cheers, Mauro -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 3/8] drivers/media/video/hdpvr: introduce missing kfree
Hi Janne, Janne Grunau wrote: On Fri, Sep 11, 2009 at 06:21:35PM +0200, Julia Lawall wrote: Error handling code following a kzalloc should free the allocated data. Thanks for the report. I'll commit a different patch which adds the buffer to the buffer list as soon it is allocated. The hdpvr_free_buffers() in the error handling code will clean it up then. See below: Any news about this subject? The current upstream code still misses the change bellow diff --git a/linux/drivers/media/video/hdpvr/hdpvr-video.c b/linux/drivers/media/video/hdpvr/hdpvr-video.c --- a/linux/drivers/media/video/hdpvr/hdpvr-video.c +++ b/linux/drivers/media/video/hdpvr/hdpvr-video.c @@ -134,6 +134,8 @@ v4l2_err(dev-v4l2_dev, cannot allocate buffer\n); goto exit; } + list_add_tail(buf-buff_list, dev-free_buff_list); + buf-dev = dev; urb = usb_alloc_urb(0, GFP_KERNEL); @@ -158,7 +160,6 @@ hdpvr_read_bulk_callback, buf); buf-status = BUFSTAT_AVAILABLE; - list_add_tail(buf-buff_list, dev-free_buff_list); } return 0; exit: -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- Cheers, Mauro -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 3/8] drivers/media/video/hdpvr: introduce missing kfree
On Fri, Sep 11, 2009 at 06:21:35PM +0200, Julia Lawall wrote: Error handling code following a kzalloc should free the allocated data. Thanks for the report. I'll commit a different patch which adds the buffer to the buffer list as soon it is allocated. The hdpvr_free_buffers() in the error handling code will clean it up then. See below: diff --git a/linux/drivers/media/video/hdpvr/hdpvr-video.c b/linux/drivers/media/video/hdpvr/hdpvr-video.c --- a/linux/drivers/media/video/hdpvr/hdpvr-video.c +++ b/linux/drivers/media/video/hdpvr/hdpvr-video.c @@ -134,6 +134,8 @@ v4l2_err(dev-v4l2_dev, cannot allocate buffer\n); goto exit; } + list_add_tail(buf-buff_list, dev-free_buff_list); + buf-dev = dev; urb = usb_alloc_urb(0, GFP_KERNEL); @@ -158,7 +160,6 @@ hdpvr_read_bulk_callback, buf); buf-status = BUFSTAT_AVAILABLE; - list_add_tail(buf-buff_list, dev-free_buff_list); } return 0; exit: -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 3/8] drivers/media/video/hdpvr: introduce missing kfree
From: Julia Lawall ju...@diku.dk Error handling code following a kzalloc should free the allocated data. The semantic match that finds the problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // smpl @r exists@ local idexpression x; statement S; expression E; identifier f,f1,l; position p1,p2; expression *ptr != NULL; @@ x...@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...); ... if (x == NULL) S ... when != x when != if (...) { +...x...+ } ( x-f1 = E | (x-f1 == NULL || ...) | f(...,x-f1,...) ) ... ( return \(0\|+...x...+\|ptr\); | ret...@p2 ...; ) @script:python@ p1 r.p1; p2 r.p2; @@ print * file: %s kmalloc %s return %s % (p1[0].file,p1[0].line,p2[0].line) // /smpl Signed-off-by: Julia Lawall ju...@diku.dk --- drivers/media/video/hdpvr/hdpvr-video.c|4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/drivers/media/video/hdpvr/hdpvr-video.c b/drivers/media/video/hdpvr/hdpvr-video.c index 2eb9dc2..0d17ce5 100644 --- a/drivers/media/video/hdpvr/hdpvr-video.c +++ b/drivers/media/video/hdpvr/hdpvr-video.c @@ -132,7 +132,7 @@ int hdpvr_alloc_buffers(struct hdpvr_device *dev, uint count) buf = kzalloc(sizeof(struct hdpvr_buffer), GFP_KERNEL); if (!buf) { v4l2_err(dev-v4l2_dev, cannot allocate buffer\n); - goto exit; + goto exit_nobuf; } buf-dev = dev; @@ -162,6 +162,8 @@ int hdpvr_alloc_buffers(struct hdpvr_device *dev, uint count) } return 0; exit: + kfree(buf); +exit_nobuf: hdpvr_free_buffers(dev); return retval; } -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html