cairo_surface_t *reference_cairo_surface;
cairo_status_t status;
size_t source_data_size;
+ int bpp;
int stride;
printf("Loading reference image %s\n", fname);
stride = cairo_image_surface_get_stride(reference_cairo_surface);
source_data_size = stride * reference->height;
+ /* Check that the file's stride matches our assumption */
+ bpp = 4;
+ if (stride != bpp * reference->width) {
+ printf("Mismatched stride for screenshot reference image %s\n", fname);
+ cairo_surface_destroy(reference_cairo_surface);
+ free(reference);
+ return NULL;
+ }
+
/* Allocate new buffer for our weston reference, and copy the data from
the cairo surface so we can destroy it */
reference->data = xzalloc(source_data_size);