diff options
author | Ma Ke <make24@iscas.ac.cn> | 2024-08-02 12:47:36 +0800 |
---|---|---|
committer | Thomas Zimmermann <tzimmermann@suse.de> | 2024-08-02 09:23:54 +0200 |
commit | 113fd6372a5bb3689aba8ef5b8a265ed1529a78f (patch) | |
tree | ae4516fbfd239b95addda5d7849e485a879d90b5 /drivers/gpu/drm/drm_client_modeset.c | |
parent | 9c685f61722d30a22d55bb8a48f7a48bb2e19bcc (diff) | |
download | linux-113fd6372a5bb3689aba8ef5b8a265ed1529a78f.tar.gz linux-113fd6372a5bb3689aba8ef5b8a265ed1529a78f.tar.bz2 linux-113fd6372a5bb3689aba8ef5b8a265ed1529a78f.zip |
drm/client: fix null pointer dereference in drm_client_modeset_probe
In drm_client_modeset_probe(), the return value of drm_mode_duplicate() is
assigned to modeset->mode, which will lead to a possible NULL pointer
dereference on failure of drm_mode_duplicate(). Add a check to avoid npd.
Cc: stable@vger.kernel.org
Fixes: cf13909aee05 ("drm/fb-helper: Move out modeset config code")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20240802044736.1570345-1-make24@iscas.ac.cn
Diffstat (limited to 'drivers/gpu/drm/drm_client_modeset.c')
-rw-r--r-- | drivers/gpu/drm/drm_client_modeset.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index 31af5cf37a09..cee5eafbfb81 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -880,6 +880,11 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, kfree(modeset->mode); modeset->mode = drm_mode_duplicate(dev, mode); + if (!modeset->mode) { + ret = -ENOMEM; + break; + } + drm_connector_get(connector); modeset->connectors[modeset->num_connectors++] = connector; modeset->x = offset->x; |