Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update tileoffset sanitycheck to handle ripmaps #910

Conversation

peterhillman
Copy link
Contributor

Address https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30121

#839 added a check to confirm files which claim to contain a large number of tiles were sufficiently large to contain the required tile offset table, but only computed the size of the first level for speed. This is correct for single level files, and an adequate lower bound for MIP maps, but insufficient for RIP maps, which can contain many times more tiles than in the first level.

This change uses the slower getTiledChunkOffsetTableSize method for RIP maps to compute the exact size of the tile offset table.

Signed-off-by: Peter Hillman peterh@wetafx.co.nz

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>
Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>
Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>
Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>
Copy link
Member

@cary-ilm cary-ilm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cary-ilm cary-ilm merged commit 52d2dc3 into AcademySoftwareFoundation:master Jan 31, 2021
cary-ilm pushed a commit to cary-ilm/openexr that referenced this pull request Feb 6, 2021
…ation#910)

* update tileoffset sanitycheck to handle ripmaps

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>

* slight reorganization

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>

* slight reorganization

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>

* remove extra if statement from validateStreamSize

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>
Signed-off-by: Cary Phillips <cary@ilm.com>
cary-ilm added a commit that referenced this pull request Feb 12, 2021
* Revert "Disable OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX when building on arm64 macOS"

This reverts commit 67053eb.

Signed-off-by: Harry Mallon <hjmallon@gmail.com>

* Fix Apple Universal 2 (arm64/x86_64) builds

* In these types of builds we want arm64 and x86_64 (with AVX optimisations).
  However the way cmake works (with `CMAKE_OSX_ARCHITECTURES="arm64;x86_64"`
  means that we share one OpenEXRConfigInternal.h between both builds. So
  we have to have OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX mean "AVX GCC asm is
  available if platform is x86", rather than "AVX GCC asm is available".
  Then we decide on AVX optimisations based on that #define and also the
  platform defines.

Signed-off-by: Harry Mallon <hjmallon@gmail.com>

* Include <limits> where required by newer compilers (#893)

* Include <limits> where required by newer compilers

Signed-off-by: Cary Phillips <cary@ilm.com>

* Removed redundant #include <limits>

Signed-off-by: Cary Phillips <cary@ilm.com>

* add buffer size validation to FastHuf decode

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>

* prevent overflow in RgbaFile cachePadding

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>

* Use size_t for DWA buffersize calculation (#901)

* Use size_t for DWA buffersize calculation

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>

* use Int64 instead of size_t for buffersize calculations

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>
Signed-off-by: Cary Phillips <cary@ilm.com>

* prevent overflows by using Int64 for all vars in DWA initialize (#903)

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>
Signed-off-by: Cary Phillips <cary@ilm.com>

* update tileoffset sanitycheck to handle ripmaps  (#910)

* update tileoffset sanitycheck to handle ripmaps

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>

* slight reorganization

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>

* slight reorganization

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>

* remove extra if statement from validateStreamSize

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>
Signed-off-by: Cary Phillips <cary@ilm.com>

* additional verification of DWA data sizes (#914)

Signed-off-by: Peter Hillman <peterh@wetafx.co.nz>

* Release notes for v2.5.5

Signed-off-by: Cary Phillips <cary@ilm.com>

* fix merge of ImfTiledInputFile.cpp

Signed-off-by: Cary Phillips <cary@ilm.com>

* Bump version for 2.5.5

Signed-off-by: Cary Phillips <cary@ilm.com>

* Only wait for and join joinable threads (#921)

Signed-off-by: Cary Phillips <cary@ilm.com>

* Fixed botched merge or IlmThread.cpp/IlmThreadPool.cpp

Signed-off-by: Cary Phillips <cary@ilm.com>

* Fix 2.5.5 release date

Signed-off-by: Cary Phillips <cary@ilm.com>

Co-authored-by: Harry Mallon <hjmallon@gmail.com>
Co-authored-by: Peter Hillman <peterh@wetafx.co.nz>
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Mar 17, 2021
## Version 2.5.5 (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](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30291)
* OSS-fuzz [#29106](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29106)
* OSS-fuzz [#28971](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28971)
* OSS-fuzz [#29829](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29829)
* OSS-fuzz [#30121](https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30121)

### Merged Pull Requests

* [#914](AcademySoftwareFoundation/openexr#914) additional verification of DWA data sizes
* [#910](AcademySoftwareFoundation/openexr#910) update tileoffset sanitycheck to handle ripmaps
* [#903](AcademySoftwareFoundation/openexr#903) prevent overflows by using Int64 for all vars in DWA initialize
* [#901](AcademySoftwareFoundation/openexr#901) Use size_t for DWA buffersize calculation
* [#897](AcademySoftwareFoundation/openexr#897) prevent overflow in RgbaFile cachePadding
* [#896](AcademySoftwareFoundation/openexr#896) add buffer size validation to FastHuf decode
* [#893](AcademySoftwareFoundation/openexr#893) Include <limits> where required by newer compilers
* [#889](AcademySoftwareFoundation/openexr#889) Add explicit #include <limits> for numeric_limits
* [#854](AcademySoftwareFoundation/openexr#854) Fix Apple Universal 2 (arm64/x86_64) builds
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants