From: Ben Dooks <ben@simtec.co.uk>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 01/12] s3c-fb: Fix various null references on framebuffer
Date: Fri, 02 Jul 2010 09:51:30 +0000 [thread overview]
Message-ID: <4C2DB6A2.2040005@simtec.co.uk> (raw)
In-Reply-To: <1277712538-23188-2-git-send-email-p.osciak@samsung.com>
On 28/06/10 09:08, Pawel Osciak wrote:
> The following problems were found in the above situation:
>
> sfb->windows[win] was being assigned at the end of s3c_fb_probe_win only.
> This resulted in passing a NULL to s3c_fb_release_win if probe_win returned
> early and a memory leak.
>
> dma_free_writecombine does not allow its third argument to be NULL.
>
> fb_dealloc_cmap does not verify whether its argument is not NULL.
>
> Signed-off-by: Pawel Osciak <p.osciak@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> drivers/video/s3c-fb.c | 8 +++++---
> 1 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
> index b00c064..d998324 100644
> --- a/drivers/video/s3c-fb.c
> +++ b/drivers/video/s3c-fb.c
> @@ -804,7 +804,8 @@ static void s3c_fb_free_memory(struct s3c_fb *sfb, struct s3c_fb_win *win)
> {
> struct fb_info *fbi = win->fbinfo;
>
> - dma_free_writecombine(sfb->dev, PAGE_ALIGN(fbi->fix.smem_len),
> + if (fbi->screen_base)
> + dma_free_writecombine(sfb->dev, PAGE_ALIGN(fbi->fix.smem_len),
> fbi->screen_base, fbi->fix.smem_start);
> }
>
> @@ -819,7 +820,8 @@ static void s3c_fb_release_win(struct s3c_fb *sfb, struct s3c_fb_win *win)
> {
> if (win->fbinfo) {
> unregister_framebuffer(win->fbinfo);
> - fb_dealloc_cmap(&win->fbinfo->cmap);
> + if (&win->fbinfo->cmap)
> + fb_dealloc_cmap(&win->fbinfo->cmap);
did you really mean &win->fbinfo->cmap? surely that will end up
always evaluating to true?
> s3c_fb_free_memory(sfb, win);
> framebuffer_release(win->fbinfo);
> }
> @@ -865,6 +867,7 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
> WARN_ON(windata->win_mode.yres = 0);
>
> win = fbinfo->par;
> + *res = win;
> var = &fbinfo->var;
> win->variant = *variant;
> win->fbinfo = fbinfo;
> @@ -939,7 +942,6 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
> return ret;
> }
>
> - *res = win;
> dev_info(sfb->dev, "window %d: fb %s\n", win_no, fbinfo->fix.id);
>
> return 0;
WARNING: multiple messages have this Message-ID (diff)
From: Ben Dooks <ben@simtec.co.uk>
To: Pawel Osciak <p.osciak@samsung.com>
Cc: linux-fbdev@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
kyungmin.park@samsung.com, ben-linux@fluff.org,
linux-arm-kernel@lists.infradead.org, m.szyprowski@samsung.com
Subject: Re: [PATCH v3 01/12] s3c-fb: Fix various null references on framebuffer memory alloc failure
Date: Fri, 02 Jul 2010 10:51:30 +0100 [thread overview]
Message-ID: <4C2DB6A2.2040005@simtec.co.uk> (raw)
In-Reply-To: <1277712538-23188-2-git-send-email-p.osciak@samsung.com>
On 28/06/10 09:08, Pawel Osciak wrote:
> The following problems were found in the above situation:
>
> sfb->windows[win] was being assigned at the end of s3c_fb_probe_win only.
> This resulted in passing a NULL to s3c_fb_release_win if probe_win returned
> early and a memory leak.
>
> dma_free_writecombine does not allow its third argument to be NULL.
>
> fb_dealloc_cmap does not verify whether its argument is not NULL.
>
> Signed-off-by: Pawel Osciak <p.osciak@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> drivers/video/s3c-fb.c | 8 +++++---
> 1 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
> index b00c064..d998324 100644
> --- a/drivers/video/s3c-fb.c
> +++ b/drivers/video/s3c-fb.c
> @@ -804,7 +804,8 @@ static void s3c_fb_free_memory(struct s3c_fb *sfb, struct s3c_fb_win *win)
> {
> struct fb_info *fbi = win->fbinfo;
>
> - dma_free_writecombine(sfb->dev, PAGE_ALIGN(fbi->fix.smem_len),
> + if (fbi->screen_base)
> + dma_free_writecombine(sfb->dev, PAGE_ALIGN(fbi->fix.smem_len),
> fbi->screen_base, fbi->fix.smem_start);
> }
>
> @@ -819,7 +820,8 @@ static void s3c_fb_release_win(struct s3c_fb *sfb, struct s3c_fb_win *win)
> {
> if (win->fbinfo) {
> unregister_framebuffer(win->fbinfo);
> - fb_dealloc_cmap(&win->fbinfo->cmap);
> + if (&win->fbinfo->cmap)
> + fb_dealloc_cmap(&win->fbinfo->cmap);
did you really mean &win->fbinfo->cmap? surely that will end up
always evaluating to true?
> s3c_fb_free_memory(sfb, win);
> framebuffer_release(win->fbinfo);
> }
> @@ -865,6 +867,7 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
> WARN_ON(windata->win_mode.yres == 0);
>
> win = fbinfo->par;
> + *res = win;
> var = &fbinfo->var;
> win->variant = *variant;
> win->fbinfo = fbinfo;
> @@ -939,7 +942,6 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
> return ret;
> }
>
> - *res = win;
> dev_info(sfb->dev, "window %d: fb %s\n", win_no, fbinfo->fix.id);
>
> return 0;
WARNING: multiple messages have this Message-ID (diff)
From: ben@simtec.co.uk (Ben Dooks)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 01/12] s3c-fb: Fix various null references on framebuffer memory alloc failure
Date: Fri, 02 Jul 2010 10:51:30 +0100 [thread overview]
Message-ID: <4C2DB6A2.2040005@simtec.co.uk> (raw)
In-Reply-To: <1277712538-23188-2-git-send-email-p.osciak@samsung.com>
On 28/06/10 09:08, Pawel Osciak wrote:
> The following problems were found in the above situation:
>
> sfb->windows[win] was being assigned at the end of s3c_fb_probe_win only.
> This resulted in passing a NULL to s3c_fb_release_win if probe_win returned
> early and a memory leak.
>
> dma_free_writecombine does not allow its third argument to be NULL.
>
> fb_dealloc_cmap does not verify whether its argument is not NULL.
>
> Signed-off-by: Pawel Osciak <p.osciak@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> drivers/video/s3c-fb.c | 8 +++++---
> 1 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c
> index b00c064..d998324 100644
> --- a/drivers/video/s3c-fb.c
> +++ b/drivers/video/s3c-fb.c
> @@ -804,7 +804,8 @@ static void s3c_fb_free_memory(struct s3c_fb *sfb, struct s3c_fb_win *win)
> {
> struct fb_info *fbi = win->fbinfo;
>
> - dma_free_writecombine(sfb->dev, PAGE_ALIGN(fbi->fix.smem_len),
> + if (fbi->screen_base)
> + dma_free_writecombine(sfb->dev, PAGE_ALIGN(fbi->fix.smem_len),
> fbi->screen_base, fbi->fix.smem_start);
> }
>
> @@ -819,7 +820,8 @@ static void s3c_fb_release_win(struct s3c_fb *sfb, struct s3c_fb_win *win)
> {
> if (win->fbinfo) {
> unregister_framebuffer(win->fbinfo);
> - fb_dealloc_cmap(&win->fbinfo->cmap);
> + if (&win->fbinfo->cmap)
> + fb_dealloc_cmap(&win->fbinfo->cmap);
did you really mean &win->fbinfo->cmap? surely that will end up
always evaluating to true?
> s3c_fb_free_memory(sfb, win);
> framebuffer_release(win->fbinfo);
> }
> @@ -865,6 +867,7 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
> WARN_ON(windata->win_mode.yres == 0);
>
> win = fbinfo->par;
> + *res = win;
> var = &fbinfo->var;
> win->variant = *variant;
> win->fbinfo = fbinfo;
> @@ -939,7 +942,6 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
> return ret;
> }
>
> - *res = win;
> dev_info(sfb->dev, "window %d: fb %s\n", win_no, fbinfo->fix.id);
>
> return 0;
next prev parent reply other threads:[~2010-07-02 9:51 UTC|newest]
Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-28 8:08 [PATCH v3 0/12] Various s3c-fb updates Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 01/12] s3c-fb: Fix various null references on framebuffer Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 01/12] s3c-fb: Fix various null references on framebuffer memory alloc failure Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-07-02 9:51 ` Ben Dooks [this message]
2010-07-02 9:51 ` Ben Dooks
2010-07-02 9:51 ` Ben Dooks
2010-07-02 12:56 ` [PATCH v3 01/12] s3c-fb: Fix various null references on Pawel Osciak
2010-07-02 12:56 ` [PATCH v3 01/12] s3c-fb: Fix various null references on framebuffer memory alloc failure Pawel Osciak
2010-07-02 12:56 ` Pawel Osciak
2010-07-06 16:16 ` [PATCH v3 01/12] s3c-fb: Fix various null references on framebuffer James Simmons
2010-07-06 16:16 ` [PATCH v3 01/12] s3c-fb: Fix various null references on framebuffer memory alloc failure James Simmons
2010-07-06 16:16 ` James Simmons
2010-06-28 8:08 ` [PATCH v3 02/12] s3c-fb: Correct FRAMESEL1 bitfield defines for Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 02/12] s3c-fb: Correct FRAMESEL1 bitfield defines for VIDINTCON0 register Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-07-02 10:51 ` [PATCH v3 02/12] s3c-fb: Correct FRAMESEL1 bitfield defines for Ben Dooks
2010-07-02 10:51 ` [PATCH v3 02/12] s3c-fb: Correct FRAMESEL1 bitfield defines for VIDINTCON0 register Ben Dooks
2010-07-02 10:51 ` Ben Dooks
2010-06-28 8:08 ` [PATCH v3 03/12] s3c-fb: Separate S5PC100 and S5PV210 framebuffer Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 03/12] s3c-fb: Separate S5PC100 and S5PV210 framebuffer driver data structures Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-07-02 11:12 ` [PATCH v3 03/12] s3c-fb: Separate S5PC100 and S5PV210 framebuffer Ben Dooks
2010-07-02 11:12 ` [PATCH v3 03/12] s3c-fb: Separate S5PC100 and S5PV210 framebuffer driver data structures Ben Dooks
2010-07-02 11:12 ` Ben Dooks
2010-07-02 13:05 ` [PATCH v3 03/12] s3c-fb: Separate S5PC100 and S5PV210 framebuffer Pawel Osciak
2010-07-02 13:05 ` [PATCH v3 03/12] s3c-fb: Separate S5PC100 and S5PV210 framebuffer driver data structures Pawel Osciak
2010-07-02 13:05 ` Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 04/12] s3c-fb: Add device name initialization Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-07-02 11:13 ` Ben Dooks
2010-07-02 11:13 ` Ben Dooks
2010-07-02 11:13 ` Ben Dooks
2010-06-28 8:08 ` [PATCH v3 05/12] s3c-fb: Add support for display panning Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 11:28 ` Maurus Cuelenaere
2010-06-28 11:28 ` Maurus Cuelenaere
2010-06-28 11:28 ` Maurus Cuelenaere
2010-07-02 11:25 ` Ben Dooks
2010-07-02 11:25 ` Ben Dooks
2010-07-02 11:25 ` Ben Dooks
2010-07-02 11:33 ` Maurus Cuelenaere
2010-07-02 11:33 ` Maurus Cuelenaere
2010-07-02 11:33 ` Maurus Cuelenaere
2010-07-02 11:52 ` Mark Brown
2010-07-02 11:52 ` Mark Brown
2010-07-02 11:52 ` Mark Brown
2010-07-02 11:24 ` Ben Dooks
2010-07-02 11:24 ` Ben Dooks
2010-07-02 11:24 ` Ben Dooks
2010-07-02 13:29 ` Pawel Osciak
2010-07-02 13:29 ` Pawel Osciak
2010-07-02 13:29 ` Pawel Osciak
2010-07-04 13:50 ` Jamie Lokier
2010-07-04 13:50 ` Jamie Lokier
2010-07-04 13:50 ` Jamie Lokier
2010-06-28 8:08 ` [PATCH v3 06/12] s3c-fb: Add wait for VSYNC ioctl Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-07-02 11:37 ` Ben Dooks
2010-07-02 11:37 ` Ben Dooks
2010-07-02 11:37 ` Ben Dooks
2010-07-02 14:39 ` Pawel Osciak
2010-07-02 14:39 ` Pawel Osciak
2010-07-02 14:39 ` Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 07/12] s3c-fb: window 3 of 64xx+ does not have an osd_d Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 07/12] s3c-fb: window 3 of 64xx+ does not have an osd_d register Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 08/12] s3c-fb: Add SHADOWCON shadow register locking support Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 08/12] s3c-fb: Add SHADOWCON shadow register locking support for S5PV210 Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-07-02 13:11 ` [PATCH v3 08/12] s3c-fb: Add SHADOWCON shadow register locking Ben Dooks
2010-07-02 13:11 ` [PATCH v3 08/12] s3c-fb: Add SHADOWCON shadow register locking support for S5PV210 Ben Dooks
2010-07-02 13:11 ` Ben Dooks
2010-07-02 14:45 ` [PATCH v3 08/12] s3c-fb: Add SHADOWCON shadow register locking Pawel Osciak
2010-07-02 14:45 ` [PATCH v3 08/12] s3c-fb: Add SHADOWCON shadow register locking support for S5PV210 Pawel Osciak
2010-07-02 14:45 ` Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 09/12] s3c-fb: Correct window osd size and alpha register Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 09/12] s3c-fb: Correct window osd size and alpha register handling Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-07-02 13:16 ` [PATCH v3 09/12] s3c-fb: Correct window osd size and alpha register Ben Dooks
2010-07-02 13:16 ` [PATCH v3 09/12] s3c-fb: Correct window osd size and alpha register handling Ben Dooks
2010-07-02 13:16 ` Ben Dooks
2010-07-02 14:53 ` [PATCH v3 09/12] s3c-fb: Correct window osd size and alpha Pawel Osciak
2010-07-02 14:53 ` [PATCH v3 09/12] s3c-fb: Correct window osd size and alpha register handling Pawel Osciak
2010-07-02 14:53 ` Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 10/12] s3c-fb: Protect window-specific registers during Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 10/12] s3c-fb: Protect window-specific registers during updates Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 11/12] s3c-fb: fix section mismatch Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 8:08 ` [PATCH v3 12/12] s3c-fb: Add support for DMA channel control on S5PV210 Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
2010-06-28 8:08 ` Pawel Osciak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C2DB6A2.2040005@simtec.co.uk \
--to=ben@simtec.co.uk \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.