--- /dev/null
+From: Maximilian Grothusmann <maxi@own-hero.net>
+Date: Fri, 13 Jun 2008 19:44:50 +0000 (-0700)
+Subject: Fix memory leak by freeing boxes{16,32}.
+X-Git-Url: http://gitweb.freedesktop.org/?p=pixman.git;a=commitdiff;h=29d144712e558aaeb49f4384028dd669d76a410b
+
+Fix memory leak by freeing boxes{16,32}.
+
+After calling pixman_region_init_rects() or
+pixman_region32_init_rects(), boxes{16,32} were not freed before
+returning. Fixes bug 16312.
+---
+
+--- a/pixman/pixman-region16.c
++++ b/pixman/pixman-region16.c
+@@ -47,6 +47,7 @@ pixman_region16_copy_from_region32 (pixm
+ int n_boxes, i;
+ pixman_box32_t *boxes32;
+ pixman_box16_t *boxes16;
++ pixman_bool_t retval;
+
+ boxes32 = pixman_region32_rectangles (src, &n_boxes);
+
+@@ -64,7 +65,9 @@ pixman_region16_copy_from_region32 (pixm
+ }
+
+ pixman_region_fini (dst);
+- return pixman_region_init_rects (dst, boxes16, n_boxes);
++ retval = pixman_region_init_rects (dst, boxes16, n_boxes);
++ free (boxes16);
++ return retval;
+ }
+
+ #include "pixman-region.c"
+--- a/pixman/pixman-region32.c
++++ b/pixman/pixman-region32.c
+@@ -45,6 +45,7 @@ pixman_region32_copy_from_region16 (pixm
+ int n_boxes, i;
+ pixman_box16_t *boxes16;
+ pixman_box32_t *boxes32;
++ pixman_bool_t retval;
+
+ boxes16 = pixman_region_rectangles (src, &n_boxes);
+
+@@ -62,7 +63,9 @@ pixman_region32_copy_from_region16 (pixm
+ }
+
+ pixman_region32_fini (dst);
+- return pixman_region32_init_rects (dst, boxes32, n_boxes);
++ retval = pixman_region32_init_rects (dst, boxes32, n_boxes);
++ free (boxes32);
++ return retval;
+ }
+
+ #include "pixman-region.c"