[PATCH 2/2] drm/client: Fix memory leak in drm_client_modeset_probe

Thomas Zimmermann tzimmermann at suse.de
Tue Jul 11 09:43:31 UTC 2023



Am 11.07.23 um 11:20 schrieb Jocelyn Falempe:
> When a new mode is set to modeset->mode, the previous mode should be freed.
> This fixes the following kmemleak report:
> 
> drm_mode_duplicate+0x45/0x220 [drm]
> drm_client_modeset_probe+0x944/0xf50 [drm]
> __drm_fb_helper_initial_config_and_unlock+0xb4/0x2c0 [drm_kms_helper]
> drm_fbdev_client_hotplug+0x2bc/0x4d0 [drm_kms_helper]
> drm_client_register+0x169/0x240 [drm]
> ast_pci_probe+0x142/0x190 [ast]
> local_pci_probe+0xdc/0x180
> work_for_cpu_fn+0x4e/0xa0
> process_one_work+0x8b7/0x1540
> worker_thread+0x70a/0xed0
> kthread+0x29f/0x340
> ret_from_fork+0x1f/0x30
> 
> cc: <stable at vger.kernel.org>
> Reported-by: Zhang Yi <yizhan at redhat.com>
> Signed-off-by: Jocelyn Falempe <jfalempe at redhat.com>
> ---
>   drivers/gpu/drm/drm_client_modeset.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c
> index a4a62aa99984..5d4703b4648a 100644
> --- a/drivers/gpu/drm/drm_client_modeset.c
> +++ b/drivers/gpu/drm/drm_client_modeset.c
> @@ -867,6 +867,9 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width,
>   				break;
>   			}
>   
> +			if (modeset->mode)
> +				kfree(modeset->mode);

kfree() does a NULL-pointer test. So it can be removed here. With that 
changed:

Reviewed-by: Thomas Zimmermann <tzimmermann at suse.de>

> +				
>   			modeset->mode = drm_mode_duplicate(dev, mode);
>   			drm_connector_get(connector);
>   			modeset->connectors[modeset->num_connectors++] = connector;

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20230711/2edc9d3e/attachment.sig>


More information about the dri-devel mailing list