diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2019-04-18 19:17:31 +0300 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2019-04-29 14:55:16 +0300 |
commit | 9f49df1ad3ba49d479aa9a1ff997d2236509163b (patch) | |
tree | 6200f6628adfb5c897eba66de1acbc43269b91dd | |
parent | a53658ebbb9aedd85a3a73cf6d3911aed627ae29 (diff) |
lib/igt_fb: Fix 32bit integer overflow in the shadow buffer size calculation
16k*16k*16 == 1<<32, so 32bits isn't enough for the result when
we start to have big framebuffers.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | lib/igt_fb.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/igt_fb.c b/lib/igt_fb.c index f3609680..d4929019 100644 --- a/lib/igt_fb.c +++ b/lib/igt_fb.c @@ -1912,7 +1912,7 @@ static void *igt_fb_create_cairo_shadow_buffer(int fd, IGT_COLOR_YCBCR_BT709, IGT_COLOR_YCBCR_LIMITED_RANGE); shadow->strides[0] = ALIGN(width * (shadow->plane_bpp[0] / 8), 16); - shadow->size = ALIGN(shadow->strides[0] * height, + shadow->size = ALIGN((uint64_t)shadow->strides[0] * height, sysconf(_SC_PAGESIZE)); ptr = mmap(NULL, shadow->size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); |