summaryrefslogtreecommitdiff
path: root/glamor
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2014-04-23 18:54:42 +0900
committerEric Anholt <eric@anholt.net>2014-04-23 10:38:30 -0700
commit21e0e373858bd7f3458172ebd465397e33b90162 (patch)
treecb6cbc7139ae53292bb1a573200431141af7a3c7 /glamor
parent4e9aabb6fc15d8052934f20c6a07801c197ec36a (diff)
glamor: Fix memory leak in _glamor_copy_n_to_n()
It would leak the memory allocated for the region rects in some cases. Found with valgrind. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'glamor')
-rw-r--r--glamor/glamor_copyarea.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/glamor/glamor_copyarea.c b/glamor/glamor_copyarea.c
index 6e90e36f3..e1988225f 100644
--- a/glamor/glamor_copyarea.c
+++ b/glamor/glamor_copyarea.c
@@ -367,7 +367,7 @@ _glamor_copy_n_to_n(DrawablePtr src,
goto fall_back;
glamor_make_current(glamor_priv);
if (!glamor_set_alu(screen, gc->alu)) {
- goto fail;
+ goto fail_noregion;
}
}
@@ -533,7 +533,6 @@ _glamor_copy_n_to_n(DrawablePtr src,
if (n_dst_region == 0)
ok = TRUE;
free(clipped_dst_regions);
- RegionUninit(&region);
}
else {
ok = __glamor_copy_n_to_n(src, dst, gc, box, nbox, dx, dy,
@@ -541,6 +540,8 @@ _glamor_copy_n_to_n(DrawablePtr src,
}
fail:
+ RegionUninit(&region);
+ fail_noregion:
glamor_make_current(glamor_priv);
glamor_set_alu(screen, GXcopy);