Re: [PATCH] drm/mediatek: Fix potential memory leak if vmap() fail

From: suijingfeng
Date: Thu Jul 06 2023 - 09:43:58 EST


Hi,

On 2023/7/6 20:47, AngeloGioacchino Del Regno wrote:
Il 26/06/23 20:58, Sui Jingfeng ha scritto:
Also return -ENOMEM if such a failure happens, the implement should take
responsibility for the error handling.

Signed-off-by: Sui Jingfeng <suijingfeng@xxxxxxxxxxx>

This commit needs a Fixes tag. Please add the relevant one and resend.

Done at [1],


Thanks for point this out, I got it.

[1] https://patchwork.freedesktop.org/patch/545843/?series=119885&rev=2


Thanks,
Angelo

---
  drivers/gpu/drm/mediatek/mtk_drm_gem.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_drm_gem.c b/drivers/gpu/drm/mediatek/mtk_drm_gem.c
index a25b28d3ee90..9f364df52478 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_gem.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_gem.c
@@ -247,7 +247,11 @@ int mtk_drm_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map)
        mtk_gem->kvaddr = vmap(mtk_gem->pages, npages, VM_MAP,
                     pgprot_writecombine(PAGE_KERNEL));
-
+    if (!mtk_gem->kvaddr) {
+        kfree(sgt);
+        kfree(mtk_gem->pages);
+        return -ENOMEM;
+    }
  out:
      kfree(sgt);
      iosys_map_set_vaddr(map, mtk_gem->kvaddr);