From eadfbf82875cce8106047c933c0b053809a8ff74 Mon Sep 17 00:00:00 2001 From: Larry Gritz Date: Thu, 17 Oct 2019 17:45:19 -0700 Subject: [PATCH] Fix int32 overflow bugs with deep images A 32k x 32k image * 8 byte pointers leads to an overflow when trying to find the sample count of a deep pixel. Signed-off-by: Larry Gritz --- OpenEXR/IlmImf/ImfMisc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenEXR/IlmImf/ImfMisc.h b/OpenEXR/IlmImf/ImfMisc.h index c0d90eaa1b..4cb7607e69 100644 --- a/OpenEXR/IlmImf/ImfMisc.h +++ b/OpenEXR/IlmImf/ImfMisc.h @@ -99,7 +99,7 @@ inline int& sampleCount(char* base, int xStride, int yStride, int x, int y) { - char* ptr = base + y * yStride + x * xStride; + char* ptr = base + y * ptrdiff_t(yStride) + x * ptrdiff_t(xStride); int* intPtr = (int*) ptr; return *intPtr; @@ -110,7 +110,7 @@ inline const int& sampleCount(const char* base, int xStride, int yStride, int x, int y) { - const char* ptr = base + y * yStride + x * xStride; + const char* ptr = base + y * ptrdiff_t(yStride) + x * ptrdiff_t(xStride); int* intPtr = (int*) ptr; return *intPtr;