From 189e8b54f66fe3d92ee667612ba042173bf731c4 Mon Sep 17 00:00:00 2001 From: Peter Hillman Date: Wed, 13 Jan 2021 10:59:26 +1300 Subject: [PATCH] prevent overflow in RgbaFile cachePadding Signed-off-by: Peter Hillman --- src/lib/OpenEXR/ImfRgbaFile.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/OpenEXR/ImfRgbaFile.cpp b/src/lib/OpenEXR/ImfRgbaFile.cpp index 196a2b5024..8f2f336c48 100644 --- a/src/lib/OpenEXR/ImfRgbaFile.cpp +++ b/src/lib/OpenEXR/ImfRgbaFile.cpp @@ -171,16 +171,16 @@ cachePadding (ptrdiff_t size) static int LOG2_CACHE_LINE_SIZE = 8; - int i = LOG2_CACHE_LINE_SIZE + 2; + size_t i = LOG2_CACHE_LINE_SIZE + 2; while ((size >> i) > 1) ++i; - if (size > (1 << (i + 1)) - 64) - return 64 + ((1 << (i + 1)) - size); + if (size > (1ll << (i + 1)) - 64ll) + return 64ll + ((1ll << (i + 1ll)) - size); - if (size < (1 << i) + 64) - return 64 + ((1 << i) - size); + if (size < (1ll << i) + 64ll) + return 64ll + ((1ll << i) - size); return 0; }