diff -Naru "openexr-2.2.0 copy/IlmImf/ImfDeepScanLineInputFile.cpp" openexr-2.2.0/IlmImf/ImfDeepScanLineInputFile.cpp --- "openexr-2.2.0 copy/IlmImf/ImfDeepScanLineInputFile.cpp" 2022-07-06 16:43:15.752732000 +0800 +++ openexr-2.2.0/IlmImf/ImfDeepScanLineInputFile.cpp 2022-07-06 16:45:09.368817000 +0800 @@ -717,10 +717,12 @@ int width = (_ifd->maxX - _ifd->minX + 1); + ptrdiff_t base = reinterpret_cast(&_ifd->sampleCount[0][0]); + base -= sizeof(unsigned int)*_ifd->minX; + base -= sizeof(unsigned int)*static_cast(_ifd->minY) * static_cast(width); + copyIntoDeepFrameBuffer (readPtr, slice.base, - (char*) (&_ifd->sampleCount[0][0] - - _ifd->minX - - _ifd->minY * width), + reinterpret_cast(base), sizeof(unsigned int) * 1, sizeof(unsigned int) * width, y, _ifd->minX, _ifd->maxX, diff -Naru "openexr-2.2.0 copy/IlmImf/ImfTiledInputFile.cpp" openexr-2.2.0/IlmImf/ImfTiledInputFile.cpp --- "openexr-2.2.0 copy/IlmImf/ImfTiledInputFile.cpp" 2022-07-06 16:43:15.892732000 +0800 +++ openexr-2.2.0/IlmImf/ImfTiledInputFile.cpp 2022-07-06 16:50:27.438890000 +0800 @@ -903,6 +903,9 @@ if (!isTiled (_data->version)) throw IEX_NAMESPACE::ArgExc ("Expected a tiled file but the file is not tiled."); + if (isNonImage (_data->version)) + throw IEX_NAMESPACE::ArgExc ("File is not a regular tiled image."); + } else {