summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/internal-screenshot-test.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/internal-screenshot-test.c b/tests/internal-screenshot-test.c
index b5707336..f2e6c16b 100644
--- a/tests/internal-screenshot-test.c
+++ b/tests/internal-screenshot-test.c
@@ -75,6 +75,7 @@ load_surface_from_png(const char *fname) {
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);
@@ -98,6 +99,15 @@ load_surface_from_png(const char *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);