diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2014-04-23 18:54:42 +0900 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2014-04-23 10:38:30 -0700 |
commit | 21e0e373858bd7f3458172ebd465397e33b90162 (patch) | |
tree | cb6cbc7139ae53292bb1a573200431141af7a3c7 /glamor | |
parent | 4e9aabb6fc15d8052934f20c6a07801c197ec36a (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.c | 5 |
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(®ion); } 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(®ion); + fail_noregion: glamor_make_current(glamor_priv); glamor_set_alu(screen, GXcopy); |