Jani Nikula
2024-Jun-26 09:44 UTC
[PATCH] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
On Wed, 26 Jun 2024, Ma Ke <make24 at iscas.ac.cn> wrote:> In nouveau_connector_get_modes(), the return value of drm_mode_duplicate() > is assigned to mode, which will lead to a possible NULL pointer > dereference on failure of drm_mode_duplicate(). Add a check to avoid npd. > > Signed-off-by: Ma Ke <make24 at iscas.ac.cn> > --- > drivers/gpu/drm/nouveau/nouveau_connector.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c > index 856b3ef5edb8..010eed56b14d 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_connector.c > +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c > @@ -1001,6 +1001,8 @@ nouveau_connector_get_modes(struct drm_connector *connector) > struct drm_display_mode *mode; > > mode = drm_mode_duplicate(dev, nv_connector->native_mode); > + if (!mode) > + return -ENOMEM;Do not return negative values from .get_modes(). BR, Jani.> drm_mode_probed_add(connector, mode); > ret = 1; > }-- Jani Nikula, Intel
Danilo Krummrich
2024-Jun-26 14:53 UTC
[PATCH] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
On 6/26/24 11:44, Jani Nikula wrote:> On Wed, 26 Jun 2024, Ma Ke <make24 at iscas.ac.cn> wrote: >> In nouveau_connector_get_modes(), the return value of drm_mode_duplicate() >> is assigned to mode, which will lead to a possible NULL pointer >> dereference on failure of drm_mode_duplicate(). Add a check to avoid npd. >>Please add a "Fixes" tag (also for your previous commits) and CC stable.>> Signed-off-by: Ma Ke <make24 at iscas.ac.cn> >> --- >> drivers/gpu/drm/nouveau/nouveau_connector.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c >> index 856b3ef5edb8..010eed56b14d 100644 >> --- a/drivers/gpu/drm/nouveau/nouveau_connector.c >> +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c >> @@ -1001,6 +1001,8 @@ nouveau_connector_get_modes(struct drm_connector *connector) >> struct drm_display_mode *mode; >> >> mode = drm_mode_duplicate(dev, nv_connector->native_mode); >> + if (!mode) >> + return -ENOMEM; > > Do not return negative values from .get_modes().+1 https://elixir.bootlin.com/linux/latest/source/include/drm/drm_modeset_helper_vtables.h#L899> > BR, > Jani. > >> drm_mode_probed_add(connector, mode); >> ret = 1; >> } >
Reasonably Related Threads
- [PATCH v2] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
- [PATCH v3] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
- [PATCH] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
- [PATCH v3] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
- [PATCH] drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes