drm/i915: Fix memory leaks in i915 selftests
authorCong Liu <liucong2@kylinos.cn>
Fri, 14 Apr 2023 22:41:09 +0000 (00:41 +0200)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Mon, 17 Apr 2023 06:22:17 +0000 (09:22 +0300)
This patch fixes memory leaks on error escapes in function fake_get_pages

Fixes: c3bfba9a2225 ("drm/i915: Check for integer truncation on scatterlist creation")
Signed-off-by: Cong Liu <liucong2@kylinos.cn>
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230414224109.1051922-1-andi.shyti@linux.intel.com
(cherry picked from commit 8bfbdadce85c4c51689da10f39c805a7106d4567)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c

index 5361ce7..154801f 100644 (file)
@@ -69,8 +69,10 @@ static int fake_get_pages(struct drm_i915_gem_object *obj)
 
        rem = round_up(obj->base.size, BIT(31)) >> 31;
        /* restricted by sg_alloc_table */
-       if (overflows_type(rem, unsigned int))
+       if (overflows_type(rem, unsigned int)) {
+               kfree(pages);
                return -E2BIG;
+       }
 
        if (sg_alloc_table(pages, rem, GFP)) {
                kfree(pages);