2021-12-14 10:09:10

by Jiasheng Jiang

[permalink] [raw]
Subject: [PATCH] drm: mali-dp: potential dereference of null pointer

The return value of kzalloc() needs to be checked.
To avoid use of null pointer '&state->base' in case of the
failure of alloc.

Fixes: 99665d072183 ("drm: mali-dp: add malidp_crtc_state struct")
Signed-off-by: Jiasheng Jiang <[email protected]>
---
drivers/gpu/drm/arm/malidp_crtc.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c
index 494075ddbef6..b5928b52e279 100644
--- a/drivers/gpu/drm/arm/malidp_crtc.c
+++ b/drivers/gpu/drm/arm/malidp_crtc.c
@@ -487,7 +487,10 @@ static void malidp_crtc_reset(struct drm_crtc *crtc)
if (crtc->state)
malidp_crtc_destroy_state(crtc, crtc->state);

- __drm_atomic_helper_crtc_reset(crtc, &state->base);
+ if (state)
+ __drm_atomic_helper_crtc_reset(crtc, &state->base);
+ else
+ __drm_atomic_helper_crtc_reset(crtc, NULL);
}

static int malidp_crtc_enable_vblank(struct drm_crtc *crtc)
--
2.25.1



2021-12-14 11:02:24

by Brian Starkey

[permalink] [raw]
Subject: Re: [PATCH] drm: mali-dp: potential dereference of null pointer

Hi,

On Tue, Dec 14, 2021 at 06:08:37PM +0800, Jiasheng Jiang wrote:
> The return value of kzalloc() needs to be checked.
> To avoid use of null pointer '&state->base' in case of the
> failure of alloc.
>
> Fixes: 99665d072183 ("drm: mali-dp: add malidp_crtc_state struct")
> Signed-off-by: Jiasheng Jiang <[email protected]>
> ---

You can add my r-b to this one too. Thanks!

> drivers/gpu/drm/arm/malidp_crtc.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c
> index 494075ddbef6..b5928b52e279 100644
> --- a/drivers/gpu/drm/arm/malidp_crtc.c
> +++ b/drivers/gpu/drm/arm/malidp_crtc.c
> @@ -487,7 +487,10 @@ static void malidp_crtc_reset(struct drm_crtc *crtc)
> if (crtc->state)
> malidp_crtc_destroy_state(crtc, crtc->state);
>
> - __drm_atomic_helper_crtc_reset(crtc, &state->base);
> + if (state)
> + __drm_atomic_helper_crtc_reset(crtc, &state->base);
> + else
> + __drm_atomic_helper_crtc_reset(crtc, NULL);
> }
>
> static int malidp_crtc_enable_vblank(struct drm_crtc *crtc)
> --
> 2.25.1
>

2021-12-20 09:40:53

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH] drm: mali-dp: potential dereference of null pointer

On Tue, Dec 14, 2021 at 11:02:02AM +0000, Brian Starkey wrote:
> Hi,
>
> On Tue, Dec 14, 2021 at 06:08:37PM +0800, Jiasheng Jiang wrote:
> > The return value of kzalloc() needs to be checked.
> > To avoid use of null pointer '&state->base' in case of the
> > failure of alloc.
> >
> > Fixes: 99665d072183 ("drm: mali-dp: add malidp_crtc_state struct")
> > Signed-off-by: Jiasheng Jiang <[email protected]>
> > ---
>
> You can add my r-b to this one too. Thanks!

Are you (or someone else from arm) also pushing these? Otherwise they'll
get lost.
-Daniel

>
> > drivers/gpu/drm/arm/malidp_crtc.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c
> > index 494075ddbef6..b5928b52e279 100644
> > --- a/drivers/gpu/drm/arm/malidp_crtc.c
> > +++ b/drivers/gpu/drm/arm/malidp_crtc.c
> > @@ -487,7 +487,10 @@ static void malidp_crtc_reset(struct drm_crtc *crtc)
> > if (crtc->state)
> > malidp_crtc_destroy_state(crtc, crtc->state);
> >
> > - __drm_atomic_helper_crtc_reset(crtc, &state->base);
> > + if (state)
> > + __drm_atomic_helper_crtc_reset(crtc, &state->base);
> > + else
> > + __drm_atomic_helper_crtc_reset(crtc, NULL);
> > }
> >
> > static int malidp_crtc_enable_vblank(struct drm_crtc *crtc)
> > --
> > 2.25.1
> >

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch