]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/tegra: Fix a possible null pointer dereference
authorQiu-ji Chen <chenqiuji666@gmail.com>
Wed, 6 Nov 2024 09:59:06 +0000 (17:59 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jul 2025 16:27:43 +0000 (18:27 +0200)
commit 780351a5f61416ed2ba1199cc57e4a076fca644d upstream.

In tegra_crtc_reset(), new memory is allocated with kzalloc(), but
no check is performed. Before calling __drm_atomic_helper_crtc_reset,
state should be checked to prevent possible null pointer dereference.

Fixes: b7e0b04ae450 ("drm/tegra: Convert to using __drm_atomic_helper_crtc_reset() for reset.")
Cc: stable@vger.kernel.org
Signed-off-by: Qiu-ji Chen <chenqiuji666@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20241106095906.15247-1-chenqiuji666@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/tegra/dc.c

index 8474f022df8f4f0d1d215c1693ec53f9f90acf1c..85b4c2cc544f8e86a0f265f61ee3fed658784dd7 100644 (file)
@@ -1206,7 +1206,10 @@ static void tegra_crtc_reset(struct drm_crtc *crtc)
        if (crtc->state)
                tegra_crtc_atomic_destroy_state(crtc, crtc->state);
 
-       __drm_atomic_helper_crtc_reset(crtc, &state->base);
+       if (state)
+               __drm_atomic_helper_crtc_reset(crtc, &state->base);
+       else
+               __drm_atomic_helper_crtc_reset(crtc, NULL);
 }
 
 static struct drm_crtc_state *