diff --git a/pixman/src/pixregion.c b/pixman/src/pixregion.c index dfb1f2458..9df6611cf 100644 --- a/pixman/src/pixregion.c +++ b/pixman/src/pixregion.c @@ -670,9 +670,13 @@ pixman_op( newReg->data = &pixman_region_emptyData; else if (newReg->data->size) newReg->data->numRects = 0; - if (newSize > newReg->data->size) - if (!pixman_rect_alloc(newReg, newSize)) + if (newSize > newReg->data->size) { + if (!pixman_rect_alloc(newReg, newSize)) { + if (oldData) + free (oldData); return PIXMAN_REGION_STATUS_FAILURE; + } + } /* * Initialize ybot.