summaryrefslogtreecommitdiff
path: root/src/cairo-image-compositor.c
diff options
context:
space:
mode:
authorKoji Egashira <Koji.Egashira@access-company.com>2013-04-29 18:31:08 +0900
committerBryce Harrington <b.harrington@samsung.com>2014-03-03 17:21:37 -0800
commit5c9fdcb4aa9c3c32fe4760586c11924dc5fb47ef (patch)
tree0ce6ba1c56c1bf1d2f23dc91cec1c8bc3be6e9b3 /src/cairo-image-compositor.c
parent6a03ae5859a92d3d4dbe97c9d598700fbcf1d666 (diff)
downloadcairo-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.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) {