diff options
author | Koji Egashira <Koji.Egashira@access-company.com> | 2013-04-29 18:31:08 +0900 |
---|---|---|
committer | Bryce Harrington <b.harrington@samsung.com> | 2014-03-03 17:21:37 -0800 |
commit | 5c9fdcb4aa9c3c32fe4760586c11924dc5fb47ef (patch) | |
tree | 0ce6ba1c56c1bf1d2f23dc91cec1c8bc3be6e9b3 /src/cairo-image-compositor.c | |
parent | 6a03ae5859a92d3d4dbe97c9d598700fbcf1d666 (diff) | |
download | cairo-5c9fdcb4aa9c3c32fe4760586c11924dc5fb47ef.tar.gz |
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>
Diffstat (limited to 'src/cairo-image-compositor.c')
-rw-r--r-- | src/cairo-image-compositor.c | 6 |
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) { |