[PATCH] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
Danilo Krummrich
dakr at redhat.com
Wed Jun 26 14:53:59 UTC 2024
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;
>> }
>
More information about the Nouveau
mailing list