drm/mediatek: Fix access violation in mtk_drm_crtc_dma_dev_get
authorStuart Lee <stuart.lee@mediatek.com>
Fri, 10 Nov 2023 01:29:14 +0000 (09:29 +0800)
committerChun-Kuang Hu <chunkuang.hu@kernel.org>
Mon, 11 Dec 2023 14:40:05 +0000 (14:40 +0000)
Add error handling to check NULL input in
mtk_drm_crtc_dma_dev_get function.

While display path is not configured correctly, none of crtc is
established. So the caller of mtk_drm_crtc_dma_dev_get may pass
input parameter *crtc as NULL, Which may cause coredump when
we try to get the container of NULL pointer.

Fixes: cb1d6bcca542 ("drm/mediatek: Add dma dev get function")
Signed-off-by: Stuart Lee <stuart.lee@mediatek.com>
Cc: stable@vger.kernel.org
Reviewed-by: AngeloGioacchino DEl Regno <angelogioacchino.delregno@collabora.com>
Tested-by: Macpaul Lin <macpaul.lin@mediatek.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20231110012914.14884-2-stuart.lee@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
drivers/gpu/drm/mediatek/mtk_drm_crtc.c

index 0a7d60c191b80f18460886efcbe594b591d85996..db43f9dff912e40a9dc411d8d7154f0c1261baca 100644 (file)
@@ -926,7 +926,14 @@ static int mtk_drm_crtc_init_comp_planes(struct drm_device *drm_dev,
 
 struct device *mtk_drm_crtc_dma_dev_get(struct drm_crtc *crtc)
 {
-       struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc);
+       struct mtk_drm_crtc *mtk_crtc = NULL;
+
+       if (!crtc)
+               return NULL;
+
+       mtk_crtc = to_mtk_crtc(crtc);
+       if (!mtk_crtc)
+               return NULL;
 
        return mtk_crtc->dma_dev;
 }