Changelog History
Page 1
-
v3.0.5 Changes
July 01, 2021๐ Patch release that fixes problems with library symlinks and ๐ pkg-config, as well as miscellaneous bugs/security issues.
- 1064 Use CMAKE_INSTALL_FULL_LIBDIR/INCLUDEDIR in pkgconfig for 3.*
- ๐ 1051 Fix non-versioned library symlinks in debug build.
- 1050 Use CMAKE__POSTFIX for .pc file lib suffix.
- ๐ 1045 Fixes #1039: The vtable for TiledRgbaInputFile was not properly tagged as export
- 1038 fix/extend part number validation in MultiPart methods
- 1037 verify data size in deepscanlines with NO_COMPRESSION
- 1036 detect buffer overflows in RleUncompress
- ๐ The Imath auto-build version defaults to Imath v3.0.5.
-
v3.0.4 Changes
June 03, 2021 -
v3.0.3 Changes
May 18, 2021๐ Patch release that fixes a regression in v3.0.2 the prevented headers from being installed properly.
-
v3.0.2 Changes
May 17, 2021๐ Patch release with miscellaneous bug/build fixes, including:
- ๐ Fix TimeCode.frame max value
- Don't impose C++14 on downstream projects
- ๐ Restore fix to macOS universal 2 build lost from #854
- ๐ Imath auto-build version defaults to v3.0.2
Specific OSS-fuzz issues:
- OSS-fuzz 33741 Integer-overflow in Imf_3_0::getScanlineChunkOffsetTableSize
- OSS-fuzz 32620 Out-of-memory in openexr_exrcheck_fuzzer
๐ Merged Pull Requests:
- ๐ 1015 Improvements for Bazel build support
- ๐ 1011 Restore fix to macOS universal 2 build lost from #854
- ๐ 1009 Remove test/warning about CMake version < 3.11
- 1008 Clean up setting of OpenEXR version
- 1007 Fix TimeCode.frame max value to be 29 instead of 59
- 1003 Prevent overflow in getScanlineChunkOffsetTableSize
- โก๏ธ 1001 Update CHANGES and SECURITY with recent CVE's
- 995 Don't impose C++14 on downstream projects
- 993 Add STATUS message showing Imath_DIR
- ๐จ 992 exrcheck -v prints OpenEXR and Imath versions and lib versions
- 991 exrcheck: make readDeepTile allocate memory for just one tile
-
v3.0.1 Changes
April 01, 2021๐ Major release with major build restructing, security improvements, and ๐ new features:
Restructuring:
- The IlmBase/PyIlmBase submodules have been separated into the Imath project, now included by OpenEXR via a CMake submodule dependency, fetched automatically via CMake's FetchContent if necessary.
- The library is now called
libOpenEXR
(instead oflibIlmImf
). No header files have been renamed, they retain theImf
prefix. - Symbol linkage visibility is limited to specific public symbols.
๐ Build improvements:
- No more simultaneous static/shared build option.
- Community-provided support for bazel.
๐ New Features:
- ID Manifest Attributes, as described in "A Scheme for Storing Object ID Manifests in OpenEXR Images", Peter Hillman, DigiPro 18: Proceedings of the 8th Annual Digital Production Symposium, August 2018.
- New program: exrcheck validates the contents of an EXR file.
๐ Changes:
- EXR files with no channels are no longer allowed.
- Hard limit on the size of deep tile sizes; tiles must be less than 230 pixels.
- Tiled DWAB files used STATIC_HUFFMAN compression.
Int64
andSInt64
types are deprecated in favor ofuint64_t
andint64_t
.- Header files have been pruned of extraneous
#include
's ("Include What You Use"), which may generate compiler errors in application source code from undefined symbols or partially-defined types. These can be resolved by identifying and including the appropriate header. - See the porting guide for details about differences from previous releases and how to address them.
- Also refer to the porting guide for details about changes to Imath.
Contains all changes in 3.0.1-beta and 3.0.0-beta.
-
v3.0.1-beta Changes
March 28, 2021๐ Beta patch release:
- OSS-fuzz 32370 Out-of-memory in openexr_exrcheck_fuzzer (987)
- OSS-fuzz 32067 Out-of-memory in openexr_exrcheck_fuzzer (966)
- OSS-fuzz 31172 Timeout in openexr_exrcheck_fuzzer (987)
๐ Merged Pull Requests:
- ๐ 989 Release notes for 3.0.1-beta
- ๐ 988 Remove deprecated argument to getChunkOffsetTableSize()
- 987 exrcheck: reduceMemory now checks pixel size and scanline compression mode
- 983 Reduce warnigns reported in #982
- 980 Bazel cherry picks
- ๐ 979 Pin Imath version to 3.0.0-beta on RB-3.0
- โ๏ธ 968 Fix typos in Int64/SInt64 deprecation warnings
- 966 exrcheck: account for size of pixels when estimating memory
-
v3.0.0-beta Changes
March 16, 2021๐ Major release with major build restructing, security improvements, and ๐ new features:
Restructuring:
- The IlmBase/PyIlmBase submodules have been separated into the Imath project, now included by OpenEXR via a CMake submodule dependency, fetched automatically via CMake's FetchContent if necessary.
- The library is now called
libOpenEXR
(instead oflibIlmImf
). No header files have been renamed, they retain theImf
prefix. - Symbol linkage visibility is limited to specific public symbols. See [SymbolVisibility.md](docs/SymbolVisibility.md) for more details.
๐ Build improvements:
- No more simultaneous static/shared build option.
- Community-provided support for bazel.
๐ New Features:
- ID Manifest Attributes, as described in "A Scheme for Storing Object ID Manifests in OpenEXR Images", Peter Hillman, DigiPro 18: Proceedings of the 8th Annual Digital Production Symposium, August 2018.
- New program: exrcheck validates the contents of an EXR file.
๐ Changes:
- EXR files with no channels are no longer allowed.
- Hard limit on the size of deep tile sizes; tiles must be less than 230 pixels.
- Tiled DWAB files used STATIC_HUFFMAN compression.
Int64
andSInt64
types are deprecated in favor ofuint64_t
andint64_t
.- Header files have been pruned of extraneous
#include
's ("Include What You Use"), which may generate compiler errors in application source code from undefined symbols or partially-defined types. These can be resolved by identifying and including the appropriate header. - See the porting guide for details about differences from previous releases and how to address them.
- Also refer to the porting guide for details about changes to Imath.
Specific OSS-fuzz issues addressed include:
- OSS-fuzz 31539 Out-of-memory in openexr_exrcheck_fuzzer (946)
- OSS-fuzz 31390 Out-of-memory in openexr_exrcheck_fuzzer (939)
- OSS-fuzz 31293 Segv on unknown address in Imf_2_5::copyIntoFrameBuffer (932)
- OSS-fuzz 31291 Sanitizer CHECK failure in "((0 && "Address is not in memory and not in shadow?")) != (0)" (0x0, 0x0) (932)
- OSS-fuzz 31228 Integer-overflow in bool Imf_2_5::readDeepTile (930)
- OSS-fuzz 31221 Integer-overflow in bool Imf_2_5::readDeepTile (930)
- OSS-fuzz 31072 Out-of-memory in openexr_exrcheck_fuzzer (928)
- OSS-fuzz 31044 Timeout in openexr_exrcheck_fuzzer (926)
- OSS-fuzz 31015 Direct-leak in Imf_2_5::TypedAttribute::readValueFrom (925)
- OSS-fuzz 30969 Direct-leak in Imf_2_5::DwaCompressor::LossyDctDecoderBase::execute (923)
- OSS-fuzz 30616 Timeout in openexr_exrcheck_fuzzer (919)
- OSS-fuzz 30605 Out-of-memory in openexr_exrcheck_fuzzer (920)
- OSS-fuzz 30249 Out-of-memory in openexr_exrcheck_fuzzer (915)
- OSS-fuzz 29682 Out-of-memory in openexr_exrcheck_fuzzer (902)
- OSS-fuzz 29393 Timeout in openexr_exrcheck_fuzzer (902)
- OSS-fuzz 28419 Out-of-memory in openexr_exrcheck_fuzzer (895)
- OSS-fuzz 28155 Crash in Imf_2_5::PtrIStream::read (872)
- OSS-fuzz 28051 Heap-buffer-overflow in Imf_2_5::copyIntoFrameBuffer (872)
- OSS-fuzz 27409 Out-of-memory in openexr_exrcheck_fuzzer (863)
- OSS-fuzz 26641 Invalid-enum-value in readSingleImage (859)
- OSS-fuzz 25648 Out-of-memory in openexr_scanlines_fuzzer (839)
- OSS-fuzz 25156 Out-of-memory in openexr_scanlines_fuzzer (824)
- OSS-fuzz 25002 Out-of-memory in openexr_deepscanlines_fuzzer (824)
- OSS-fuzz 24959 Integer-overflow in Imf_2_5::cachePadding (824)
- OSS-fuzz 24857 Out-of-memory in openexr_exrheader_fuzzer (824)
- OSS-fuzz 24573 Out-of-memory in openexr_exrenvmap_fuzzer (824)
๐ Merged Pull Requests
- โ 971 Add missing #includes in OpenEXRFuzzTest
- ๐ 967 3.0.0-beta release notes
- 965 Bump version to 3.0.0
- โก๏ธ 964 Bazel-Support: Update Bazel build files to reflect CMake state
- 963 Properly expose header files for float exceptions
- ๐ 962 Remove IexMath as a library
- 961 Enable policy 77 if possible.
- 960 Still needed to push the OPENEXR_INSTALL definition higher
- 959 The OPENEXR_INSTALL option needs to be defined before it's used
- 956 Replace stray Imath:: with IMATH_NAMESPACE::
- 955 Usability improvements for submodule use.
- 953 Add GLOBAL to add_library(zlib)
- ๐ 952 Remove 'long' overloads for Xdr::read and Xdr::write functions
- 951 Change copyright notices to standard SPDX format
- 950 Don't install ImfB44Compressor.h
- ๐ 949 Bazel build: Bump Imath version to current master
- 948 Replace Int64/SInt64 with uint64_t/int64_t
- ๐ 946 better flag/type verification in deep input files
- โ 945 Fix sign-compare warning
- ๐ 944 Build-time options for where to get Imath
- 943 Add include/OpenEXR to -I and OpenEXRUtil,Iex,IlmThread to -L
- ๐ 942 Resolve #882 static/shared dual build
- 939 enforce limit on area of deep tiles to prevent excessive memory use
- 938 Replace UINT_MAX with explicit cast
- ๐ 937 Add #include to fix Windows compile error
- ๐ 936 Incorporate recent config changes into BUILD.bazel
- 932 exrcheck: fix handling xSampling when computating slice base
- 930 exrcheck: use 64 bit integer math to prevent pointer overflows
- ๐ 929 Remove all references to "IlmBase"
- ๐ 928 exrcheck: better tile checks in reduceMemory mode
- โช 926 exrcheck: Revert to using 'getStep' for Rgba interfaces
- 925 handle reallocation of idmanifest attributes
- ๐ 923 free up memory if DWA unRle throws
- 921 Only wait for and join joinable threads
- 920 exrcheck: check for tilesize in reduceMemory mode
- 919 validate size of DWA RLE buffer in decompress
- โ 916 use NO_COMPRESSION in OpenEXRTest/testBackwardCompatibility
- 915 exrcheck: assume lots of memory required whenever MultiPart ctor throws
- ๐ 913 Fixes for recent Imath deprecations
- 911 Prevent reading or writing OpenEXR images with no channels
- ๐ 909 Add idmanifest attribute support
- โ 906 expand testCompression to better test DWAA, DWAB and tiled images
- 902 exrcheck: rework 'reduceMemory' and 'reduceTime' modes
- 899 Change NOTICE to STATUS to address #891
- ๐ 898 Add support for Bazel
- 895 exrcheck: make reduced memory/time modes more sensitive
- 893 Include where required by newer compilers
- 877 ImfCompressor: use STATIC_HUFFMAN for tiled DWAB files (fix #344)
- 874 Fix missing header for Visual Studio
- ๐ 872 Handle xsampling and bad seekg() calls in exrcheck
- 869 Enable extra version tag
- ๐ 868 Make the default symbol visibility hidden for unixen builds
- ๐ 864 Remove legacy throw() specifications, conform to c++11
- ๐ 862 E2K: added initial support of MCST Elbrus 2000 CPU architecture
- โช 859 Invalidenum workaround
- ๐ 858 Merge RC-3 to master
- 848 Validate reconstructed chunk sizes
- 846 fix extra byte in DWA compressed data
- 839 Validate tileoffset table size
- โ 828 Address issues reported by Undefined Behavior Sanitizer running IlmImfTest
- 824 reduce size limit for scanline files; prevent large chunkoffset allocations
- 819 re-order shift/compare in FastHuf to prevent undefined shift overflow
- 815 cmake: Fix paths in .pc files
- 802 Modernize mutex
- โ 796 Initial rename of OpenEXR and IlmBase directories and seperation of Test
- 791 Initial removal of all Imath source files and minimal cmake adjustments
- ๐ 769 Bugfix/arkellr remove cvsignore files
-
v2.5.7 Changes
June 16, 2021 -
v2.5.6 Changes
May 17, 2021๐ Patch release that fixes a regression in Imath::succf()/Imath::predf():
- #1013 ๐ Fixed regression in Imath::succf() and Imath::predf() when negative values are given
-
v2.5.5 Changes
February 12, 2021๐ Patch release with various bug/sanitizer/security fixes, primarily related to reading corrupted input files, but also a fix for universal ๐ build support on macOS.
Specific OSS-fuzz issues include:
- OSS-fuzz 30291 Timeout in openexr_exrcheck_fuzzer
- OSS-fuzz 29106 Heap-buffer-overflow in Imf_2_5::FastHufDecoder::decode
- OSS-fuzz 28971 Undefined-shift in Imf_2_5::cachePadding
- OSS-fuzz 29829 Integer-overflow in Imf_2_5::DwaCompressor::initializeBuffers
- OSS-fuzz 30121 Out-of-memory in openexr_exrcheck_fuzzer
๐ Merged Pull Requests
- 914 additional verification of DWA data sizes
- โก๏ธ 910 update tileoffset sanitycheck to handle ripmaps
- 903 prevent overflows by using Int64 for all vars in DWA initialize
- 901 Use size_t for DWA buffersize calculation
- 897 prevent overflow in RgbaFile cachePadding
- 896 add buffer size validation to FastHuf decode
- 893 Include where required by newer compilers
- 889 Add explicit #include for numeric_limits
- ๐ 854 Fix Apple Universal 2 (arm64/x86_64) builds