2023-10-11 01:34:28

by Ma Ke

[permalink] [raw]
Subject: [PATCH] drm/edid: fix a possible null pointer dereference

In drm_mode_std(), the return value of drm_gtf_mode(),
drm_gtf_mode() and drm_cvt_mode() is assigned to mode,
which will lead to a NULL pointer dereference on failure
of drm_gtf_mode(), drm_gtf_mode() and drm_cvt_mode().
Add a check to avoid null point dereference.

Signed-off-by: Ma Ke <[email protected]>
---
drivers/gpu/drm/drm_edid.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 340da8257b51..e2c154c2b896 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3381,6 +3381,8 @@ static struct drm_display_mode *drm_mode_std(struct drm_connector *connector,
false);
break;
}
+ if (!mode)
+ return NULL;
return mode;
}

--
2.37.2


2023-10-11 07:11:08

by Jani Nikula

[permalink] [raw]
Subject: Re: [PATCH] drm/edid: fix a possible null pointer dereference

On Wed, 11 Oct 2023, Ma Ke <[email protected]> wrote:
> In drm_mode_std(), the return value of drm_gtf_mode(),
> drm_gtf_mode() and drm_cvt_mode() is assigned to mode,
> which will lead to a NULL pointer dereference on failure
> of drm_gtf_mode(), drm_gtf_mode() and drm_cvt_mode().
> Add a check to avoid null point dereference.
>
> Signed-off-by: Ma Ke <[email protected]>
> ---
> drivers/gpu/drm/drm_edid.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 340da8257b51..e2c154c2b896 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -3381,6 +3381,8 @@ static struct drm_display_mode *drm_mode_std(struct drm_connector *connector,
> false);
> break;
> }
> + if (!mode)
> + return NULL;

This doesn't change anything.

BR,
Jani.


> return mode;
> }

--
Jani Nikula, Intel