OpenEXR 3.2.6__tar.gz → 3.2.8__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.6 → openexr-3.2.8}/CHANGES.md +43 -0
- {openexr-3.2.6 → openexr-3.2.8}/PKG-INFO +1 -1
- openexr-3.2.8/SECURITY.md +200 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/compression.c +13 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_b44.c +12 -11
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_dwa_compressor.h +4 -3
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_dwa_decoder.h +15 -6
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_piz.c +23 -16
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_pxr24.c +7 -5
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_version.h +1 -1
- openexr-3.2.6/SECURITY.md +0 -177
- {openexr-3.2.6 → openexr-3.2.8}/.bazelversion +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/.clang-format +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/.git-blame-ignore-revs +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/.gitignore +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/.mailmap +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/.readthedocs.yml +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/BUILD.bazel +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/CODEOWNERS +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/CODE_OF_CONDUCT.md +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/CONTRIBUTING.md +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/CONTRIBUTORS.md +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/AUTHORS +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/ChangeLog +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/DtexToExr.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/Makefile.test +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/PxBaseDeepHelper.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/PxDeepOutPixel.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/PxDeepOutRow.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/PxDeepUtils.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/PxDeepUtils.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/PxFourChanDeepRgba.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/PxOneChanDeepAlpha.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/PxOneChanDeepOpacity.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/README +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/bootstrap +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/DtexToExr/configure.ac +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/NuGet/OpenEXR-msvc-x64-build.nuget.bat +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/NuGet/OpenEXR-msvc-x64.nuspec +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/NuGet/OpenEXR-msvc-x64.targets +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/NuGet/OpenEXR-msvc-x86-build.nuget.bat +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/NuGet/OpenEXR-msvc-x86.nuspec +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/Contrib/NuGet/OpenEXR-msvc-x86.targets +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/GOVERNANCE.md +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/LICENSE.md +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/MODULE.bazel +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/PATENTS +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/README.md +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/WORKSPACE.bazel +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/FindPythonPackage.cmake +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/FindSphinx.cmake +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/IexConfig.h.in +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/IexConfigInternal.h.in +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/IlmThreadConfig.h.in +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/JoinPaths.cmake +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/LibraryDefine.cmake +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/OpenEXR.pc.in +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/OpenEXRConfig.cmake.in +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/OpenEXRConfig.h.in +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/OpenEXRConfigInternal.h.in +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/OpenEXRLibraryDefine.cmake +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/OpenEXRSetup.cmake +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/SampleCTestScript.cmake +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/Toolchain-Linux-VFX_Platform15.cmake +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/Toolchain-mingw.cmake +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/clang-format.cmake +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/cmake/cmake_uninstall.cmake.in +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/docs/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/pyproject.toml +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/sonar-project.properties +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exr2aces/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exr2aces/main.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrcheck/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrcheck/main.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/EnvmapImage.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/EnvmapImage.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/blurImage.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/blurImage.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/main.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/makeCubeMap.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/makeCubeMap.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/makeLatLongMap.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/makeLatLongMap.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/namespaceAlias.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/readInputImage.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/readInputImage.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/resizeImage.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrenvmap/resizeImage.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrheader/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrheader/main.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrinfo/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrinfo/main.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmakepreview/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmakepreview/main.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmakepreview/makePreview.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmakepreview/makePreview.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmaketiled/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmaketiled/Image.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmaketiled/Image.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmaketiled/main.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmaketiled/makeTiled.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmaketiled/makeTiled.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmaketiled/namespaceAlias.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmanifest/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmanifest/main.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmultipart/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmultipart/exrmultipart.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmultiview/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmultiview/Image.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmultiview/Image.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmultiview/main.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmultiview/makeMultiView.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmultiview/makeMultiView.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrmultiview/namespaceAlias.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrstdattr/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/bin/exrstdattr/main.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/.gitignore +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/Iex.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexBaseExc.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexBaseExc.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexErrnoExc.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexExport.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexForward.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexMacros.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexMathExc.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexMathFloatExc.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexMathFloatExc.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexMathFpu.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexMathFpu.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexMathIeeeExc.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexNamespace.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexThrowErrnoExc.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/Iex/IexThrowErrnoExc.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThread.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThread.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadExport.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadForward.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadMutex.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadNamespace.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadPool.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadPool.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadSemaphore.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadSemaphore.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadSemaphoreOSX.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadSemaphorePosix.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadSemaphorePosixCompat.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/IlmThread/IlmThreadSemaphoreWin32.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfAcesFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfAcesFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfArray.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfAutoArray.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfB44Compressor.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfB44Compressor.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfBoxAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfBoxAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfCRgbaFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfCRgbaFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfChannelList.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfChannelList.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfChannelListAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfChannelListAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfCheckedArithmetic.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfChromaticities.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfChromaticities.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfChromaticitiesAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfChromaticitiesAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfCompositeDeepScanLine.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfCompositeDeepScanLine.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfCompression.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfCompressionAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfCompressionAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfCompressor.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfCompressor.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfConvert.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfConvert.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepCompositing.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepCompositing.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepFrameBuffer.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepFrameBuffer.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepImageState.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepImageStateAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepImageStateAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepScanLineInputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepScanLineInputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepScanLineInputPart.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepScanLineInputPart.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepScanLineOutputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepScanLineOutputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepScanLineOutputPart.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepScanLineOutputPart.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepTiledInputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepTiledInputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepTiledInputPart.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepTiledInputPart.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepTiledOutputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepTiledOutputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepTiledOutputPart.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDeepTiledOutputPart.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDoubleAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDoubleAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDwaCompressor.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDwaCompressor.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfDwaCompressorSimd.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfEnvmap.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfEnvmap.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfEnvmapAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfEnvmapAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfExport.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfFastHuf.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfFastHuf.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfFloatAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfFloatAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfFloatVectorAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfFloatVectorAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfForward.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfFrameBuffer.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfFrameBuffer.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfFramesPerSecond.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfFramesPerSecond.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfGenericInputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfGenericInputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfGenericOutputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfGenericOutputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfHeader.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfHeader.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfHuf.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfHuf.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfIDManifest.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfIDManifest.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfIDManifestAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfIDManifestAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfIO.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfIO.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfInputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfInputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfInputPart.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfInputPart.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfInputPartData.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfInputPartData.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfInputStreamMutex.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfInt64.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfIntAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfIntAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfKeyCode.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfKeyCode.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfKeyCodeAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfKeyCodeAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfLineOrder.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfLineOrderAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfLineOrderAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfLut.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfLut.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfMatrixAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfMatrixAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfMisc.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfMisc.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfMultiPartInputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfMultiPartInputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfMultiPartOutputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfMultiPartOutputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfMultiView.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfMultiView.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfName.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfNamespace.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfOpaqueAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfOpaqueAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfOptimizedPixelReading.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfOutputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfOutputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfOutputPart.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfOutputPart.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfOutputPartData.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfOutputPartData.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfOutputStreamMutex.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPartHelper.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPartType.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPartType.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPixelType.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPizCompressor.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPizCompressor.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPreviewImage.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPreviewImage.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPreviewImageAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPreviewImageAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPxr24Compressor.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfPxr24Compressor.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRational.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRational.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRationalAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRationalAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRgba.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRgbaFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRgbaFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRgbaYca.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRgbaYca.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRle.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRle.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRleCompressor.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfRleCompressor.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfScanLineInputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfScanLineInputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfSimd.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfStandardAttributes.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfStandardAttributes.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfStdIO.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfStdIO.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfStringAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfStringAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfStringVectorAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfStringVectorAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfSystemSpecific.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfSystemSpecific.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTestFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTestFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfThreading.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfThreading.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTileDescription.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTileDescriptionAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTileDescriptionAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTileOffsets.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTileOffsets.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledInputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledInputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledInputPart.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledInputPart.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledMisc.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledMisc.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledOutputFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledOutputFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledOutputPart.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledOutputPart.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledRgbaFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTiledRgbaFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTimeCode.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTimeCode.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTimeCodeAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfTimeCodeAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfVecAttribute.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfVecAttribute.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfVersion.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfVersion.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfWav.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfWav.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfXdr.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfZip.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfZip.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfZipCompressor.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/ImfZipCompressor.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/b44ExpLogTable.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/b44ExpLogTable.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/dwaLookups.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXR/dwaLookups.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/attributes.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/backward_compatibility.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/base.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/channel_list.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/chunk.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/coding.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/context.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/debug.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/decoding.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/encoding.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/float_vector.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_attr.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_b44_table.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_channel_list.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_coding.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_compress.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_constants.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_cpuid.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_decompress.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_dwa.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_dwa_channeldata.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_dwa_classifier.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_dwa_encoder.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_dwa_helpers.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_dwa_simd.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_file.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_float_vector.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_huf.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_huf.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_memory.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_opaque.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_posix_file_impl.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_preview.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_rle.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_string.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_string_vector.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_structs.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_structs.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_util.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_win32_file_impl.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_xdr.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/internal_zip.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/memory.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/opaque.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_attr.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_base.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_chunkio.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_coding.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_compression.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_config.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_context.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_debug.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_decode.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_encode.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_errors.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_part.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/openexr_std_attr.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/pack.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/parse_header.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/part.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/part_attr.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/preview.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/std_attr.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/string.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/string_vector.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/unpack.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/validation.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRCore/write_header.c +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfCheckFile.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfCheckFile.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfDeepImage.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfDeepImage.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfDeepImageChannel.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfDeepImageChannel.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfDeepImageIO.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfDeepImageIO.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfDeepImageLevel.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfDeepImageLevel.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfFlatImage.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfFlatImage.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfFlatImageChannel.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfFlatImageChannel.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfFlatImageIO.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfFlatImageIO.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfFlatImageLevel.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfFlatImageLevel.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImage.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImage.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImageChannel.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImageChannel.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImageChannelRenaming.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImageDataWindow.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImageDataWindow.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImageIO.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImageIO.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImageLevel.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfImageLevel.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfSampleCountChannel.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfSampleCountChannel.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/ImfUtilExport.h +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/lib/OpenEXRUtil/README +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/wrappers/python/CMakeLists.txt +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/wrappers/python/Imath.py +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/wrappers/python/OpenEXR.cpp +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/wrappers/python/README.md +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/wrappers/python/openexr_skbuild_plugin.py +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/wrappers/python/tests/test_minimal.py +0 -0
- {openexr-3.2.6 → openexr-3.2.8}/src/wrappers/python/tests/test_unittest.py +0 -0
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
# OpenEXR Release Notes
|
|
5
5
|
|
|
6
|
+
* [Version 3.2.8](#version-328-april-17-2026) April 17, 2026
|
|
7
|
+
* [Version 3.2.7](#version-327-april-3-2026) April 3, 2026
|
|
6
8
|
* [Version 3.2.6](#version-326-february-26-2026) February 26, 2026
|
|
7
9
|
* [Version 3.2.5](#version-325-november-4-2025) November 4, 2025
|
|
8
10
|
* [Version 3.2.4](#version-324-march-26-2024) March 26, 2024
|
|
@@ -76,6 +78,47 @@
|
|
|
76
78
|
* [Version 1.0.1](#version-101)
|
|
77
79
|
* [Version 1.0](#version-10)
|
|
78
80
|
|
|
81
|
+
## Version 3.2.8 (April 17, 2026)
|
|
82
|
+
|
|
83
|
+
Patch release that addresses the following security vulnerabilities:
|
|
84
|
+
|
|
85
|
+
* [CVE-2026-40244](https://www.cve.org/CVERecord?id=CVE-2026-40244) Integer overflow in DWA setupChannelData planarUncRle pointer arithmetic (missed variant of CVE-2026-34589)
|
|
86
|
+
* [CVE-2026-40250](https://www.cve.org/CVERecord?id=CVE-2026-40250) Integer overflow in DWA decoder outBufferEnd pointer arithmetic (missed variant of CVE-2026-34589)
|
|
87
|
+
|
|
88
|
+
### Merged Pull Requests
|
|
89
|
+
|
|
90
|
+
* [2346](https://github.com/AcademySoftwareFoundation/openexr/pull/2346)
|
|
91
|
+
Fix integer overflow in internal_dwa_compressor.h
|
|
92
|
+
|
|
93
|
+
## Version 3.2.7 (April 3, 2026)
|
|
94
|
+
|
|
95
|
+
Patch release for v3.2 that addresses the following security vulnerabilities:
|
|
96
|
+
|
|
97
|
+
* [CVE-2026-34589](https://www.cve.org/CVERecord?id=CVE-2026-34589) DWA Lossy Decoder Heap Out-of-Bounds Write
|
|
98
|
+
* [CVE-2026-34588](https://www.cve.org/CVERecord?id=CVE-2026-34588) Signed 32-bit Overflow in PIZ Decoder Leads to OOB Read/Write
|
|
99
|
+
* [CVE-2026-34544](https://www.cve.org/CVERecord?id=CVE-2026-34544) integer overflow to OOB write in uncompress_b44_impl()
|
|
100
|
+
* [CVE-2026-34543](https://www.cve.org/CVERecord?id=CVE-2026-34543) Heap information disclosure in PXR24 decompression via unchecked decompressed size (undo_pxr24_impl)
|
|
101
|
+
* [CVE-2026-34380](https://www.cve.org/CVERecord?id=CVE-2026-34380) Signed integer overflow (undefined behavior) in undo_pxr24_impl may allow bounds-check bypass in PXR24 decompression
|
|
102
|
+
* [CVE-2026-34379](https://www.cve.org/CVERecord?id=CVE-2026-34379) Misaligned write in LossyDctDecoder_execute leading to undefined behavior (DWA/DWAB decompression)
|
|
103
|
+
|
|
104
|
+
### Merged Pull Requests
|
|
105
|
+
|
|
106
|
+
* [2329](https://github.com/AcademySoftwareFoundation/openexr/pull/2329)
|
|
107
|
+
Fix signed integer overflow in `LossyDctDecoder_execute()` pointer arithmatic
|
|
108
|
+
* [2328](https://github.com/AcademySoftwareFoundation/openexr/pull/2328)
|
|
109
|
+
fix integer overflow in PIZ wavelet buffer arithmetic
|
|
110
|
+
* [2324](https://github.com/AcademySoftwareFoundation/openexr/pull/2324)
|
|
111
|
+
Fix misaligned memory access in `LossyDctDecoder_execute` HALF→FLOAT expansion
|
|
112
|
+
* [2323](https://github.com/AcademySoftwareFoundation/openexr/pull/2323)
|
|
113
|
+
fix signed integer overflow in `undo_pxr24_impl()`
|
|
114
|
+
* [2312](https://github.com/AcademySoftwareFoundation/openexr/pull/2312)
|
|
115
|
+
Fix B44/B44A integer overflow: use uint64_t for row offset
|
|
116
|
+
* [2310](https://github.com/AcademySoftwareFoundation/openexr/pull/2310)
|
|
117
|
+
PXR24: reject zlib output that does not match packed payload size
|
|
118
|
+
|
|
119
|
+
### Merged Workflow Pull Requests
|
|
120
|
+
|
|
121
|
+
|
|
79
122
|
## Version 3.2.6 (February 26, 2026)
|
|
80
123
|
|
|
81
124
|
Patch release that prevents an integer overflow when using the
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
<!-- SPDX-License-Identifier: BSD-3-Clause -->
|
|
2
|
+
<!-- Copyright (c) Contributors to the OpenEXR Project -->
|
|
3
|
+
|
|
4
|
+
# Security Policy
|
|
5
|
+
|
|
6
|
+
## Reporting a Vulnerability
|
|
7
|
+
|
|
8
|
+
If you think you've found a potential vulnerability in OpenEXR, please
|
|
9
|
+
report it by filing a GitHub [security
|
|
10
|
+
advisory](https://github.com/AcademySoftwareFoundation/openexr/security/advisories/new). Alternatively,
|
|
11
|
+
email security@openexr.com and provide your contact info for further
|
|
12
|
+
private/secure discussion. If your email does not receive a prompt
|
|
13
|
+
acknowledgement, your address may be blocked.
|
|
14
|
+
|
|
15
|
+
Our policy is to acknowledge the receipt of vulnerability reports
|
|
16
|
+
within 48 hours. Our policy is to address critical security vulnerabilities
|
|
17
|
+
rapidly and post patches within 14 days if possible.
|
|
18
|
+
|
|
19
|
+
## Known Vulnerabilities
|
|
20
|
+
|
|
21
|
+
| CVE | Affected Versions | Patched Versions |
|
|
22
|
+
| --- | ----------------- | ---------------- |
|
|
23
|
+
| [CVE-2026-40250](https://www.cve.org/CVERecord?id=CVE-2026-40250) | 3.2.0–3.2.7, 3.3.0–3.3.9, 3.4.0–3.4.9 | 3.2.8, 3.3.10, 3.4.10 |
|
|
24
|
+
| [CVE-2026-40244](https://www.cve.org/CVERecord?id=CVE-2026-40244) | 3.2.0–3.2.7, 3.3.0–3.3.9, 3.4.0–3.4.9 | 3.2.8, 3.3.10, 3.4.10 |
|
|
25
|
+
| [CVE-2026-39886](https://www.cve.org/CVERecord?id=CVE-2026-39886) | 3.4.0–3.4.8 | 3.4.10 |
|
|
26
|
+
| [CVE-2026-34589](https://www.cve.org/CVERecord?id=CVE-2026-34589) | 3.2.0–3.2.6, 3.3.0–3.3.8, 3.4.0–3.4.8 | 3.2.7, 3.3.9, 3.4.9 |
|
|
27
|
+
| [CVE-2026-34588](https://www.cve.org/CVERecord?id=CVE-2026-34588) | 3.1.x, 3.2.0–3.2.6, 3.3.0–3.3.8, 3.4.0–3.4.8 | 3.2.7, 3.3.9, 3.4.9 |
|
|
28
|
+
| [CVE-2026-34545](https://www.cve.org/CVERecord?id=CVE-2026-34545) | 3.4.0–3.4.6 | 3.4.7 |
|
|
29
|
+
| [CVE-2026-34544](https://www.cve.org/CVERecord?id=CVE-2026-34544) | 3.2.0–3.2.6, 3.3.0–3.3.8, 3.4.0–3.4.7 | 3.2.7, 3.3.9, 3.4.8 |
|
|
30
|
+
| [CVE-2026-34543](https://www.cve.org/CVERecord?id=CVE-2026-34543) | 3.2.0–3.2.6, 3.3.0–3.3.8, 3.4.0–3.4.7 | 3.2.7, 3.3.9, 3.4.8 |
|
|
31
|
+
| [CVE-2026-34380](https://www.cve.org/CVERecord?id=CVE-2026-34380) | 3.2.0–3.2.6, 3.3.0–3.3.8, 3.4.0–3.4.8 | 3.2.7, 3.3.9, 3.4.9 |
|
|
32
|
+
| [CVE-2026-34379](https://www.cve.org/CVERecord?id=CVE-2026-34379) | 3.2.0–3.2.6, 3.3.0–3.3.8, 3.4.0–3.4.8 | 3.2.7, 3.3.9, 3.4.9 |
|
|
33
|
+
| [CVE-2026-34378](https://www.cve.org/CVERecord?id=CVE-2026-34378) | 3.4.0–3.4.8 | 3.4.9 |
|
|
34
|
+
| [CVE-2026-27622](https://www.cve.org/CVERecord?id=CVE-2026-27622) | 2.x, 3.0.x, 3.1.x, 3.2.0–3.2.5, 3.3.0–3.3.7, 3.4.0–3.4.5 | 3.2.6, 3.3.8, 3.4.6 |
|
|
35
|
+
| [CVE-2026-26981](https://www.cve.org/CVERecord?id=CVE-2026-26981) | 3.3.0–3.3.6, 3.4.0–3.4.4 | 3.3.7, 3.4.5 |
|
|
36
|
+
| [CVE-2025-64183](https://www.cve.org/CVERecord?id=CVE-2025-64183) | 3.2.0–3.2.4, 3.3.0–3.3.5, 3.4.0–3.4.2 | 3.2.5, 3.3.6, 3.4.3 |
|
|
37
|
+
| [CVE-2025-64182](https://www.cve.org/CVERecord?id=CVE-2025-64182) | 3.2.0–3.2.4, 3.3.0–3.3.5, 3.4.0–3.4.2 | 3.2.5, 3.3.6, 3.4.3 |
|
|
38
|
+
| [CVE-2025-64181](https://www.cve.org/CVERecord?id=CVE-2025-64181) | 3.3.0–3.3.5, 3.4.0–3.4.2 | 3.3.6, 3.4.3 |
|
|
39
|
+
| [CVE-2025-48074](https://www.cve.org/CVERecord?id=CVE-2025-48074) | 3.3.2 | 3.3.3 |
|
|
40
|
+
| [CVE-2025-48073](https://www.cve.org/CVERecord?id=CVE-2025-48073) | 3.3.2 | 3.3.3 |
|
|
41
|
+
| [CVE-2025-48072](https://www.cve.org/CVERecord?id=CVE-2025-48072) | 3.3.2 | 3.3.3 |
|
|
42
|
+
| [CVE-2025-48071](https://www.cve.org/CVERecord?id=CVE-2025-48071) | 3.3.0–3.3.2 | 3.3.3 |
|
|
43
|
+
| [CVE-2025-12840](https://www.cve.org/CVERecord?id=CVE-2025-12840) | 3.3.0–3.3.5, 3.4.0–3.4.2 | 3.3.6, 3.4.3 |
|
|
44
|
+
| [CVE-2025-12839](https://www.cve.org/CVERecord?id=CVE-2025-12839) | 3.3.0–3.3.5, 3.4.0–3.4.2 | 3.3.6, 3.4.3 |
|
|
45
|
+
| [CVE-2025-12495](https://www.cve.org/CVERecord?id=CVE-2025-12495) | 3.3.0–3.3.5, 3.4.0–3.4.2 | 3.3.6, 3.4.3 |
|
|
46
|
+
| [CVE-2023-5841](https://nvd.nist.gov/vuln/detail/CVE-2023-5841) | 3.1.0–3.1.11, 3.2.0–3.2.1 | 3.2.2 |
|
|
47
|
+
| [CVE-2021-45942](https://nvd.nist.gov/vuln/detail/CVE-2021-45942) | 3.1.0–3.1.3 | 3.1.4 |
|
|
48
|
+
| [CVE-2021-20296](https://nvd.nist.gov/vuln/detail/CVE-2021-20296) | 2.4.0–2.4.2, 2.5.0–2.5.3 | 2.4.3, 2.5.4 |
|
|
49
|
+
| [CVE-2021-3479](https://nvd.nist.gov/vuln/detail/CVE-2021-3479) | 2.4.0–2.4.2, 2.5.0–2.5.3 | 2.4.3, 2.5.4 |
|
|
50
|
+
| [CVE-2021-3478](https://nvd.nist.gov/vuln/detail/CVE-2021-3478) | 2.4.0–2.4.2, 2.5.0–2.5.3 | 2.4.3, 2.5.4 |
|
|
51
|
+
| [CVE-2021-3477](https://nvd.nist.gov/vuln/detail/CVE-2021-3477) | 2.4.0–2.4.2, 2.5.0–2.5.3 | 2.4.3, 2.5.4 |
|
|
52
|
+
| [CVE-2021-3476](https://nvd.nist.gov/vuln/detail/CVE-2021-3476) | 2.4.0–2.4.2, 2.5.0–2.5.3 | 2.4.3, 2.5.4 |
|
|
53
|
+
| [CVE-2021-3475](https://nvd.nist.gov/vuln/detail/CVE-2021-3475) | 2.4.0–2.4.2, 2.5.0–2.5.3 | 2.4.3, 2.5.4 |
|
|
54
|
+
| [CVE-2021-3474](https://nvd.nist.gov/vuln/detail/CVE-2021-3474) | 2.4.0–2.4.2, 2.5.0–2.5.3 | 2.4.3, 2.5.4 |
|
|
55
|
+
| [CVE-2020-16589](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-16589) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0 | 2.4.0 |
|
|
56
|
+
| [CVE-2020-16588](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-16588) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0 | 2.4.0 |
|
|
57
|
+
| [CVE-2020-16587](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-16587) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0 | 2.4.0 |
|
|
58
|
+
| [CVE-2020-15306](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15306) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0–2.4.1, 2.5.0–2.5.1 | 2.5.2 |
|
|
59
|
+
| [CVE-2020-15305](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15305) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0–2.4.1, 2.5.0–2.5.1 | 2.5.2 |
|
|
60
|
+
| [CVE-2020-15304](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15304) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0–2.4.1, 2.5.0–2.5.1 | 2.5.2 |
|
|
61
|
+
| [CVE-2020-11765](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11765) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0 | 2.4.1 |
|
|
62
|
+
| [CVE-2020-11764](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11764) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0 | 2.4.1 |
|
|
63
|
+
| [CVE-2020-11763](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11763) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0 | 2.4.1 |
|
|
64
|
+
| [CVE-2020-11762](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11762) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0 | 2.4.1 |
|
|
65
|
+
| [CVE-2020-11761](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11761) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0 | 2.4.1 |
|
|
66
|
+
| [CVE-2020-11760](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11760) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0 | 2.4.1 |
|
|
67
|
+
| [CVE-2020-11759](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11759) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0 | 2.4.1 |
|
|
68
|
+
| [CVE-2020-11758](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11758) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0, 2.4.0 | 2.4.1 |
|
|
69
|
+
| [CVE-2018-18444](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-18444) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0 | 2.4.0 |
|
|
70
|
+
| [CVE-2018-18443](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-18443) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1, 2.3.0 | 2.4.0 |
|
|
71
|
+
| [CVE-2017-9116](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9116) | 2.0.0–2.0.1, 2.1.0, 2.2.0 | 2.2.1 |
|
|
72
|
+
| [CVE-2017-9115](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9115) | 2.0.0–2.0.1, 2.1.0, 2.2.0 | 2.2.1 |
|
|
73
|
+
| [CVE-2017-9114](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9114) | 2.0.0–2.0.1, 2.1.0, 2.2.0 | 2.2.1 |
|
|
74
|
+
| [CVE-2017-9113](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9113) | 2.0.0–2.0.1, 2.1.0, 2.2.0 | 2.2.1 |
|
|
75
|
+
| [CVE-2017-9112](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9112) | 2.0.0–2.0.1, 2.1.0, 2.2.0 | 2.2.1 |
|
|
76
|
+
| [CVE-2017-9111](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9111) | 2.0.0–2.0.1, 2.1.0, 2.2.0 | 2.2.1 |
|
|
77
|
+
| [CVE-2017-9110](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9110) | 2.0.0–2.0.1, 2.1.0, 2.2.0 | 2.2.1 |
|
|
78
|
+
| [CVE-2017-12596](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12596) | 2.0.0–2.0.1, 2.1.0, 2.2.0–2.2.1 | 2.3.0 |
|
|
79
|
+
| [CVE-2009-1722](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1722) | 1.0.x, 1.1.x, 1.2.x, 1.3.x, 1.4.x, 1.5.x, 1.6.x | 1.7.0 |
|
|
80
|
+
| [CVE-2009-1721](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1721) | 1.0.x, 1.1.x, 1.2.x, 1.3.x, 1.4.x, 1.5.x, 1.6.x | 1.7.0 |
|
|
81
|
+
| [CVE-2009-1720](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1720) | 1.0.x, 1.1.x, 1.2.x, 1.3.x, 1.4.x, 1.5.x, 1.6.x | 1.7.0 |
|
|
82
|
+
|
|
83
|
+
See the [release notes](CHANGES.md) for more information.
|
|
84
|
+
|
|
85
|
+
## Supported Versions
|
|
86
|
+
|
|
87
|
+
This gives guidance about which branches are supported with patches to
|
|
88
|
+
security vulnerabilities.
|
|
89
|
+
|
|
90
|
+
| Version / branch | Supported |
|
|
91
|
+
| --------- | ---------------------------------------------------- |
|
|
92
|
+
| main | :white_check_mark: :construction: ALL fixes immediately, but this is a branch under development with a frequently unstable ABI and occasionally unstable API. |
|
|
93
|
+
| 3.2.x | :white_check_mark: All fixes that can be backported without breaking ABI compatibility. |
|
|
94
|
+
| 3.1.x | :warning: Only the most critical fixes, only if they can be easily backported. |
|
|
95
|
+
| 3.0.x | :warning: Only the most critical fixes, only if they can be easily backported. |
|
|
96
|
+
| 2.5.x | :warning: Only the most critical fixes, only if they can be easily backported. |
|
|
97
|
+
| <= 1.x | :x: No longer receiving patches of any kind. |
|
|
98
|
+
|
|
99
|
+
## Signed Releases
|
|
100
|
+
|
|
101
|
+
Releases artifacts are signed via
|
|
102
|
+
[sigstore](https://www.sigstore.dev). See
|
|
103
|
+
[release-sign.yml](.github/workflows/release-sign.yml) for details.
|
|
104
|
+
|
|
105
|
+
To verify a downloaded release at a given tag:
|
|
106
|
+
|
|
107
|
+
% pip install sigstore
|
|
108
|
+
% sigstore verify github --cert-identity https://github.com/AcademySoftwareFoundation/openexr/.github/workflows/release-sign.yml@refs/tags/<tag> openexr-<tag>.tar.gz
|
|
109
|
+
|
|
110
|
+
## Security Expectations
|
|
111
|
+
|
|
112
|
+
### Software Features
|
|
113
|
+
|
|
114
|
+
- The OpenEXR project implements the EXR image file format, used
|
|
115
|
+
throughout the motion picture industry and beyond, on Linux, macOS,
|
|
116
|
+
and Windows.
|
|
117
|
+
|
|
118
|
+
- The project consists of a software run-time library, implemented in
|
|
119
|
+
C/C++ and built via cmake, that reads and writes image data
|
|
120
|
+
files. The project also distributes python wrappings for the C/C++
|
|
121
|
+
I/O API.
|
|
122
|
+
|
|
123
|
+
- The library reads and writes binary image data and text-based
|
|
124
|
+
metadata, treated as blind data, none of which is executable code.
|
|
125
|
+
|
|
126
|
+
- Other than the website and online technical documentation, the
|
|
127
|
+
project implements no web/online services or network communication
|
|
128
|
+
protocols. The library never requests any security or
|
|
129
|
+
authentication credentials or login information from users.
|
|
130
|
+
|
|
131
|
+
The website implements no interactive features and requires no login
|
|
132
|
+
credentials.
|
|
133
|
+
|
|
134
|
+
- The library reads and writes only to file paths specificly requested
|
|
135
|
+
via the C/C++ API. The runtime library uses no system configuration
|
|
136
|
+
files or sidecar data files. Access to data files uses only standard
|
|
137
|
+
file I/O system calls.
|
|
138
|
+
|
|
139
|
+
- The library compresses/decompresses data via standard compression
|
|
140
|
+
algorithms but uses no cryptographic or confidentiality protocols.
|
|
141
|
+
|
|
142
|
+
### Software Dependencies
|
|
143
|
+
|
|
144
|
+
OpenEXR depends on
|
|
145
|
+
[Imath](https://github.com/AcademySoftwareFoundation/Imath), a library
|
|
146
|
+
of basic math operations also maintained and distributed by the
|
|
147
|
+
OpenEXR project. Imath follows the same security conventions
|
|
148
|
+
documented here for OpenEXR itself. The core Imath library has no
|
|
149
|
+
external dependencies. The Imath python bindings depend on python and
|
|
150
|
+
boost.
|
|
151
|
+
|
|
152
|
+
The only
|
|
153
|
+
external library dependency of OpenEXR is
|
|
154
|
+
[libdeflate](https://github.com/ebiggers/libdeflate), which implements
|
|
155
|
+
standard deflate/zlib/gzip compression and decompression.
|
|
156
|
+
|
|
157
|
+
The project uses
|
|
158
|
+
[Snyk](https://github.com/AcademySoftwareFoundation/openexr/blob/main/.github/workflows/snyk-scan-pr.yml)
|
|
159
|
+
to scan for dependency vulnerability.
|
|
160
|
+
|
|
161
|
+
### Potential Vulnerabilities
|
|
162
|
+
|
|
163
|
+
Potential entry points are images being loaded using the
|
|
164
|
+
library. Malformed images could caused issues such as heap buffer
|
|
165
|
+
overflows, out-of-memory faults, or segmentation faults that could be
|
|
166
|
+
exploitable as denial-of-service attacks.
|
|
167
|
+
|
|
168
|
+
### Hardening
|
|
169
|
+
|
|
170
|
+
#### Testing
|
|
171
|
+
|
|
172
|
+
The OpenEXR project implements a comprehensive suite of validation
|
|
173
|
+
tests, including fuzz testing to harden against malicious input
|
|
174
|
+
data. Note that fuzz testing hardens only against *small* input data
|
|
175
|
+
files and is not a comprehensive test against all potential input.
|
|
176
|
+
|
|
177
|
+
Note that the
|
|
178
|
+
[exrcheck](https://github.com/AcademySoftwareFoundation/openexr/tree/main/src/bin/exrcheck)
|
|
179
|
+
utility is intended to be used by testers to demonstrate a particular
|
|
180
|
+
proof-of-concept input file exposes a vulnerability, and it is very
|
|
181
|
+
helpful to let us know if a vulnerability can be reproduced using that
|
|
182
|
+
tool.
|
|
183
|
+
|
|
184
|
+
The project also uses the [OSS
|
|
185
|
+
Fuzz](https://bugs.chromium.org/p/oss-fuzz) service for continuous
|
|
186
|
+
fuzz testing.
|
|
187
|
+
|
|
188
|
+
#### Development Cycle and Distribution
|
|
189
|
+
|
|
190
|
+
OpenEXR is downloadable and buildable by C/C++ source via GitHub. Only
|
|
191
|
+
members of the project's Technical Steering Committee, all veteran
|
|
192
|
+
software engineers at major motion picture studios or vendors, have
|
|
193
|
+
write permissions on the source code repository. All critical software
|
|
194
|
+
changes are reviewed by multiple TSC members.
|
|
195
|
+
|
|
196
|
+
The library is distributed in binary form via many common package
|
|
197
|
+
managers across all platforms.
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
@@ -151,6 +151,19 @@ exr_uncompress_buffer (
|
|
|
151
151
|
if (in_bytes == actual_in_bytes) return EXR_ERR_SUCCESS;
|
|
152
152
|
/* it's an error to not consume the full buffer, right? */
|
|
153
153
|
}
|
|
154
|
+
else if (res == LIBDEFLATE_INSUFFICIENT_SPACE)
|
|
155
|
+
{
|
|
156
|
+
return EXR_ERR_OUT_OF_MEMORY;
|
|
157
|
+
}
|
|
158
|
+
else if (res == LIBDEFLATE_SHORT_OUTPUT)
|
|
159
|
+
{
|
|
160
|
+
/* Decompression succeeded; *actual_out is the byte count. This is
|
|
161
|
+
* not an error when out_bytes_avail exceeds the true uncompressed
|
|
162
|
+
* size (e.g. PXR24/ZIP use padded scratch buffers). Callers that
|
|
163
|
+
* need an exact payload size must compare *actual_out (see e.g.
|
|
164
|
+
* undo_pxr24_impl). */
|
|
165
|
+
return EXR_ERR_SUCCESS;
|
|
166
|
+
}
|
|
154
167
|
return EXR_ERR_CORRUPT_CHUNK;
|
|
155
168
|
}
|
|
156
169
|
return EXR_ERR_OUT_OF_MEMORY;
|
|
@@ -390,13 +390,13 @@ compress_b44_impl (exr_encode_pipeline_t* encode, int flat_field)
|
|
|
390
390
|
// rightmost column and the bottom row.
|
|
391
391
|
//
|
|
392
392
|
uint16_t *row0, *row1, *row2, *row3;
|
|
393
|
+
/* row offset in elements: use uint64_t so y*nx cannot overflow int */
|
|
394
|
+
uint64_t row_off = (uint64_t) (y) * (uint64_t) (nx);
|
|
393
395
|
|
|
394
|
-
row0 = (uint16_t*) scratch;
|
|
395
|
-
row0
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
row2 = row1 + nx;
|
|
399
|
-
row3 = row2 + nx;
|
|
396
|
+
row0 = (uint16_t*) scratch + row_off;
|
|
397
|
+
row1 = row0 + (uint64_t) nx;
|
|
398
|
+
row2 = row1 + (uint64_t) nx;
|
|
399
|
+
row3 = row2 + (uint64_t) nx;
|
|
400
400
|
|
|
401
401
|
if (y + 3 >= ny)
|
|
402
402
|
{
|
|
@@ -512,11 +512,12 @@ uncompress_b44_impl (
|
|
|
512
512
|
|
|
513
513
|
for (int y = 0; y < ny; y += 4)
|
|
514
514
|
{
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
515
|
+
/* row offset in elements: use uint64_t so y*nx cannot overflow int */
|
|
516
|
+
uint64_t row_off = (uint64_t) (y) * (uint64_t) (nx);
|
|
517
|
+
row0 = (uint16_t*) scratch + row_off;
|
|
518
|
+
row1 = row0 + (uint64_t) nx;
|
|
519
|
+
row2 = row1 + (uint64_t) nx;
|
|
520
|
+
row3 = row2 + (uint64_t) nx;
|
|
520
521
|
for (int x = 0; x < nx; x += 4)
|
|
521
522
|
{
|
|
522
523
|
if (bIn + 3 > comp_buf_size) return EXR_ERR_OUT_OF_MEMORY;
|
|
@@ -1039,7 +1039,8 @@ DwaCompressor_uncompress (
|
|
|
1039
1039
|
if (rv != EXR_ERR_SUCCESS) return rv;
|
|
1040
1040
|
|
|
1041
1041
|
cd->_dctData._type = chan->data_type;
|
|
1042
|
-
outBufferEnd +=
|
|
1042
|
+
outBufferEnd +=
|
|
1043
|
+
(size_t) chan->width * (size_t) chan->bytes_per_element;
|
|
1043
1044
|
}
|
|
1044
1045
|
}
|
|
1045
1046
|
|
|
@@ -1711,8 +1712,8 @@ DwaCompressor_setupChannelData (DwaCompressor* me)
|
|
|
1711
1712
|
{
|
|
1712
1713
|
for (int byte = 1; byte < curc->bytes_per_element; ++byte)
|
|
1713
1714
|
{
|
|
1714
|
-
cd->planarUncRle[byte] =
|
|
1715
|
-
|
|
1715
|
+
cd->planarUncRle[byte] = cd->planarUncRle[byte - 1] +
|
|
1716
|
+
(size_t) curc->width * (size_t) curc->height;
|
|
1716
1717
|
|
|
1717
1718
|
cd->planarUncRleEnd[byte] = cd->planarUncRle[byte];
|
|
1718
1719
|
}
|
|
@@ -265,7 +265,7 @@ LossyDctDecoder_execute (
|
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
for (int comp = 1; comp < numComp; ++comp)
|
|
268
|
-
rowBlock[comp] = rowBlock[comp - 1] + numBlocksX * 64;
|
|
268
|
+
rowBlock[comp] = rowBlock[comp - 1] + (size_t) numBlocksX * 64;
|
|
269
269
|
|
|
270
270
|
//
|
|
271
271
|
// Pack DC components together by common plane, so we can get
|
|
@@ -275,7 +275,7 @@ LossyDctDecoder_execute (
|
|
|
275
275
|
|
|
276
276
|
currDcComp[0] = (uint16_t*) d->_packedDc;
|
|
277
277
|
for (int comp = 1; comp < numComp; ++comp)
|
|
278
|
-
currDcComp[comp] = currDcComp[comp - 1] + numBlocksX * numBlocksY;
|
|
278
|
+
currDcComp[comp] = currDcComp[comp - 1] + (size_t) numBlocksX * numBlocksY;
|
|
279
279
|
|
|
280
280
|
for (int blocky = 0; blocky < numBlocksY; ++blocky)
|
|
281
281
|
{
|
|
@@ -651,13 +651,22 @@ LossyDctDecoder_execute (
|
|
|
651
651
|
/* process in place in reverse to avoid temporary buffer */
|
|
652
652
|
for (int y = 0; y < d->_height; ++y)
|
|
653
653
|
{
|
|
654
|
-
|
|
655
|
-
uint16_t* halfXdr = (uint16_t*) floatXdrPtr;
|
|
654
|
+
uint8_t* rowBytes = chanData[chan]->_rows[y];
|
|
656
655
|
|
|
657
656
|
for (int x = d->_width - 1; x >= 0; --x)
|
|
658
657
|
{
|
|
659
|
-
|
|
660
|
-
|
|
658
|
+
// TODO: make an unaligned_store32f that takes the float and
|
|
659
|
+
// packages up a one_from_native_float and calls memcpy
|
|
660
|
+
// instead of the two memcpy. We should look at the metrics
|
|
661
|
+
// for dwa and see if there's a performance difference to do
|
|
662
|
+
// so at some point. See:
|
|
663
|
+
// https://github.com/AcademySoftwareFoundation/openexr/pull/2324
|
|
664
|
+
|
|
665
|
+
uint16_t h = unaligned_load16 (rowBytes + x * sizeof (uint16_t));
|
|
666
|
+
float f = half_to_float (h);
|
|
667
|
+
uint32_t bits;
|
|
668
|
+
memcpy (&bits, &f, sizeof (bits));
|
|
669
|
+
unaligned_store32 (rowBytes + x * sizeof (float), bits);
|
|
661
670
|
}
|
|
662
671
|
}
|
|
663
672
|
}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#include "internal_huf.h"
|
|
11
11
|
#include "internal_xdr.h"
|
|
12
12
|
|
|
13
|
+
#include <limits.h>
|
|
13
14
|
#include <string.h>
|
|
14
15
|
|
|
15
16
|
/**************************************/
|
|
@@ -171,10 +172,11 @@ wdec16 (uint16_t l, uint16_t h, uint16_t* a, uint16_t* b)
|
|
|
171
172
|
static void
|
|
172
173
|
wav_2D_encode (uint16_t* in, int nx, int ox, int ny, int oy, uint16_t mx)
|
|
173
174
|
{
|
|
174
|
-
int
|
|
175
|
-
int
|
|
176
|
-
int
|
|
177
|
-
int
|
|
175
|
+
int w14 = (mx < (1 << 14)) ? 1 : 0;
|
|
176
|
+
int n = (nx > ny) ? ny : nx;
|
|
177
|
+
int p = 1; // == 1 << level
|
|
178
|
+
int p2 = 2; // == 1 << (level+1)
|
|
179
|
+
int64_t oy64 = oy;
|
|
178
180
|
|
|
179
181
|
//
|
|
180
182
|
// Hierarchical loop on smaller dimension n
|
|
@@ -183,9 +185,9 @@ wav_2D_encode (uint16_t* in, int nx, int ox, int ny, int oy, uint16_t mx)
|
|
|
183
185
|
while (p2 <= n)
|
|
184
186
|
{
|
|
185
187
|
uint16_t* py = in;
|
|
186
|
-
uint16_t* ey = in +
|
|
187
|
-
|
|
188
|
-
|
|
188
|
+
uint16_t* ey = in + oy64 * (ny - p2);
|
|
189
|
+
int64_t oy1 = oy64 * p;
|
|
190
|
+
int64_t oy2 = oy64 * p2;
|
|
189
191
|
int ox1 = ox * p;
|
|
190
192
|
int ox2 = ox * p2;
|
|
191
193
|
uint16_t i00, i01, i10, i11;
|
|
@@ -284,10 +286,11 @@ wav_2D_decode (
|
|
|
284
286
|
int oy, // i : y offset
|
|
285
287
|
uint16_t mx) // i : maximum in[x][y] value
|
|
286
288
|
{
|
|
287
|
-
int
|
|
288
|
-
int
|
|
289
|
-
int
|
|
290
|
-
int
|
|
289
|
+
int w14 = (mx < (1 << 14)) ? 1 : 0;
|
|
290
|
+
int n = (nx > ny) ? ny : nx;
|
|
291
|
+
int p = 1;
|
|
292
|
+
int p2;
|
|
293
|
+
int64_t oy64 = oy;
|
|
291
294
|
|
|
292
295
|
//
|
|
293
296
|
// Search max level
|
|
@@ -307,9 +310,9 @@ wav_2D_decode (
|
|
|
307
310
|
while (p >= 1)
|
|
308
311
|
{
|
|
309
312
|
uint16_t* py = in;
|
|
310
|
-
uint16_t* ey = in +
|
|
311
|
-
|
|
312
|
-
|
|
313
|
+
uint16_t* ey = in + oy64 * (ny - p2);
|
|
314
|
+
int64_t oy1 = oy64 * p;
|
|
315
|
+
int64_t oy2 = oy64 * p2;
|
|
313
316
|
int ox1 = ox * p;
|
|
314
317
|
int ox2 = ox * p2;
|
|
315
318
|
uint16_t i00, i01, i10, i11;
|
|
@@ -502,11 +505,13 @@ internal_exr_apply_piz (exr_encode_pipeline_t* encode)
|
|
|
502
505
|
nx = curc->width;
|
|
503
506
|
ny = curc->height;
|
|
504
507
|
wcount = (int) (curc->bytes_per_element / 2);
|
|
508
|
+
if (wcount > 0 && nx > INT_MAX / wcount)
|
|
509
|
+
return EXR_ERR_CORRUPT_CHUNK;
|
|
505
510
|
for (int j = 0; j < wcount; ++j)
|
|
506
511
|
{
|
|
507
512
|
wav_2D_encode (wavbuf + j, nx, wcount, ny, wcount * nx, maxValue);
|
|
508
513
|
}
|
|
509
|
-
wavbuf += nx * ny * wcount;
|
|
514
|
+
wavbuf += (uint64_t) nx * ny * wcount;
|
|
510
515
|
}
|
|
511
516
|
|
|
512
517
|
nBytes = 0;
|
|
@@ -655,11 +660,13 @@ internal_exr_undo_piz (
|
|
|
655
660
|
nx = curc->width;
|
|
656
661
|
ny = curc->height;
|
|
657
662
|
wcount = (int) (curc->bytes_per_element / 2);
|
|
663
|
+
if (wcount > 0 && nx > INT_MAX / wcount)
|
|
664
|
+
return EXR_ERR_CORRUPT_CHUNK;
|
|
658
665
|
for (int j = 0; j < wcount; ++j)
|
|
659
666
|
{
|
|
660
667
|
wav_2D_decode (wavbuf + j, nx, wcount, ny, wcount * nx, maxValue);
|
|
661
668
|
}
|
|
662
|
-
wavbuf += nx * ny * wcount;
|
|
669
|
+
wavbuf += (uint64_t) nx * ny * wcount;
|
|
663
670
|
}
|
|
664
671
|
|
|
665
672
|
//
|
|
@@ -182,7 +182,7 @@ apply_pxr24_impl (exr_encode_pipeline_t* encode)
|
|
|
182
182
|
if (nOut + nBytes > encode->scratch_alloc_size_1)
|
|
183
183
|
return EXR_ERR_OUT_OF_MEMORY;
|
|
184
184
|
nOut += nBytes;
|
|
185
|
-
lastIn += w * 4;
|
|
185
|
+
lastIn += (uint64_t) w * 4;
|
|
186
186
|
|
|
187
187
|
ptr[0] = out;
|
|
188
188
|
out += w;
|
|
@@ -319,7 +319,8 @@ undo_pxr24_impl (
|
|
|
319
319
|
ptr[3] = lastIn;
|
|
320
320
|
lastIn += w;
|
|
321
321
|
|
|
322
|
-
if (nDec + nBytes > outSize)
|
|
322
|
+
if (nDec + nBytes > outSize)
|
|
323
|
+
return EXR_ERR_CORRUPT_CHUNK;
|
|
323
324
|
|
|
324
325
|
for (int x = 0; x < w; ++x)
|
|
325
326
|
{
|
|
@@ -345,7 +346,8 @@ undo_pxr24_impl (
|
|
|
345
346
|
ptr[1] = lastIn;
|
|
346
347
|
lastIn += w;
|
|
347
348
|
|
|
348
|
-
if (nDec + nBytes > outSize)
|
|
349
|
+
if (nDec + nBytes > outSize)
|
|
350
|
+
return EXR_ERR_CORRUPT_CHUNK;
|
|
349
351
|
|
|
350
352
|
for (int x = 0; x < w; ++x)
|
|
351
353
|
{
|
|
@@ -371,7 +373,7 @@ undo_pxr24_impl (
|
|
|
371
373
|
ptr[2] = lastIn;
|
|
372
374
|
lastIn += w;
|
|
373
375
|
|
|
374
|
-
if (nDec + (uint64_t)
|
|
376
|
+
if (nDec + (uint64_t) w * 3 > outSize)
|
|
375
377
|
return EXR_ERR_CORRUPT_CHUNK;
|
|
376
378
|
|
|
377
379
|
for (int x = 0; x < w; ++x)
|
|
@@ -384,7 +386,7 @@ undo_pxr24_impl (
|
|
|
384
386
|
unaligned_store32 (dout, pixel);
|
|
385
387
|
++dout;
|
|
386
388
|
}
|
|
387
|
-
nDec += (uint64_t)
|
|
389
|
+
nDec += (uint64_t) w * 3;
|
|
388
390
|
break;
|
|
389
391
|
}
|
|
390
392
|
default: return EXR_ERR_INVALID_ARGUMENT;
|