summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <[email protected]>2014-06-25 02:03:07 +0200
committerRoland Scheidegger <[email protected]>2014-06-25 02:15:49 +0200
commit6b8b17153ab27b2bc7221df974a5872805f528b1 (patch)
treeafc9708c29ae14325bdd8984c83f12397a31248b
parent48f1143c64e46b3d11dc318d7825b6167a2b78e5 (diff)
llvmpipe: Fix zero-division in llvmpipe_texture_layout()
Fix the crash of "gnome-control-center info" invocation on QEMU where zero height is passed at init. (sroland: simplify logic by eliminating the div altogether, using 64bit mul.) Fixes: https://bugzilla.novell.com/show_bug.cgi?id=879462 Cc: "10.2" <[email protected]>
-rw-r--r--src/gallium/drivers/llvmpipe/lp_texture.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c
index f60118135d9..6df88d076fa 100644
--- a/src/gallium/drivers/llvmpipe/lp_texture.c
+++ b/src/gallium/drivers/llvmpipe/lp_texture.c
@@ -115,7 +115,7 @@ llvmpipe_texture_layout(struct llvmpipe_screen *screen,
lpr->row_stride[level] = align(nblocksx * block_size, util_cpu_caps.cacheline);
/* if row_stride * height > LP_MAX_TEXTURE_SIZE */
- if (lpr->row_stride[level] > LP_MAX_TEXTURE_SIZE / nblocksy) {
+ if ((uint64_t)lpr->row_stride[level] * nblocksy > LP_MAX_TEXTURE_SIZE) {
/* image too large */
goto fail;
}