]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/msm/dpu: Fix error pointers in dpu_plane_virtual_atomic_check
authorChenyuan Yang <chenyuan0y@gmail.com>
Fri, 14 Mar 2025 01:10:04 +0000 (20:10 -0500)
committerAbhinav Kumar <quic_abhinavk@quicinc.com>
Thu, 10 Apr 2025 20:21:44 +0000 (13:21 -0700)
The function dpu_plane_virtual_atomic_check was dereferencing pointers
returned by drm_atomic_get_plane_state without checking for errors. This
could lead to undefined behavior if the function returns an error pointer.

This commit adds checks using IS_ERR to ensure that plane_state is
valid before dereferencing them.

Similar to commit da29abe71e16
("drm/amd/display: Fix error pointers in amdgpu_dm_crtc_mem_type_changed").

Fixes: 774bcfb73176 ("drm/msm/dpu: add support for virtual planes")
Signed-off-by: Chenyuan Yang <chenyuan0y@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/643132/
Link: https://lore.kernel.org/r/20250314011004.663804-1-chenyuan0y@gmail.com
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c

index aeb90c287245d6aaa18b9f280d1e628ee6ed74f5..e03d6091f73640af96604a46740d58ae1f1fced1 100644 (file)
@@ -1060,6 +1060,9 @@ static int dpu_plane_virtual_atomic_check(struct drm_plane *plane,
        struct drm_crtc_state *crtc_state;
        int ret;
 
+       if (IS_ERR(plane_state))
+               return PTR_ERR(plane_state);
+
        if (plane_state->crtc)
                crtc_state = drm_atomic_get_new_crtc_state(state,
                                                           plane_state->crtc);