diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-09-22 18:30:31 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-09-22 18:30:31 +0300 |
commit | d84c55f0fa4775f68af4ae7beba3fbeec4a98593 (patch) | |
tree | 03fbf713b73d34b07292a9513fea6a5ea69fac8e /intern | |
parent | 4e031073df3658f3bf9c807bfdfd70cdeca73102 (diff) |
Fix T49417: Cycles crash - can't use 5 Gigabyte Tile EXR texture file
Was an integer overflow issue when calculating offsets.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/render/image.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp index b387c2c2f98..7e24664b3fe 100644 --- a/intern/cycles/render/image.cpp +++ b/intern/cycles/render/image.cpp @@ -587,8 +587,7 @@ bool ImageManager::file_load_float_image(Image *img, ImageDataType type, device_ } if(depth <= 1) { - int scanlinesize = width*components*sizeof(float); - + size_t scanlinesize = ((size_t)width)*components*sizeof(float); in->read_image(TypeDesc::FLOAT, (uchar*)readpixels + (height-1)*scanlinesize, AutoStride, @@ -696,8 +695,7 @@ bool ImageManager::file_load_half_image(Image *img, ImageDataType type, device_v } if(depth <= 1) { - int scanlinesize = width*components*sizeof(half); - + size_t scanlinesize = ((size_t)width)*components*sizeof(half); in->read_image(TypeDesc::HALF, (uchar*)readpixels + (height-1)*scanlinesize, AutoStride, |