Source code

Revision control

Copy as Markdown

Other Tools

diff --git a/gfx/cairo/cairo/src/cairo-quartz-surface.c b/gfx/cairo/cairo/src/cairo-quartz-surface.c
--- a/gfx/cairo/cairo/src/cairo-quartz-surface.c
+++ b/gfx/cairo/cairo/src/cairo-quartz-surface.c
@@ -873,8 +873,12 @@ static cairo_status_t
return _cairo_error (CAIRO_STATUS_NO_MEMORY);
}
+ // The last row of data may have less than stride bytes so make sure we
+ // only copy the minimum amount required from that row.
memcpy (image_data, image_surface->data,
- image_surface->height * image_surface->stride);
+ (image_surface->height - 1) * image_surface->stride +
+ cairo_format_stride_for_width (image_surface->format,
+ image_surface->width));
*image_out = CairoQuartzCreateCGImage (image_surface->format,
image_surface->width,
image_surface->height,