From 7647f29a2a3b69592e38f50890a96d8deeaa2dbb Mon Sep 17 00:00:00 2001 From: Jan Slupski Date: Fri, 15 Feb 2008 00:55:30 +0100 Subject: [PATCH] Fix for a memory leak in pixman. Port of a 1.6 fix for a memory leak in pixman_region_init_rects/pixman_rect_alloc when the count of boxes is 0. --- pixman/src/pixregion.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/pixman/src/pixregion.c b/pixman/src/pixregion.c index 1ed3ad7..d6caf6c 100644 --- a/pixman/src/pixregion.c +++ b/pixman/src/pixregion.c @@ -355,6 +355,15 @@ pixman_region_init_rects(pixman_region16_t *region, pixman_box16_t *boxes, int c } pixman_region_init(region); + + /* if it's 0, don't call pixman_rect_alloc -- 0 rectangles is + * a special case, and causing pixman_rect_alloc would cause + * us to leak memory (because the 0-rect case should be the + * static pixman_region_emptyData data). + */ + if (count == 0) + return PIXMAN_REGION_STATUS_SUCCESS; + if (!pixman_rect_alloc(region, count)) return PIXMAN_REGION_STATUS_FAILURE;