diff mbox series

[v2] drm/i915: Fix memory leaks in i915 selftests

Message ID 20230414224109.1051922-1-andi.shyti@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm/i915: Fix memory leaks in i915 selftests | expand

Commit Message

Andi Shyti April 14, 2023, 10:41 p.m. UTC
From: Cong Liu <liucong2@kylinos.cn>

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>
---
Hi,

just resending this patch as I don't see it in our patchwork.

Andi

Changelong
==========
v1 -> v2
 - Add r-b tags

 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Andi Shyti April 15, 2023, 8:53 p.m. UTC | #1
On Sat, Apr 15, 2023 at 12:41:09AM +0200, Andi Shyti wrote:
> From: Cong Liu <liucong2@kylinos.cn>
> 
> 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>

pushed to drm-intel-gt-next.

Thanks Cong for your fix,
Andi
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
index 5361ce70d3f29..154801f1c4685 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
@@ -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);