]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/mediatek: Add 0 size check to mtk_drm_gem_obj
authorJustin Green <greenjustin@chromium.org>
Thu, 7 Mar 2024 18:00:51 +0000 (13:00 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jun 2024 11:39:28 +0000 (13:39 +0200)
[ Upstream commit 1e4350095e8ab2577ee05f8c3b044e661b5af9a0 ]

Add a check to mtk_drm_gem_init if we attempt to allocate a GEM object
of 0 bytes. Currently, no such check exists and the kernel will panic if
a userspace application attempts to allocate a 0x0 GBM buffer.

Tested by attempting to allocate a 0x0 GBM buffer on an MT8188 and
verifying that we now return EINVAL.

Fixes: 119f5173628a ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.")
Signed-off-by: Justin Green <greenjustin@chromium.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20240307180051.4104425-1-greenjustin@chromium.org/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/mediatek/mtk_drm_gem.c

index b983adffa392964f2aba17eb1c7198d8ba8d3bdb..88bdb8eeba81a1201be7d9a1b8dd1bc2e51279ae 100644 (file)
@@ -33,6 +33,9 @@ static struct mtk_drm_gem_obj *mtk_drm_gem_init(struct drm_device *dev,
 
        size = round_up(size, PAGE_SIZE);
 
+       if (size == 0)
+               return ERR_PTR(-EINVAL);
+
        mtk_gem_obj = kzalloc(sizeof(*mtk_gem_obj), GFP_KERNEL);
        if (!mtk_gem_obj)
                return ERR_PTR(-ENOMEM);