From 38fe7cd7be388aae6dff7d9b9979eb4ffa5fa175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Mon, 30 Jul 2012 16:10:05 -0400 Subject: [PATCH] stress-test: Avoid overflows in clip rectangles The rectangles in the clip region set in set_general_properties() would sometimes overflow, which would lead to messages like these: *** BUG *** In pixman_region32_union_rect: Invalid rectangle passed Set a breakpoint on '_pixman_log_error' to debug when the micro version number of pixman is even. Fix this by detecting the overflow and clamping such that the x2/y2 coordinates are less than INT32_MAX. --- test/stress-test.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/stress-test.c b/test/stress-test.c index 54ab1c5..edcfe09 100644 --- a/test/stress-test.c +++ b/test/stress-test.c @@ -468,6 +468,11 @@ set_general_properties (pixman_image_t *image, pixman_bool_t allow_alpha_map) width = lcg_rand_n (image->bits.width) - x + 10; height = lcg_rand_n (image->bits.height) - y + 10; + if (width + x < x) + width = INT32_MAX - x; + if (height + y < y) + height = INT32_MAX - y; + pixman_region32_union_rect ( ®ion, ®ion, x, y, width, height); }