OpenEXR 3.2.10__tar.gz → 3.2.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openexr-3.2.10 → openexr-3.2.12}/CHANGES.md +140 -0
- {openexr-3.2.10 → openexr-3.2.12}/PKG-INFO +1 -1
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/makeMultiView.cpp +8 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfArray.h +28 -5
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIDManifest.cpp +78 -8
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiView.cpp +1 -1
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfName.h +1 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/decoding.c +13 -9
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_b44.c +6 -2
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_compressor.h +21 -6
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_version.h +1 -1
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageChannel.h +2 -2
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageChannel.h +2 -2
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfSampleCountChannel.h +1 -1
- {openexr-3.2.10 → openexr-3.2.12}/.bazelversion +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/.clang-format +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/.git-blame-ignore-revs +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/.gitignore +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/.mailmap +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/.readthedocs.yml +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/BUILD.bazel +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/CODEOWNERS +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/CODE_OF_CONDUCT.md +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/CONTRIBUTING.md +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/CONTRIBUTORS.md +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/AUTHORS +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/ChangeLog +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/DtexToExr.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/Makefile.test +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxBaseDeepHelper.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxDeepOutPixel.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxDeepOutRow.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxDeepUtils.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxDeepUtils.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxFourChanDeepRgba.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxOneChanDeepAlpha.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxOneChanDeepOpacity.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/README +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/bootstrap +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/configure.ac +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x64-build.nuget.bat +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x64.nuspec +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x64.targets +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x86-build.nuget.bat +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x86.nuspec +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x86.targets +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/GOVERNANCE.md +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/LICENSE.md +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/MODULE.bazel +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/PATENTS +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/README.md +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/SECURITY.md +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/WORKSPACE.bazel +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/FindPythonPackage.cmake +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/FindSphinx.cmake +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/IexConfig.h.in +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/IexConfigInternal.h.in +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/IlmThreadConfig.h.in +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/JoinPaths.cmake +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/LibraryDefine.cmake +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXR.pc.in +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXRConfig.cmake.in +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXRConfig.h.in +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXRConfigInternal.h.in +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXRLibraryDefine.cmake +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXRSetup.cmake +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/SampleCTestScript.cmake +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/Toolchain-Linux-VFX_Platform15.cmake +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/Toolchain-mingw.cmake +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/clang-format.cmake +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/cmake/cmake_uninstall.cmake.in +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/docs/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/pyproject.toml +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/sonar-project.properties +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exr2aces/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exr2aces/main.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrcheck/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrcheck/main.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/EnvmapImage.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/EnvmapImage.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/blurImage.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/blurImage.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/main.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/makeCubeMap.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/makeCubeMap.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/makeLatLongMap.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/makeLatLongMap.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/namespaceAlias.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/readInputImage.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/readInputImage.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/resizeImage.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/resizeImage.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrheader/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrheader/main.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrinfo/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrinfo/main.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmakepreview/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmakepreview/main.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmakepreview/makePreview.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmakepreview/makePreview.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/Image.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/Image.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/main.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/makeTiled.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/makeTiled.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/namespaceAlias.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmanifest/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmanifest/main.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultipart/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultipart/exrmultipart.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/Image.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/Image.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/main.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/makeMultiView.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/namespaceAlias.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrstdattr/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrstdattr/main.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/.gitignore +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/Iex.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexBaseExc.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexBaseExc.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexErrnoExc.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexExport.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexForward.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMacros.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathExc.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathFloatExc.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathFloatExc.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathFpu.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathFpu.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathIeeeExc.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexNamespace.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexThrowErrnoExc.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexThrowErrnoExc.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThread.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThread.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadExport.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadForward.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadMutex.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadNamespace.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadPool.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadPool.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphore.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphore.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphoreOSX.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphorePosix.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphorePosixCompat.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphoreWin32.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfAcesFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfAcesFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfAutoArray.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfB44Compressor.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfB44Compressor.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfBoxAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfBoxAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCRgbaFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCRgbaFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChannelList.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChannelList.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChannelListAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChannelListAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCheckedArithmetic.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChromaticities.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChromaticities.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChromaticitiesAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChromaticitiesAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompositeDeepScanLine.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompositeDeepScanLine.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompression.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompressionAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompressionAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompressor.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompressor.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfConvert.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfConvert.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepCompositing.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepCompositing.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepFrameBuffer.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepFrameBuffer.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepImageState.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepImageStateAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepImageStateAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineInputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineInputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineInputPart.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineInputPart.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineOutputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineOutputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineOutputPart.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineOutputPart.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledInputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledInputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledInputPart.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledInputPart.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledOutputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledOutputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledOutputPart.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledOutputPart.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDoubleAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDoubleAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDwaCompressor.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDwaCompressor.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDwaCompressorSimd.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfEnvmap.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfEnvmap.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfEnvmapAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfEnvmapAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfExport.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFastHuf.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFastHuf.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFloatAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFloatAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFloatVectorAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFloatVectorAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfForward.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFrameBuffer.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFrameBuffer.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFramesPerSecond.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFramesPerSecond.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfGenericInputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfGenericInputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfGenericOutputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfGenericOutputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfHeader.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfHeader.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfHuf.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfHuf.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIDManifest.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIDManifestAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIDManifestAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIO.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIO.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputPart.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputPart.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputPartData.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputPartData.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputStreamMutex.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInt64.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIntAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIntAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfKeyCode.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfKeyCode.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfKeyCodeAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfKeyCodeAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfLineOrder.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfLineOrderAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfLineOrderAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfLut.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfLut.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMatrixAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMatrixAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMisc.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMisc.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiPartInputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiPartInputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiPartOutputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiPartOutputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiView.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfNamespace.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOpaqueAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOpaqueAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOptimizedPixelReading.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputPart.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputPart.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputPartData.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputPartData.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputStreamMutex.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPartHelper.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPartType.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPartType.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPixelType.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPizCompressor.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPizCompressor.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPreviewImage.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPreviewImage.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPreviewImageAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPreviewImageAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPxr24Compressor.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPxr24Compressor.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRational.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRational.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRationalAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRationalAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRgba.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRgbaFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRgbaFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRgbaYca.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRgbaYca.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRle.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRle.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRleCompressor.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRleCompressor.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfScanLineInputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfScanLineInputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfSimd.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStandardAttributes.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStandardAttributes.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStdIO.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStdIO.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStringAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStringAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStringVectorAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStringVectorAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfSystemSpecific.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfSystemSpecific.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTestFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTestFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfThreading.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfThreading.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTileDescription.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTileDescriptionAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTileDescriptionAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTileOffsets.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTileOffsets.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledInputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledInputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledInputPart.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledInputPart.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledMisc.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledMisc.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledOutputFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledOutputFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledOutputPart.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledOutputPart.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledRgbaFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledRgbaFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTimeCode.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTimeCode.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTimeCodeAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTimeCodeAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfVecAttribute.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfVecAttribute.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfVersion.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfVersion.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfWav.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfWav.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfXdr.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfZip.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfZip.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfZipCompressor.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfZipCompressor.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/b44ExpLogTable.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/b44ExpLogTable.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/dwaLookups.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/dwaLookups.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/attributes.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/backward_compatibility.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/base.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/channel_list.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/chunk.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/coding.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/compression.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/context.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/debug.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/encoding.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/float_vector.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_attr.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_b44_table.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_channel_list.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_coding.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_compress.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_constants.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_cpuid.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_decompress.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_channeldata.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_classifier.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_decoder.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_encoder.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_helpers.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_simd.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_file.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_float_vector.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_huf.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_huf.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_memory.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_opaque.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_piz.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_posix_file_impl.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_preview.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_pxr24.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_rle.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_string.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_string_vector.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_structs.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_structs.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_util.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_win32_file_impl.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_xdr.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_zip.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/memory.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/opaque.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_attr.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_base.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_chunkio.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_coding.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_compression.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_config.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_context.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_debug.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_decode.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_encode.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_errors.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_part.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_std_attr.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/pack.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/parse_header.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/part.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/part_attr.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/preview.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/std_attr.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/string.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/string_vector.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/unpack.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/validation.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/write_header.c +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfCheckFile.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfCheckFile.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImage.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImage.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageChannel.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageIO.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageIO.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageLevel.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageLevel.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImage.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImage.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageChannel.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageIO.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageIO.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageLevel.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageLevel.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImage.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImage.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageChannel.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageChannel.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageChannelRenaming.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageDataWindow.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageDataWindow.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageIO.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageIO.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageLevel.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageLevel.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfSampleCountChannel.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfUtilExport.h +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/README +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/CMakeLists.txt +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/Imath.py +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/OpenEXR.cpp +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/README.md +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/openexr_skbuild_plugin.py +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/tests/test_minimal.py +0 -0
- {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/tests/test_unittest.py +0 -0
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
* [Version 3.3.2](#version-332-november-11-2024) November 11, 2024
|
|
29
29
|
* [Version 3.3.1](#version-331-october-8-2024) October 8, 2024
|
|
30
30
|
* [Version 3.3.0](#version-330-september-30-2024) September 30, 2024
|
|
31
|
+
* [Version 3.2.12](#version-3212-august-21-2026) August 21, 2026
|
|
32
|
+
* [Version 3.2.11](#version-3211-august-6-2026) August 6, 2026
|
|
31
33
|
* [Version 3.2.10](#version-3210-june-21-2026) June 21, 2026
|
|
32
34
|
* [Version 3.2.9](#version-329-april-29-2026) April 29, 2026
|
|
33
35
|
* [Version 3.2.8](#version-328-april-17-2026) April 17, 2026
|
|
@@ -1761,6 +1763,144 @@ Fix macOS arm64 build
|
|
|
1761
1763
|
Propagate dwa core 3 1
|
|
1762
1764
|
* [1418](https://github.com/AcademySoftwareFoundation/openexr/pull/1418)
|
|
1763
1765
|
|
|
1766
|
+
## Version 3.2.12 (August 21, 2026)
|
|
1767
|
+
|
|
1768
|
+
v3.2.12 fixes two memory issues when parsing IDManifests. Corrupt
|
|
1769
|
+
or maliciously formed OpenEXR images could trigger excessive memory
|
|
1770
|
+
allocation, but only in code which decodes the idmanifest attribute.
|
|
1771
|
+
Other code is unaffected, even when handling files with idmanifest attributes
|
|
1772
|
+
|
|
1773
|
+
CVEs have been requested for these issues.
|
|
1774
|
+
|
|
1775
|
+
|
|
1776
|
+
### Merged Pull Requests
|
|
1777
|
+
|
|
1778
|
+
* [2575](git@github.com:AcademySoftwareFoundation/openexr/pull/2575)
|
|
1779
|
+
don't preallocate manifest when parsing IDManifests
|
|
1780
|
+
* [2572](git@github.com:AcademySoftwareFoundation/openexr/pull/2572)
|
|
1781
|
+
Bound IDManifest uncompressed size and version-field read
|
|
1782
|
+
|
|
1783
|
+
### Merged Workflow Pull Requests
|
|
1784
|
+
|
|
1785
|
+
|
|
1786
|
+
## Version 3.2.11 (August 6, 2026)
|
|
1787
|
+
|
|
1788
|
+
v3.2.11 is a security-focused patch release for the v3.2 release
|
|
1789
|
+
stream. It fixes 10 CVEs plus a set of additional hardening
|
|
1790
|
+
changes uncovered by the same fuzzing/audit effort.
|
|
1791
|
+
|
|
1792
|
+
For each of these vulnerabilities, an attacker's vector is a
|
|
1793
|
+
maliciously crafted `.exr` file that must be opened by a victim,
|
|
1794
|
+
whether through the OpenEXR/OpenEXRUtil C++ libraries, the
|
|
1795
|
+
command-line tools (`exrmetrics`, `exrmultiview`, `exrmultipart`), or
|
|
1796
|
+
the PyOpenEXR Python bindings. The primary flaw for most of the CVEs
|
|
1797
|
+
is **memory corruption** — heap buffer overflows and out-of-bounds
|
|
1798
|
+
reads/writes — which at minimum crashes the reading process (denial of
|
|
1799
|
+
service) and in several cases could plausibly be leveraged for
|
|
1800
|
+
information disclosure or, in the worst cases, arbitrary code
|
|
1801
|
+
execution.
|
|
1802
|
+
|
|
1803
|
+
No user interaction beyond opening the file is required, so any
|
|
1804
|
+
pipeline, service, or application that decodes untrusted or
|
|
1805
|
+
third-party EXR files should treat this as a priority
|
|
1806
|
+
upgrade. Severity generally ranges from **moderate** (crash-only, or
|
|
1807
|
+
requiring an uncommon build configuration) to **high** (heap overflow
|
|
1808
|
+
reachable with a small, easily-crafted file on common configurations).
|
|
1809
|
+
|
|
1810
|
+
The individual vulnerabilities fall into four broad groups:
|
|
1811
|
+
|
|
1812
|
+
* **Integer-overflow-driven heap overflows on 32-bit (ILP32) builds**
|
|
1813
|
+
([CVE-2026-59985](https://www.cve.org/CVERecord?id=CVE-2026-59985),
|
|
1814
|
+
[CVE-2026-59984](https://www.cve.org/CVERecord?id=CVE-2026-59984),
|
|
1815
|
+
[CVE-2026-59983](https://www.cve.org/CVERecord?id=CVE-2026-59983),
|
|
1816
|
+
[CVE-2026-59982](https://www.cve.org/CVERecord?id=CVE-2026-59982),
|
|
1817
|
+
[CVE-2026-59981](https://www.cve.org/CVERecord?id=CVE-2026-59981),
|
|
1818
|
+
[CVE-2026-59189](https://www.cve.org/CVERecord?id=CVE-2026-59189),
|
|
1819
|
+
[CVE-2026-59186](https://www.cve.org/CVERecord?id=CVE-2026-59186)).
|
|
1820
|
+
On platforms where `size_t`/`int` are 32 bits, buffer sizes computed
|
|
1821
|
+
from attacker-controlled header fields (dimensions, sample counts,
|
|
1822
|
+
tile sizes) could overflow before an allocation or bounds check,
|
|
1823
|
+
yielding an undersized buffer and a subsequent heap out-of-bounds
|
|
1824
|
+
read or write during RLE, B44/B44A, or DWAA decompression, deep
|
|
1825
|
+
sample-count-table decoding, or large-tile handling. These do not
|
|
1826
|
+
affect typical 64-bit desktop/server builds, but are significant for
|
|
1827
|
+
32-bit Linux, embedded, and some mobile/CI targets.
|
|
1828
|
+
|
|
1829
|
+
* **Heap out-of-bounds access in `OpenEXRUtil` with non-default data
|
|
1830
|
+
windows**
|
|
1831
|
+
([CVE-2026-59981](https://www.cve.org/CVERecord?id=CVE-2026-59981),
|
|
1832
|
+
[CVE-2026-59189](https://www.cve.org/CVERecord?id=CVE-2026-59189),
|
|
1833
|
+
[CVE-2026-59186](https://www.cve.org/CVERecord?id=CVE-2026-59186),
|
|
1834
|
+
[CVE-2026-59184](https://www.cve.org/CVERecord?id=CVE-2026-59184)).
|
|
1835
|
+
`FlatImageChannel`/`DeepImageChannel`/`SampleCountChannel` row
|
|
1836
|
+
addressing assumed a data window originating at (0, 0). Crafted files
|
|
1837
|
+
with a nonzero data window origin caused row-address computations to
|
|
1838
|
+
land outside the allocated buffer, producing a heap read or write out
|
|
1839
|
+
of bounds.
|
|
1840
|
+
|
|
1841
|
+
* **Crashes from malformed metadata (denial of service)**
|
|
1842
|
+
([CVE-2026-61555](https://www.cve.org/CVERecord?id=CVE-2026-61555),
|
|
1843
|
+
[CVE-2026-59183](https://www.cve.org/CVERecord?id=CVE-2026-59183)).
|
|
1844
|
+
An empty `multiView` attribute could crash `viewFromChannelName()`,
|
|
1845
|
+
and a signed integer overflow while decoding deep tile chunks could
|
|
1846
|
+
lead to an out-of-bounds access. Both are reachable simply by opening
|
|
1847
|
+
a crafted file and result in a crash rather than corrupting memory
|
|
1848
|
+
in an attacker-controlled way.
|
|
1849
|
+
|
|
1850
|
+
A couple of the merged pull requests below are incidental hardening
|
|
1851
|
+
rather than fixes for a specific numbered CVE — avoiding an unnecessary
|
|
1852
|
+
allocation in idmanifest parsing and a `Name::operator=`
|
|
1853
|
+
null-termination fix — but the bulk of this release is driven by the
|
|
1854
|
+
CVEs above.
|
|
1855
|
+
|
|
1856
|
+
CVEs addressed:
|
|
1857
|
+
|
|
1858
|
+
* [CVE-2026-61555](https://www.cve.org/CVERecord?id=CVE-2026-61555)
|
|
1859
|
+
empty multiView viewFromChannelName file crash
|
|
1860
|
+
* [CVE-2026-59985](https://www.cve.org/CVERecord?id=CVE-2026-59985)
|
|
1861
|
+
ILP32 OpenEXRCore RLE decode heap OOB read DoS
|
|
1862
|
+
* [CVE-2026-59984](https://www.cve.org/CVERecord?id=CVE-2026-59984)
|
|
1863
|
+
ILP32 B44 InputFile decode scratch buffer overflow
|
|
1864
|
+
* [CVE-2026-59983](https://www.cve.org/CVERecord?id=CVE-2026-59983)
|
|
1865
|
+
ILP32 DeepTiledInputFile sample count table decode OOB read
|
|
1866
|
+
* [CVE-2026-59982](https://www.cve.org/CVERecord?id=CVE-2026-59982)
|
|
1867
|
+
ILP32 DWAA InputFile packed AC buffer overflow
|
|
1868
|
+
* [CVE-2026-59981](https://www.cve.org/CVERecord?id=CVE-2026-59981)
|
|
1869
|
+
OpenEXRUtil SampleCountChannel row nonzero dataWindow heap OOB read
|
|
1870
|
+
* [CVE-2026-59189](https://www.cve.org/CVERecord?id=CVE-2026-59189)
|
|
1871
|
+
OpenEXRUtil DeepImageChannel row nonzero dataWindow heap OOB read
|
|
1872
|
+
* [CVE-2026-59186](https://www.cve.org/CVERecord?id=CVE-2026-59186)
|
|
1873
|
+
OpenEXR ILP32 TiledRgbaInputFile large tile Array2D heap OOB write
|
|
1874
|
+
* [CVE-2026-59184](https://www.cve.org/CVERecord?id=CVE-2026-59184)
|
|
1875
|
+
OpenEXRUtil FlatImageChannel row nonzero dataWindow heap OOB write
|
|
1876
|
+
* [CVE-2026-59183](https://www.cve.org/CVERecord?id=CVE-2026-59183)
|
|
1877
|
+
Signed Integer Overflow Leading to Out-of-Bounds Memory Access in Deep Tile Decoding
|
|
1878
|
+
|
|
1879
|
+
### Merged Pull Requests
|
|
1880
|
+
|
|
1881
|
+
* [2530](https://github.com/AcademySoftwareFoundation/openexr/pull/2530)
|
|
1882
|
+
Fix exrmultiview heap OOB when union dataWindow misaligns with subsampling
|
|
1883
|
+
* [2500](https://github.com/AcademySoftwareFoundation/openexr/pull/2500)
|
|
1884
|
+
Fix Name::operator= to null-terminate long strings
|
|
1885
|
+
* [2498](https://github.com/AcademySoftwareFoundation/openexr/pull/2498)
|
|
1886
|
+
Avoid memory allocation in idmanifest parsing
|
|
1887
|
+
* [2496](https://github.com/AcademySoftwareFoundation/openexr/pull/2496)
|
|
1888
|
+
Fix empty multiView crash in viewFromChannelName()
|
|
1889
|
+
* [2494](https://github.com/AcademySoftwareFoundation/openexr/pull/2494)
|
|
1890
|
+
Reject oversized DWAA buffer allocations on ILP32
|
|
1891
|
+
* [2493](https://github.com/AcademySoftwareFoundation/openexr/pull/2493)
|
|
1892
|
+
Fix ILP32 unpacked buffer size truncation in RLE decode
|
|
1893
|
+
* [2492](https://github.com/AcademySoftwareFoundation/openexr/pull/2492)
|
|
1894
|
+
Fix ILP32 deep sample-count table size overflow in decoding
|
|
1895
|
+
* [2491](https://github.com/AcademySoftwareFoundation/openexr/pull/2491)
|
|
1896
|
+
Fix ILP32 B44/B44A scratch buffer overflow in decode
|
|
1897
|
+
* [2488](https://github.com/AcademySoftwareFoundation/openexr/pull/2488)
|
|
1898
|
+
Fix OpenEXRUtil row() OOB read with non-zero data window origin
|
|
1899
|
+
* [2486](https://github.com/AcademySoftwareFoundation/openexr/pull/2486)
|
|
1900
|
+
Fix integer overflow in Array2D::resizeErase() on ILP32/LLP64 builds
|
|
1901
|
+
* [2484](https://github.com/AcademySoftwareFoundation/openexr/pull/2484)
|
|
1902
|
+
Fix signed integer overflow in unpack_sample_table()
|
|
1903
|
+
|
|
1764
1904
|
## Version 3.2.10 (June 21, 2026)
|
|
1765
1905
|
|
|
1766
1906
|
Patch release for 3.2 addressing security issues
|
|
@@ -110,6 +110,14 @@ makeMultiView (
|
|
|
110
110
|
string inChanName = j.name ();
|
|
111
111
|
string outChanName = insertViewName (inChanName, viewNames, i);
|
|
112
112
|
|
|
113
|
+
if (inChannel.xSampling != 1 || inChannel.ySampling != 1)
|
|
114
|
+
THROW (IEX_NAMESPACE::ArgExc,
|
|
115
|
+
"no support for subsampling:"
|
|
116
|
+
<< " channel " << inChanName
|
|
117
|
+
<< " of " << inFileNames[i]
|
|
118
|
+
<< " has subsampling " << inChannel.xSampling
|
|
119
|
+
<< ", " << inChannel.ySampling);
|
|
120
|
+
|
|
113
121
|
image.addChannel (outChanName, inChannel);
|
|
114
122
|
image.channel (outChanName).black ();
|
|
115
123
|
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
#define INCLUDED_IMF_ARRAY_H
|
|
8
8
|
|
|
9
9
|
#include "ImfForward.h"
|
|
10
|
+
#include "IexBaseExc.h"
|
|
11
|
+
|
|
12
|
+
#include <cstddef>
|
|
10
13
|
|
|
11
14
|
//-------------------------------------------------------------------------
|
|
12
15
|
//
|
|
@@ -54,8 +57,11 @@ public:
|
|
|
54
57
|
_data = 0;
|
|
55
58
|
_size = 0;
|
|
56
59
|
}
|
|
57
|
-
Array (long size)
|
|
60
|
+
Array (long size) : _size (0), _data (0)
|
|
58
61
|
{
|
|
62
|
+
if (size < 0)
|
|
63
|
+
throw IEX_NAMESPACE::ArgExc ("Array size must be non-negative");
|
|
64
|
+
|
|
59
65
|
_data = new T[size];
|
|
60
66
|
_size = size;
|
|
61
67
|
}
|
|
@@ -158,6 +164,9 @@ template <class T>
|
|
|
158
164
|
inline void
|
|
159
165
|
Array<T>::resizeErase (long size)
|
|
160
166
|
{
|
|
167
|
+
if (size < 0)
|
|
168
|
+
throw IEX_NAMESPACE::ArgExc ("Array size must be non-negative");
|
|
169
|
+
|
|
161
170
|
T* tmp = new T[size];
|
|
162
171
|
delete[] _data;
|
|
163
172
|
_size = size;
|
|
@@ -168,6 +177,9 @@ template <class T>
|
|
|
168
177
|
inline void
|
|
169
178
|
Array<T>::resizeEraseUnsafe (long size)
|
|
170
179
|
{
|
|
180
|
+
if (size < 0)
|
|
181
|
+
throw IEX_NAMESPACE::ArgExc ("Array size must be non-negative");
|
|
182
|
+
|
|
171
183
|
delete[] _data;
|
|
172
184
|
_data = 0;
|
|
173
185
|
_size = 0;
|
|
@@ -183,9 +195,14 @@ inline Array2D<T>::Array2D () : _sizeX (0), _sizeY (0), _data (0)
|
|
|
183
195
|
|
|
184
196
|
template <class T>
|
|
185
197
|
inline Array2D<T>::Array2D (long sizeX, long sizeY)
|
|
186
|
-
: _sizeX (
|
|
198
|
+
: _sizeX (0), _sizeY (0), _data (0)
|
|
187
199
|
{
|
|
188
|
-
|
|
200
|
+
if (sizeX < 0 || sizeY < 0)
|
|
201
|
+
throw IEX_NAMESPACE::ArgExc ("Array2D dimensions must be non-negative");
|
|
202
|
+
|
|
203
|
+
_sizeX = sizeX;
|
|
204
|
+
_sizeY = sizeY;
|
|
205
|
+
_data = new T[(size_t) sizeX * (size_t) sizeY];
|
|
189
206
|
}
|
|
190
207
|
|
|
191
208
|
template <class T> inline Array2D<T>::~Array2D ()
|
|
@@ -211,7 +228,10 @@ template <class T>
|
|
|
211
228
|
inline void
|
|
212
229
|
Array2D<T>::resizeErase (long sizeX, long sizeY)
|
|
213
230
|
{
|
|
214
|
-
|
|
231
|
+
if (sizeX < 0 || sizeY < 0)
|
|
232
|
+
throw IEX_NAMESPACE::ArgExc ("Array2D dimensions must be non-negative");
|
|
233
|
+
|
|
234
|
+
T* tmp = new T[(size_t) sizeX * (size_t) sizeY];
|
|
215
235
|
delete[] _data;
|
|
216
236
|
_sizeX = sizeX;
|
|
217
237
|
_sizeY = sizeY;
|
|
@@ -222,11 +242,14 @@ template <class T>
|
|
|
222
242
|
inline void
|
|
223
243
|
Array2D<T>::resizeEraseUnsafe (long sizeX, long sizeY)
|
|
224
244
|
{
|
|
245
|
+
if (sizeX < 0 || sizeY < 0)
|
|
246
|
+
throw IEX_NAMESPACE::ArgExc ("Array2D dimensions must be non-negative");
|
|
247
|
+
|
|
225
248
|
delete[] _data;
|
|
226
249
|
_data = 0;
|
|
227
250
|
_sizeX = 0;
|
|
228
251
|
_sizeY = 0;
|
|
229
|
-
_data = new T[sizeX * sizeY];
|
|
252
|
+
_data = new T[(size_t) sizeX * (size_t) sizeY];
|
|
230
253
|
_sizeX = sizeX;
|
|
231
254
|
_sizeY = sizeY;
|
|
232
255
|
}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#include <openexr_compression.h>
|
|
15
15
|
|
|
16
16
|
#include <algorithm>
|
|
17
|
+
#include <limits>
|
|
17
18
|
#include <stdint.h>
|
|
18
19
|
#include <stdlib.h>
|
|
19
20
|
#include <string.h>
|
|
@@ -177,21 +178,53 @@ readStringList (
|
|
|
177
178
|
Xdr::read<CharPtrIO> (readPtr, numberOfStrings);
|
|
178
179
|
}
|
|
179
180
|
|
|
180
|
-
|
|
181
|
+
|
|
182
|
+
if (numberOfStrings < 0)
|
|
183
|
+
{
|
|
184
|
+
throw IEX_NAMESPACE::InputExc (
|
|
185
|
+
"Negative count for number of strings");
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (readPtr + numberOfStrings > endPtr)
|
|
189
|
+
{
|
|
190
|
+
throw IEX_NAMESPACE::InputExc (
|
|
191
|
+
"IDManifest too small for string length table");
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
//
|
|
196
|
+
// compute total table size
|
|
197
|
+
//
|
|
198
|
+
const char* tablePtr = readPtr;
|
|
199
|
+
|
|
200
|
+
size_t totalTableSize = 0;
|
|
181
201
|
|
|
182
202
|
for (int i = 0; i < numberOfStrings; ++i)
|
|
183
203
|
{
|
|
184
|
-
|
|
204
|
+
totalTableSize += readVariableLengthInteger (readPtr, endPtr);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
if(readPtr + totalTableSize > endPtr)
|
|
209
|
+
{
|
|
210
|
+
throw IEX_NAMESPACE::InputExc ("IDManifest too small for string table");
|
|
185
211
|
}
|
|
212
|
+
|
|
213
|
+
//
|
|
214
|
+
// now tablePtr points to size of string in string table, and readPtr
|
|
215
|
+
// points to the string itself
|
|
216
|
+
//
|
|
217
|
+
|
|
186
218
|
for (int i = 0; i < numberOfStrings; ++i)
|
|
187
219
|
{
|
|
188
220
|
|
|
189
|
-
|
|
221
|
+
size_t length = readVariableLengthInteger (tablePtr, endPtr);
|
|
222
|
+
if (readPtr + length > endPtr)
|
|
190
223
|
{
|
|
191
224
|
throw IEX_NAMESPACE::InputExc ("IDManifest too small for string");
|
|
192
225
|
}
|
|
193
|
-
outputVector.insert (outputVector.end (), string (readPtr,
|
|
194
|
-
readPtr +=
|
|
226
|
+
outputVector.insert (outputVector.end (), string (readPtr, length));
|
|
227
|
+
readPtr += length;
|
|
195
228
|
}
|
|
196
229
|
}
|
|
197
230
|
|
|
@@ -316,6 +349,11 @@ IDManifest::IDManifest (const char* data, const char* endOfData)
|
|
|
316
349
|
void
|
|
317
350
|
IDManifest::init (const char* data, const char* endOfData)
|
|
318
351
|
{
|
|
352
|
+
if (data + sizeof (unsigned int) > endOfData)
|
|
353
|
+
{
|
|
354
|
+
throw IEX_NAMESPACE::InputExc (
|
|
355
|
+
"IDManifest too small for version field");
|
|
356
|
+
}
|
|
319
357
|
|
|
320
358
|
unsigned int version;
|
|
321
359
|
Xdr::read<CharPtrIO> (data, version);
|
|
@@ -449,13 +487,17 @@ IDManifest::init (const char* data, const char* endOfData)
|
|
|
449
487
|
|
|
450
488
|
_manifest.clear ();
|
|
451
489
|
|
|
452
|
-
|
|
490
|
+
if (manifestEntries <0)
|
|
491
|
+
{
|
|
492
|
+
throw IEX_NAMESPACE::InputExc ("bad number of ChannelGroupsManifests in IDManifest");
|
|
493
|
+
}
|
|
453
494
|
|
|
454
495
|
for (int manifestEntry = 0; manifestEntry < manifestEntries;
|
|
455
496
|
++manifestEntry)
|
|
456
497
|
{
|
|
457
498
|
|
|
458
|
-
ChannelGroupManifest
|
|
499
|
+
_manifest.push_back(ChannelGroupManifest());
|
|
500
|
+
ChannelGroupManifest& m = _manifest.back();
|
|
459
501
|
|
|
460
502
|
//
|
|
461
503
|
// read header of this manifest entry
|
|
@@ -546,6 +588,34 @@ IDManifest::init (const char* data, const char* endOfData)
|
|
|
546
588
|
|
|
547
589
|
IDManifest::IDManifest (const CompressedIDManifest& compressed)
|
|
548
590
|
{
|
|
591
|
+
//
|
|
592
|
+
// Reject an implausible declared uncompressed size before allocating
|
|
593
|
+
// anything for it. The declared size is otherwise an unvalidated
|
|
594
|
+
// 64-bit value taken directly from the file, used as a buffer size
|
|
595
|
+
// before decompression (and thus before any check on its contents),
|
|
596
|
+
// which allows a tiny file to force an enormous, fully-committed
|
|
597
|
+
// allocation (a denial of service) or, at 0, a null-pointer
|
|
598
|
+
// dereference during `init`.
|
|
599
|
+
//
|
|
600
|
+
// OpenEXR places no fixed limit on data size (see setMaxImageSize(),
|
|
601
|
+
// which is off/unlimited by default), so a manifest legitimately may
|
|
602
|
+
// be very large; an absolute cap here would reject valid files. What
|
|
603
|
+
// must hold regardless of size is zlib's own maximum expansion ratio
|
|
604
|
+
// of ~1032:1, so scale the bound by the compressed size actually
|
|
605
|
+
// present in the file instead of an arbitrary constant.
|
|
606
|
+
//
|
|
607
|
+
static const uint64_t MAX_EXPANSION = 1032;
|
|
608
|
+
|
|
609
|
+
if (compressed._uncompressedDataSize == 0 ||
|
|
610
|
+
compressed._compressedDataSize >
|
|
611
|
+
std::numeric_limits<uint64_t>::max () / MAX_EXPANSION ||
|
|
612
|
+
compressed._uncompressedDataSize >
|
|
613
|
+
compressed._compressedDataSize * MAX_EXPANSION)
|
|
614
|
+
{
|
|
615
|
+
throw IEX_NAMESPACE::InputExc (
|
|
616
|
+
"IDManifest has an implausible uncompressed data size");
|
|
617
|
+
}
|
|
618
|
+
|
|
549
619
|
//
|
|
550
620
|
// decompress the compressed manifest
|
|
551
621
|
//
|
|
@@ -570,7 +640,7 @@ IDManifest::IDManifest (const CompressedIDManifest& compressed)
|
|
|
570
640
|
"IDManifest decompression (zlib) failed: mismatch in decompressed data size");
|
|
571
641
|
}
|
|
572
642
|
|
|
573
|
-
init ((
|
|
643
|
+
init (uncomp.data (), uncomp.data () + outSize);
|
|
574
644
|
}
|
|
575
645
|
|
|
576
646
|
void
|
|
@@ -24,12 +24,14 @@ update_pack_unpack_ptrs (exr_decode_pipeline_t* decode)
|
|
|
24
24
|
if (stortype == EXR_STORAGE_DEEP_SCANLINE ||
|
|
25
25
|
stortype == EXR_STORAGE_DEEP_TILED)
|
|
26
26
|
{
|
|
27
|
-
|
|
28
|
-
((
|
|
27
|
+
uint64_t sampsize64 =
|
|
28
|
+
((uint64_t) decode->chunk.width) * ((uint64_t) decode->chunk.height);
|
|
29
29
|
|
|
30
30
|
if ((decode->decode_flags & EXR_DECODE_SAMPLE_COUNTS_AS_INDIVIDUAL))
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
sampsize64 += 1;
|
|
32
|
+
sampsize64 *= sizeof (int32_t);
|
|
33
|
+
if (sampsize64 != (size_t) sampsize64) return EXR_ERR_OUT_OF_MEMORY;
|
|
34
|
+
size_t sampsize = (size_t) sampsize64;
|
|
33
35
|
|
|
34
36
|
if (decode->chunk.sample_count_table_size == sampsize)
|
|
35
37
|
{
|
|
@@ -70,12 +72,14 @@ update_pack_unpack_ptrs (exr_decode_pipeline_t* decode)
|
|
|
70
72
|
}
|
|
71
73
|
else
|
|
72
74
|
{
|
|
75
|
+
if (decode->chunk.unpacked_size != (size_t) decode->chunk.unpacked_size)
|
|
76
|
+
return EXR_ERR_OUT_OF_MEMORY;
|
|
73
77
|
rv = internal_decode_alloc_buffer (
|
|
74
78
|
decode,
|
|
75
79
|
EXR_TRANSCODE_BUFFER_UNPACKED,
|
|
76
80
|
&(decode->unpacked_buffer),
|
|
77
81
|
&(decode->unpacked_alloc_size),
|
|
78
|
-
decode->chunk.unpacked_size);
|
|
82
|
+
(size_t) decode->chunk.unpacked_size);
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
return rv;
|
|
@@ -339,8 +343,8 @@ unpack_sample_table (
|
|
|
339
343
|
const struct _internal_exr_context* pctxt, exr_decode_pipeline_t* decode)
|
|
340
344
|
{
|
|
341
345
|
exr_result_t rv = EXR_ERR_SUCCESS;
|
|
342
|
-
|
|
343
|
-
|
|
346
|
+
int64_t w = decode->chunk.width;
|
|
347
|
+
int64_t h = decode->chunk.height;
|
|
344
348
|
uint64_t totsamp = 0;
|
|
345
349
|
int32_t* samptable = decode->sample_count_table;
|
|
346
350
|
size_t combSampSize = 0;
|
|
@@ -350,7 +354,7 @@ unpack_sample_table (
|
|
|
350
354
|
|
|
351
355
|
if ((decode->decode_flags & EXR_DECODE_SAMPLE_COUNTS_AS_INDIVIDUAL))
|
|
352
356
|
{
|
|
353
|
-
for (
|
|
357
|
+
for (int64_t y = 0; y < h; ++y)
|
|
354
358
|
{
|
|
355
359
|
int32_t *cursampline = samptable + y * w;
|
|
356
360
|
int32_t prevsamp = 0;
|
|
@@ -371,7 +375,7 @@ unpack_sample_table (
|
|
|
371
375
|
}
|
|
372
376
|
else
|
|
373
377
|
{
|
|
374
|
-
for (
|
|
378
|
+
for (int64_t y = 0; y < h; ++y)
|
|
375
379
|
{
|
|
376
380
|
int32_t *cursampline = samptable + y * w;
|
|
377
381
|
int32_t prevsamp = 0;
|
|
@@ -648,12 +648,14 @@ internal_exr_undo_b44 (
|
|
|
648
648
|
uint64_t uncompressed_size)
|
|
649
649
|
{
|
|
650
650
|
exr_result_t rv;
|
|
651
|
+
uint64_t scratch_sz = compute_scratch_buffer_size (decode, uncompressed_size);
|
|
652
|
+
if (scratch_sz != (size_t) scratch_sz) return EXR_ERR_OUT_OF_MEMORY;
|
|
651
653
|
rv = internal_decode_alloc_buffer (
|
|
652
654
|
decode,
|
|
653
655
|
EXR_TRANSCODE_BUFFER_SCRATCH1,
|
|
654
656
|
&(decode->scratch_buffer_1),
|
|
655
657
|
&(decode->scratch_alloc_size_1),
|
|
656
|
-
|
|
658
|
+
(size_t) scratch_sz);
|
|
657
659
|
if (rv != EXR_ERR_SUCCESS) return rv;
|
|
658
660
|
|
|
659
661
|
return uncompress_b44_impl (
|
|
@@ -673,12 +675,14 @@ internal_exr_undo_b44a (
|
|
|
673
675
|
uint64_t uncompressed_size)
|
|
674
676
|
{
|
|
675
677
|
exr_result_t rv;
|
|
678
|
+
uint64_t scratch_sz = compute_scratch_buffer_size (decode, uncompressed_size);
|
|
679
|
+
if (scratch_sz != (size_t) scratch_sz) return EXR_ERR_OUT_OF_MEMORY;
|
|
676
680
|
rv = internal_decode_alloc_buffer (
|
|
677
681
|
decode,
|
|
678
682
|
EXR_TRANSCODE_BUFFER_SCRATCH1,
|
|
679
683
|
&(decode->scratch_buffer_1),
|
|
680
684
|
&(decode->scratch_alloc_size_1),
|
|
681
|
-
|
|
685
|
+
(size_t) scratch_sz);
|
|
682
686
|
if (rv != EXR_ERR_SUCCESS) return rv;
|
|
683
687
|
|
|
684
688
|
return uncompress_b44_impl (
|
|
@@ -1396,10 +1396,15 @@ DwaCompressor_initializeBuffers (DwaCompressor* me, size_t* bufferSize)
|
|
|
1396
1396
|
if (maxLossyDctAcSize * numLossyDctChans > me->_packedAcBufferSize)
|
|
1397
1397
|
{
|
|
1398
1398
|
me->_packedAcBufferSize = maxLossyDctAcSize * numLossyDctChans;
|
|
1399
|
+
if (me->_packedAcBufferSize > SIZE_MAX)
|
|
1400
|
+
{
|
|
1401
|
+
return EXR_ERR_OUT_OF_MEMORY;
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1399
1404
|
if (me->_packedAcBuffer != NULL) me->free_fn (me->_packedAcBuffer);
|
|
1400
|
-
me->_packedAcBuffer = me->alloc_fn (me->_packedAcBufferSize);
|
|
1405
|
+
me->_packedAcBuffer = me->alloc_fn ((size_t) me->_packedAcBufferSize);
|
|
1401
1406
|
if (!me->_packedAcBuffer) return EXR_ERR_OUT_OF_MEMORY;
|
|
1402
|
-
memset (me->_packedAcBuffer, 0, me->_packedAcBufferSize);
|
|
1407
|
+
memset (me->_packedAcBuffer, 0, (size_t) me->_packedAcBufferSize);
|
|
1403
1408
|
}
|
|
1404
1409
|
|
|
1405
1410
|
//
|
|
@@ -1409,19 +1414,29 @@ DwaCompressor_initializeBuffers (DwaCompressor* me, size_t* bufferSize)
|
|
|
1409
1414
|
if (maxLossyDctDcSize * numLossyDctChans > me->_packedDcBufferSize)
|
|
1410
1415
|
{
|
|
1411
1416
|
me->_packedDcBufferSize = maxLossyDctDcSize * numLossyDctChans;
|
|
1417
|
+
if (me->_packedDcBufferSize > SIZE_MAX)
|
|
1418
|
+
{
|
|
1419
|
+
return EXR_ERR_OUT_OF_MEMORY;
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1412
1422
|
if (me->_packedDcBuffer != NULL) me->free_fn (me->_packedDcBuffer);
|
|
1413
|
-
me->_packedDcBuffer = me->alloc_fn (me->_packedDcBufferSize);
|
|
1423
|
+
me->_packedDcBuffer = me->alloc_fn ((size_t) me->_packedDcBufferSize);
|
|
1414
1424
|
if (!me->_packedDcBuffer) return EXR_ERR_OUT_OF_MEMORY;
|
|
1415
|
-
memset (me->_packedDcBuffer, 0, me->_packedDcBufferSize);
|
|
1425
|
+
memset (me->_packedDcBuffer, 0, (size_t) me->_packedDcBufferSize);
|
|
1416
1426
|
}
|
|
1417
1427
|
|
|
1418
1428
|
if (rleBufferSize > me->_rleBufferSize)
|
|
1419
1429
|
{
|
|
1420
1430
|
me->_rleBufferSize = rleBufferSize;
|
|
1431
|
+
if (rleBufferSize > SIZE_MAX)
|
|
1432
|
+
{
|
|
1433
|
+
return EXR_ERR_OUT_OF_MEMORY;
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1421
1436
|
if (me->_rleBuffer != 0) me->free_fn (me->_rleBuffer);
|
|
1422
|
-
me->_rleBuffer = me->alloc_fn (rleBufferSize);
|
|
1437
|
+
me->_rleBuffer = me->alloc_fn ((size_t) rleBufferSize);
|
|
1423
1438
|
if (!me->_rleBuffer) return EXR_ERR_OUT_OF_MEMORY;
|
|
1424
|
-
memset (me->_rleBuffer, 0, rleBufferSize);
|
|
1439
|
+
memset (me->_rleBuffer, 0, (size_t) rleBufferSize);
|
|
1425
1440
|
}
|
|
1426
1441
|
|
|
1427
1442
|
//
|
|
@@ -248,14 +248,14 @@ template <class T>
|
|
|
248
248
|
inline T* const*
|
|
249
249
|
TypedDeepImageChannel<T>::row (int r)
|
|
250
250
|
{
|
|
251
|
-
return
|
|
251
|
+
return _sampleListPointers + r * pixelsPerRow ();
|
|
252
252
|
}
|
|
253
253
|
|
|
254
254
|
template <class T>
|
|
255
255
|
inline const T* const*
|
|
256
256
|
TypedDeepImageChannel<T>::row (int r) const
|
|
257
257
|
{
|
|
258
|
-
return
|
|
258
|
+
return _sampleListPointers + r * pixelsPerRow ();
|
|
259
259
|
}
|
|
260
260
|
|
|
261
261
|
#ifndef COMPILING_IMF_DEEP_IMAGE_CHANNEL
|
|
@@ -199,14 +199,14 @@ template <class T>
|
|
|
199
199
|
inline T*
|
|
200
200
|
TypedFlatImageChannel<T>::row (int r)
|
|
201
201
|
{
|
|
202
|
-
return
|
|
202
|
+
return _pixels + r * pixelsPerRow ();
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
template <class T>
|
|
206
206
|
inline const T*
|
|
207
207
|
TypedFlatImageChannel<T>::row (int n) const
|
|
208
208
|
{
|
|
209
|
-
return
|
|
209
|
+
return _pixels + n * pixelsPerRow ();
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
#ifndef COMPILING_IMF_FLAT_IMAGE_CHANNEL
|
|
@@ -316,7 +316,7 @@ SampleCountChannel::at (int x, int y) const
|
|
|
316
316
|
inline const unsigned int*
|
|
317
317
|
SampleCountChannel::row (int n) const
|
|
318
318
|
{
|
|
319
|
-
return
|
|
319
|
+
return _numSamples + n * pixelsPerRow ();
|
|
320
320
|
}
|
|
321
321
|
|
|
322
322
|
OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|