summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoji Egashira <Koji.Egashira@access-company.com>2013-04-29 18:31:08 +0900
committerUli Schlachter <psychon@znc.in>2014-08-27 10:58:49 +0200
commit518c9e49924af9d6750dd638df719e5ebc722137 (patch)
tree0bd1920319a21ea9903cdd61c64bb6b8056cf749
parent91d245b204f559d19aaabb109f5604850e848d4b (diff)
image: Add NULL checks for return value of _pixman_image_for_color()
This fixes crash in pixman_image_composite32(). Originally fixed by Yoshitaro Makise. Reviewed-by: Bryce Harrington <b.harrington@samsung.com> Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
-rw-r--r--src/cairo-image-compositor.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
index 0f478141e..03468a6f7 100644
--- a/src/cairo-image-compositor.c
+++ b/src/cairo-image-compositor.c
@@ -308,6 +308,8 @@ fill_rectangles (void *_dst,
}
} else {
pixman_image_t *src = _pixman_image_for_color (color);
+ if (unlikely (src == NULL))
+ return _cairo_error (CAIRO_STATUS_NO_MEMORY);
op = _pixman_operator (op);
for (i = 0; i < num_rects; i++) {
@@ -355,6 +357,8 @@ fill_boxes (void *_dst,
else
{
pixman_image_t *src = _pixman_image_for_color (color);
+ if (unlikely (src == NULL))
+ return _cairo_error (CAIRO_STATUS_NO_MEMORY);
op = _pixman_operator (op);
for (chunk = &boxes->chunks; chunk; chunk = chunk->next) {
@@ -507,6 +511,8 @@ composite_boxes (void *_dst,
op = PIXMAN_OP_LERP_CLEAR;
#else
free_src = src = _pixman_image_for_color (CAIRO_COLOR_WHITE);
+ if (unlikely (src == NULL))
+ return _cairo_error (CAIRO_STATUS_NO_MEMORY);
op = PIXMAN_OP_OUT_REVERSE;
#endif
} else if (op == CAIRO_OPERATOR_SOURCE) {