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.
Files changed (472) hide show
  1. {openexr-3.2.10 → openexr-3.2.12}/CHANGES.md +140 -0
  2. {openexr-3.2.10 → openexr-3.2.12}/PKG-INFO +1 -1
  3. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/makeMultiView.cpp +8 -0
  4. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfArray.h +28 -5
  5. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIDManifest.cpp +78 -8
  6. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiView.cpp +1 -1
  7. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfName.h +1 -0
  8. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/decoding.c +13 -9
  9. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_b44.c +6 -2
  10. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_compressor.h +21 -6
  11. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_version.h +1 -1
  12. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageChannel.h +2 -2
  13. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageChannel.h +2 -2
  14. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfSampleCountChannel.h +1 -1
  15. {openexr-3.2.10 → openexr-3.2.12}/.bazelversion +0 -0
  16. {openexr-3.2.10 → openexr-3.2.12}/.clang-format +0 -0
  17. {openexr-3.2.10 → openexr-3.2.12}/.git-blame-ignore-revs +0 -0
  18. {openexr-3.2.10 → openexr-3.2.12}/.gitignore +0 -0
  19. {openexr-3.2.10 → openexr-3.2.12}/.mailmap +0 -0
  20. {openexr-3.2.10 → openexr-3.2.12}/.readthedocs.yml +0 -0
  21. {openexr-3.2.10 → openexr-3.2.12}/BUILD.bazel +0 -0
  22. {openexr-3.2.10 → openexr-3.2.12}/CMakeLists.txt +0 -0
  23. {openexr-3.2.10 → openexr-3.2.12}/CODEOWNERS +0 -0
  24. {openexr-3.2.10 → openexr-3.2.12}/CODE_OF_CONDUCT.md +0 -0
  25. {openexr-3.2.10 → openexr-3.2.12}/CONTRIBUTING.md +0 -0
  26. {openexr-3.2.10 → openexr-3.2.12}/CONTRIBUTORS.md +0 -0
  27. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/AUTHORS +0 -0
  28. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/ChangeLog +0 -0
  29. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/DtexToExr.cpp +0 -0
  30. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/Makefile.test +0 -0
  31. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxBaseDeepHelper.h +0 -0
  32. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxDeepOutPixel.h +0 -0
  33. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxDeepOutRow.h +0 -0
  34. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxDeepUtils.cpp +0 -0
  35. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxDeepUtils.h +0 -0
  36. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxFourChanDeepRgba.h +0 -0
  37. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxOneChanDeepAlpha.h +0 -0
  38. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/PxOneChanDeepOpacity.h +0 -0
  39. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/README +0 -0
  40. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/bootstrap +0 -0
  41. {openexr-3.2.10 → openexr-3.2.12}/Contrib/DtexToExr/configure.ac +0 -0
  42. {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x64-build.nuget.bat +0 -0
  43. {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x64.nuspec +0 -0
  44. {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x64.targets +0 -0
  45. {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x86-build.nuget.bat +0 -0
  46. {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x86.nuspec +0 -0
  47. {openexr-3.2.10 → openexr-3.2.12}/Contrib/NuGet/OpenEXR-msvc-x86.targets +0 -0
  48. {openexr-3.2.10 → openexr-3.2.12}/GOVERNANCE.md +0 -0
  49. {openexr-3.2.10 → openexr-3.2.12}/LICENSE.md +0 -0
  50. {openexr-3.2.10 → openexr-3.2.12}/MODULE.bazel +0 -0
  51. {openexr-3.2.10 → openexr-3.2.12}/PATENTS +0 -0
  52. {openexr-3.2.10 → openexr-3.2.12}/README.md +0 -0
  53. {openexr-3.2.10 → openexr-3.2.12}/SECURITY.md +0 -0
  54. {openexr-3.2.10 → openexr-3.2.12}/WORKSPACE.bazel +0 -0
  55. {openexr-3.2.10 → openexr-3.2.12}/cmake/CMakeLists.txt +0 -0
  56. {openexr-3.2.10 → openexr-3.2.12}/cmake/FindPythonPackage.cmake +0 -0
  57. {openexr-3.2.10 → openexr-3.2.12}/cmake/FindSphinx.cmake +0 -0
  58. {openexr-3.2.10 → openexr-3.2.12}/cmake/IexConfig.h.in +0 -0
  59. {openexr-3.2.10 → openexr-3.2.12}/cmake/IexConfigInternal.h.in +0 -0
  60. {openexr-3.2.10 → openexr-3.2.12}/cmake/IlmThreadConfig.h.in +0 -0
  61. {openexr-3.2.10 → openexr-3.2.12}/cmake/JoinPaths.cmake +0 -0
  62. {openexr-3.2.10 → openexr-3.2.12}/cmake/LibraryDefine.cmake +0 -0
  63. {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXR.pc.in +0 -0
  64. {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXRConfig.cmake.in +0 -0
  65. {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXRConfig.h.in +0 -0
  66. {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXRConfigInternal.h.in +0 -0
  67. {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXRLibraryDefine.cmake +0 -0
  68. {openexr-3.2.10 → openexr-3.2.12}/cmake/OpenEXRSetup.cmake +0 -0
  69. {openexr-3.2.10 → openexr-3.2.12}/cmake/SampleCTestScript.cmake +0 -0
  70. {openexr-3.2.10 → openexr-3.2.12}/cmake/Toolchain-Linux-VFX_Platform15.cmake +0 -0
  71. {openexr-3.2.10 → openexr-3.2.12}/cmake/Toolchain-mingw.cmake +0 -0
  72. {openexr-3.2.10 → openexr-3.2.12}/cmake/clang-format.cmake +0 -0
  73. {openexr-3.2.10 → openexr-3.2.12}/cmake/cmake_uninstall.cmake.in +0 -0
  74. {openexr-3.2.10 → openexr-3.2.12}/docs/CMakeLists.txt +0 -0
  75. {openexr-3.2.10 → openexr-3.2.12}/pyproject.toml +0 -0
  76. {openexr-3.2.10 → openexr-3.2.12}/sonar-project.properties +0 -0
  77. {openexr-3.2.10 → openexr-3.2.12}/src/bin/CMakeLists.txt +0 -0
  78. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exr2aces/CMakeLists.txt +0 -0
  79. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exr2aces/main.cpp +0 -0
  80. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrcheck/CMakeLists.txt +0 -0
  81. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrcheck/main.cpp +0 -0
  82. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/CMakeLists.txt +0 -0
  83. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/EnvmapImage.cpp +0 -0
  84. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/EnvmapImage.h +0 -0
  85. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/blurImage.cpp +0 -0
  86. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/blurImage.h +0 -0
  87. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/main.cpp +0 -0
  88. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/makeCubeMap.cpp +0 -0
  89. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/makeCubeMap.h +0 -0
  90. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/makeLatLongMap.cpp +0 -0
  91. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/makeLatLongMap.h +0 -0
  92. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/namespaceAlias.h +0 -0
  93. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/readInputImage.cpp +0 -0
  94. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/readInputImage.h +0 -0
  95. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/resizeImage.cpp +0 -0
  96. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrenvmap/resizeImage.h +0 -0
  97. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrheader/CMakeLists.txt +0 -0
  98. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrheader/main.cpp +0 -0
  99. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrinfo/CMakeLists.txt +0 -0
  100. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrinfo/main.c +0 -0
  101. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmakepreview/CMakeLists.txt +0 -0
  102. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmakepreview/main.cpp +0 -0
  103. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmakepreview/makePreview.cpp +0 -0
  104. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmakepreview/makePreview.h +0 -0
  105. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/CMakeLists.txt +0 -0
  106. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/Image.cpp +0 -0
  107. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/Image.h +0 -0
  108. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/main.cpp +0 -0
  109. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/makeTiled.cpp +0 -0
  110. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/makeTiled.h +0 -0
  111. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmaketiled/namespaceAlias.h +0 -0
  112. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmanifest/CMakeLists.txt +0 -0
  113. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmanifest/main.cpp +0 -0
  114. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultipart/CMakeLists.txt +0 -0
  115. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultipart/exrmultipart.cpp +0 -0
  116. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/CMakeLists.txt +0 -0
  117. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/Image.cpp +0 -0
  118. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/Image.h +0 -0
  119. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/main.cpp +0 -0
  120. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/makeMultiView.h +0 -0
  121. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrmultiview/namespaceAlias.h +0 -0
  122. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrstdattr/CMakeLists.txt +0 -0
  123. {openexr-3.2.10 → openexr-3.2.12}/src/bin/exrstdattr/main.cpp +0 -0
  124. {openexr-3.2.10 → openexr-3.2.12}/src/lib/.gitignore +0 -0
  125. {openexr-3.2.10 → openexr-3.2.12}/src/lib/CMakeLists.txt +0 -0
  126. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/CMakeLists.txt +0 -0
  127. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/Iex.h +0 -0
  128. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexBaseExc.cpp +0 -0
  129. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexBaseExc.h +0 -0
  130. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexErrnoExc.h +0 -0
  131. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexExport.h +0 -0
  132. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexForward.h +0 -0
  133. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMacros.h +0 -0
  134. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathExc.h +0 -0
  135. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathFloatExc.cpp +0 -0
  136. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathFloatExc.h +0 -0
  137. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathFpu.cpp +0 -0
  138. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathFpu.h +0 -0
  139. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexMathIeeeExc.h +0 -0
  140. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexNamespace.h +0 -0
  141. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexThrowErrnoExc.cpp +0 -0
  142. {openexr-3.2.10 → openexr-3.2.12}/src/lib/Iex/IexThrowErrnoExc.h +0 -0
  143. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/CMakeLists.txt +0 -0
  144. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThread.cpp +0 -0
  145. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThread.h +0 -0
  146. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadExport.h +0 -0
  147. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadForward.h +0 -0
  148. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadMutex.h +0 -0
  149. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadNamespace.h +0 -0
  150. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadPool.cpp +0 -0
  151. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadPool.h +0 -0
  152. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphore.cpp +0 -0
  153. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphore.h +0 -0
  154. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphoreOSX.cpp +0 -0
  155. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphorePosix.cpp +0 -0
  156. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphorePosixCompat.cpp +0 -0
  157. {openexr-3.2.10 → openexr-3.2.12}/src/lib/IlmThread/IlmThreadSemaphoreWin32.cpp +0 -0
  158. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/CMakeLists.txt +0 -0
  159. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfAcesFile.cpp +0 -0
  160. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfAcesFile.h +0 -0
  161. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfAttribute.cpp +0 -0
  162. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfAttribute.h +0 -0
  163. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfAutoArray.h +0 -0
  164. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfB44Compressor.cpp +0 -0
  165. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfB44Compressor.h +0 -0
  166. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfBoxAttribute.cpp +0 -0
  167. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfBoxAttribute.h +0 -0
  168. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCRgbaFile.cpp +0 -0
  169. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCRgbaFile.h +0 -0
  170. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChannelList.cpp +0 -0
  171. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChannelList.h +0 -0
  172. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChannelListAttribute.cpp +0 -0
  173. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChannelListAttribute.h +0 -0
  174. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCheckedArithmetic.h +0 -0
  175. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChromaticities.cpp +0 -0
  176. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChromaticities.h +0 -0
  177. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChromaticitiesAttribute.cpp +0 -0
  178. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfChromaticitiesAttribute.h +0 -0
  179. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompositeDeepScanLine.cpp +0 -0
  180. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompositeDeepScanLine.h +0 -0
  181. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompression.h +0 -0
  182. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompressionAttribute.cpp +0 -0
  183. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompressionAttribute.h +0 -0
  184. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompressor.cpp +0 -0
  185. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfCompressor.h +0 -0
  186. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfConvert.cpp +0 -0
  187. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfConvert.h +0 -0
  188. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepCompositing.cpp +0 -0
  189. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepCompositing.h +0 -0
  190. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepFrameBuffer.cpp +0 -0
  191. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepFrameBuffer.h +0 -0
  192. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepImageState.h +0 -0
  193. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepImageStateAttribute.cpp +0 -0
  194. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepImageStateAttribute.h +0 -0
  195. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineInputFile.cpp +0 -0
  196. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineInputFile.h +0 -0
  197. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineInputPart.cpp +0 -0
  198. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineInputPart.h +0 -0
  199. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineOutputFile.cpp +0 -0
  200. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineOutputFile.h +0 -0
  201. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineOutputPart.cpp +0 -0
  202. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepScanLineOutputPart.h +0 -0
  203. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledInputFile.cpp +0 -0
  204. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledInputFile.h +0 -0
  205. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledInputPart.cpp +0 -0
  206. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledInputPart.h +0 -0
  207. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledOutputFile.cpp +0 -0
  208. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledOutputFile.h +0 -0
  209. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledOutputPart.cpp +0 -0
  210. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDeepTiledOutputPart.h +0 -0
  211. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDoubleAttribute.cpp +0 -0
  212. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDoubleAttribute.h +0 -0
  213. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDwaCompressor.cpp +0 -0
  214. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDwaCompressor.h +0 -0
  215. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfDwaCompressorSimd.h +0 -0
  216. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfEnvmap.cpp +0 -0
  217. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfEnvmap.h +0 -0
  218. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfEnvmapAttribute.cpp +0 -0
  219. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfEnvmapAttribute.h +0 -0
  220. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfExport.h +0 -0
  221. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFastHuf.cpp +0 -0
  222. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFastHuf.h +0 -0
  223. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFloatAttribute.cpp +0 -0
  224. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFloatAttribute.h +0 -0
  225. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFloatVectorAttribute.cpp +0 -0
  226. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFloatVectorAttribute.h +0 -0
  227. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfForward.h +0 -0
  228. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFrameBuffer.cpp +0 -0
  229. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFrameBuffer.h +0 -0
  230. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFramesPerSecond.cpp +0 -0
  231. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfFramesPerSecond.h +0 -0
  232. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfGenericInputFile.cpp +0 -0
  233. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfGenericInputFile.h +0 -0
  234. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfGenericOutputFile.cpp +0 -0
  235. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfGenericOutputFile.h +0 -0
  236. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfHeader.cpp +0 -0
  237. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfHeader.h +0 -0
  238. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfHuf.cpp +0 -0
  239. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfHuf.h +0 -0
  240. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIDManifest.h +0 -0
  241. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIDManifestAttribute.cpp +0 -0
  242. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIDManifestAttribute.h +0 -0
  243. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIO.cpp +0 -0
  244. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIO.h +0 -0
  245. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputFile.cpp +0 -0
  246. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputFile.h +0 -0
  247. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputPart.cpp +0 -0
  248. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputPart.h +0 -0
  249. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputPartData.cpp +0 -0
  250. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputPartData.h +0 -0
  251. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInputStreamMutex.h +0 -0
  252. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfInt64.h +0 -0
  253. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIntAttribute.cpp +0 -0
  254. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfIntAttribute.h +0 -0
  255. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfKeyCode.cpp +0 -0
  256. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfKeyCode.h +0 -0
  257. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfKeyCodeAttribute.cpp +0 -0
  258. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfKeyCodeAttribute.h +0 -0
  259. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfLineOrder.h +0 -0
  260. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfLineOrderAttribute.cpp +0 -0
  261. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfLineOrderAttribute.h +0 -0
  262. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfLut.cpp +0 -0
  263. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfLut.h +0 -0
  264. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMatrixAttribute.cpp +0 -0
  265. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMatrixAttribute.h +0 -0
  266. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMisc.cpp +0 -0
  267. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMisc.h +0 -0
  268. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiPartInputFile.cpp +0 -0
  269. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiPartInputFile.h +0 -0
  270. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiPartOutputFile.cpp +0 -0
  271. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiPartOutputFile.h +0 -0
  272. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfMultiView.h +0 -0
  273. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfNamespace.h +0 -0
  274. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOpaqueAttribute.cpp +0 -0
  275. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOpaqueAttribute.h +0 -0
  276. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOptimizedPixelReading.h +0 -0
  277. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputFile.cpp +0 -0
  278. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputFile.h +0 -0
  279. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputPart.cpp +0 -0
  280. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputPart.h +0 -0
  281. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputPartData.cpp +0 -0
  282. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputPartData.h +0 -0
  283. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfOutputStreamMutex.h +0 -0
  284. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPartHelper.h +0 -0
  285. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPartType.cpp +0 -0
  286. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPartType.h +0 -0
  287. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPixelType.h +0 -0
  288. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPizCompressor.cpp +0 -0
  289. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPizCompressor.h +0 -0
  290. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPreviewImage.cpp +0 -0
  291. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPreviewImage.h +0 -0
  292. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPreviewImageAttribute.cpp +0 -0
  293. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPreviewImageAttribute.h +0 -0
  294. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPxr24Compressor.cpp +0 -0
  295. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfPxr24Compressor.h +0 -0
  296. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRational.cpp +0 -0
  297. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRational.h +0 -0
  298. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRationalAttribute.cpp +0 -0
  299. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRationalAttribute.h +0 -0
  300. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRgba.h +0 -0
  301. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRgbaFile.cpp +0 -0
  302. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRgbaFile.h +0 -0
  303. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRgbaYca.cpp +0 -0
  304. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRgbaYca.h +0 -0
  305. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRle.cpp +0 -0
  306. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRle.h +0 -0
  307. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRleCompressor.cpp +0 -0
  308. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfRleCompressor.h +0 -0
  309. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfScanLineInputFile.cpp +0 -0
  310. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfScanLineInputFile.h +0 -0
  311. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfSimd.h +0 -0
  312. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStandardAttributes.cpp +0 -0
  313. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStandardAttributes.h +0 -0
  314. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStdIO.cpp +0 -0
  315. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStdIO.h +0 -0
  316. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStringAttribute.cpp +0 -0
  317. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStringAttribute.h +0 -0
  318. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStringVectorAttribute.cpp +0 -0
  319. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfStringVectorAttribute.h +0 -0
  320. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfSystemSpecific.cpp +0 -0
  321. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfSystemSpecific.h +0 -0
  322. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTestFile.cpp +0 -0
  323. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTestFile.h +0 -0
  324. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfThreading.cpp +0 -0
  325. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfThreading.h +0 -0
  326. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTileDescription.h +0 -0
  327. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTileDescriptionAttribute.cpp +0 -0
  328. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTileDescriptionAttribute.h +0 -0
  329. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTileOffsets.cpp +0 -0
  330. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTileOffsets.h +0 -0
  331. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledInputFile.cpp +0 -0
  332. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledInputFile.h +0 -0
  333. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledInputPart.cpp +0 -0
  334. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledInputPart.h +0 -0
  335. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledMisc.cpp +0 -0
  336. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledMisc.h +0 -0
  337. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledOutputFile.cpp +0 -0
  338. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledOutputFile.h +0 -0
  339. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledOutputPart.cpp +0 -0
  340. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledOutputPart.h +0 -0
  341. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledRgbaFile.cpp +0 -0
  342. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTiledRgbaFile.h +0 -0
  343. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTimeCode.cpp +0 -0
  344. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTimeCode.h +0 -0
  345. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTimeCodeAttribute.cpp +0 -0
  346. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfTimeCodeAttribute.h +0 -0
  347. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfVecAttribute.cpp +0 -0
  348. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfVecAttribute.h +0 -0
  349. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfVersion.cpp +0 -0
  350. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfVersion.h +0 -0
  351. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfWav.cpp +0 -0
  352. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfWav.h +0 -0
  353. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfXdr.h +0 -0
  354. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfZip.cpp +0 -0
  355. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfZip.h +0 -0
  356. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfZipCompressor.cpp +0 -0
  357. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/ImfZipCompressor.h +0 -0
  358. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/b44ExpLogTable.cpp +0 -0
  359. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/b44ExpLogTable.h +0 -0
  360. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/dwaLookups.cpp +0 -0
  361. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXR/dwaLookups.h +0 -0
  362. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/CMakeLists.txt +0 -0
  363. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/attributes.c +0 -0
  364. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/backward_compatibility.h +0 -0
  365. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/base.c +0 -0
  366. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/channel_list.c +0 -0
  367. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/chunk.c +0 -0
  368. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/coding.c +0 -0
  369. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/compression.c +0 -0
  370. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/context.c +0 -0
  371. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/debug.c +0 -0
  372. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/encoding.c +0 -0
  373. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/float_vector.c +0 -0
  374. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_attr.h +0 -0
  375. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_b44_table.c +0 -0
  376. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_channel_list.h +0 -0
  377. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_coding.h +0 -0
  378. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_compress.h +0 -0
  379. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_constants.h +0 -0
  380. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_cpuid.h +0 -0
  381. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_decompress.h +0 -0
  382. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa.c +0 -0
  383. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_channeldata.h +0 -0
  384. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_classifier.h +0 -0
  385. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_decoder.h +0 -0
  386. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_encoder.h +0 -0
  387. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_helpers.h +0 -0
  388. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_dwa_simd.h +0 -0
  389. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_file.h +0 -0
  390. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_float_vector.h +0 -0
  391. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_huf.c +0 -0
  392. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_huf.h +0 -0
  393. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_memory.h +0 -0
  394. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_opaque.h +0 -0
  395. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_piz.c +0 -0
  396. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_posix_file_impl.h +0 -0
  397. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_preview.h +0 -0
  398. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_pxr24.c +0 -0
  399. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_rle.c +0 -0
  400. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_string.h +0 -0
  401. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_string_vector.h +0 -0
  402. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_structs.c +0 -0
  403. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_structs.h +0 -0
  404. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_util.h +0 -0
  405. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_win32_file_impl.h +0 -0
  406. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_xdr.h +0 -0
  407. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/internal_zip.c +0 -0
  408. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/memory.c +0 -0
  409. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/opaque.c +0 -0
  410. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr.h +0 -0
  411. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_attr.h +0 -0
  412. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_base.h +0 -0
  413. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_chunkio.h +0 -0
  414. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_coding.h +0 -0
  415. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_compression.h +0 -0
  416. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_config.h +0 -0
  417. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_context.h +0 -0
  418. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_debug.h +0 -0
  419. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_decode.h +0 -0
  420. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_encode.h +0 -0
  421. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_errors.h +0 -0
  422. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_part.h +0 -0
  423. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/openexr_std_attr.h +0 -0
  424. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/pack.c +0 -0
  425. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/parse_header.c +0 -0
  426. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/part.c +0 -0
  427. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/part_attr.c +0 -0
  428. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/preview.c +0 -0
  429. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/std_attr.c +0 -0
  430. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/string.c +0 -0
  431. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/string_vector.c +0 -0
  432. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/unpack.c +0 -0
  433. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/validation.c +0 -0
  434. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRCore/write_header.c +0 -0
  435. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/CMakeLists.txt +0 -0
  436. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfCheckFile.cpp +0 -0
  437. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfCheckFile.h +0 -0
  438. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImage.cpp +0 -0
  439. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImage.h +0 -0
  440. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageChannel.cpp +0 -0
  441. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageIO.cpp +0 -0
  442. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageIO.h +0 -0
  443. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageLevel.cpp +0 -0
  444. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfDeepImageLevel.h +0 -0
  445. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImage.cpp +0 -0
  446. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImage.h +0 -0
  447. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageChannel.cpp +0 -0
  448. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageIO.cpp +0 -0
  449. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageIO.h +0 -0
  450. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageLevel.cpp +0 -0
  451. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfFlatImageLevel.h +0 -0
  452. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImage.cpp +0 -0
  453. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImage.h +0 -0
  454. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageChannel.cpp +0 -0
  455. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageChannel.h +0 -0
  456. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageChannelRenaming.h +0 -0
  457. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageDataWindow.cpp +0 -0
  458. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageDataWindow.h +0 -0
  459. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageIO.cpp +0 -0
  460. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageIO.h +0 -0
  461. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageLevel.cpp +0 -0
  462. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfImageLevel.h +0 -0
  463. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfSampleCountChannel.cpp +0 -0
  464. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/ImfUtilExport.h +0 -0
  465. {openexr-3.2.10 → openexr-3.2.12}/src/lib/OpenEXRUtil/README +0 -0
  466. {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/CMakeLists.txt +0 -0
  467. {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/Imath.py +0 -0
  468. {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/OpenEXR.cpp +0 -0
  469. {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/README.md +0 -0
  470. {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/openexr_skbuild_plugin.py +0 -0
  471. {openexr-3.2.10 → openexr-3.2.12}/src/wrappers/python/tests/test_minimal.py +0 -0
  472. {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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: OpenEXR
3
- Version: 3.2.10
3
+ Version: 3.2.12
4
4
  Summary: Python bindings for the OpenEXR image file format
5
5
  Author-Email: Contributors to the OpenEXR project <info@openexr.com>
6
6
  Project-URL: Homepage, https://openexr.com
@@ -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 (sizeX), _sizeY (sizeY), _data (new T[sizeX * sizeY])
198
+ : _sizeX (0), _sizeY (0), _data (0)
187
199
  {
188
- // empty
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
- T* tmp = new T[sizeX * sizeY];
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
- vector<size_t> lengths (numberOfStrings);
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
- lengths[i] = readVariableLengthInteger (readPtr, endPtr);
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
- if (readPtr + lengths[i] > endPtr)
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, lengths[i]));
194
- readPtr += lengths[i];
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
- _manifest.resize (manifestEntries);
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& m = _manifest[manifestEntry];
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 ((const char*) &uncomp[0], (const char*) &uncomp[0] + outSize);
643
+ init (uncomp.data (), uncomp.data () + outSize);
574
644
  }
575
645
 
576
646
  void
@@ -118,7 +118,7 @@ viewFromChannelName (const string& channel, const StringVector& multiView)
118
118
  // in the name belong to the default view.
119
119
  //
120
120
 
121
- return multiView[0];
121
+ return defaultViewName (multiView);
122
122
  }
123
123
  else
124
124
  {
@@ -72,6 +72,7 @@ inline Name&
72
72
  Name::operator= (const char text[])
73
73
  {
74
74
  strncpy (_text, text, MAX_LENGTH);
75
+ _text[MAX_LENGTH] = 0;
75
76
  return *this;
76
77
  }
77
78
 
@@ -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
- size_t sampsize =
28
- (((size_t) decode->chunk.width) * ((size_t) decode->chunk.height));
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
- sampsize += 1;
32
- sampsize *= sizeof (int32_t);
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
- int32_t w = decode->chunk.width;
343
- int32_t h = decode->chunk.height;
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 (int32_t y = 0; y < h; ++y)
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 (int32_t y = 0; y < h; ++y)
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
- compute_scratch_buffer_size (decode, uncompressed_size));
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
- compute_scratch_buffer_size (decode, uncompressed_size));
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
  //
@@ -10,6 +10,6 @@
10
10
 
11
11
  # define OPENEXR_VERSION_MAJOR 3
12
12
  # define OPENEXR_VERSION_MINOR 2
13
- # define OPENEXR_VERSION_PATCH 10
13
+ # define OPENEXR_VERSION_PATCH 12
14
14
 
15
15
  #endif
@@ -248,14 +248,14 @@ template <class T>
248
248
  inline T* const*
249
249
  TypedDeepImageChannel<T>::row (int r)
250
250
  {
251
- return _base + r * pixelsPerRow ();
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 _base + r * pixelsPerRow ();
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 _base + r * pixelsPerRow ();
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 _base + n * pixelsPerRow ();
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 _base + n * pixelsPerRow ();
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