Merge main into lossy-htj2k - #2562
Open
palemieux wants to merge 64 commits into
Open
Conversation
The hard-coded 4_0 release number in the new install manifest should have been converted to a symbolic value. Signed-off-by: Cary Phillips <cary@ilm.com>
…oftwareFoundation#2467) Bumps [sigstore/gh-action-sigstore-python](https://github.com/sigstore/gh-action-sigstore-python) from 3.3.0 to 3.4.0. - [Release notes](https://github.com/sigstore/gh-action-sigstore-python/releases) - [Changelog](https://github.com/sigstore/gh-action-sigstore-python/blob/main/CHANGELOG.md) - [Commits](sigstore/gh-action-sigstore-python@04cffa1...5b79a39) --- updated-dependencies: - dependency-name: sigstore/gh-action-sigstore-python dependency-version: 3.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…on#2474) Bumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.31.1 to 2.32.0. - [Release notes](https://github.com/msys2/setup-msys2/releases) - [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md) - [Commits](msys2/setup-msys2@e989830...66cd2cc) --- updated-dependencies: - dependency-name: msys2/setup-msys2 dependency-version: 2.32.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…twareFoundation#2468) Reject sample counts above 0x80000000 before rounding up to the next power of two, since larger values cause the unsigned shift loop to wrap and never terminate. Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…emySoftwareFoundation#2470) Validate non-null pointers when hint length or data size is non-zero, and apply the same checks in the in-place exr_attr_set_bytes() path. Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
3.8 was never actually included in any vfx reference platform year, and the platform has been at Python 3.9+ since CY2022. And cibuildwheel 4.0 drops support for 3.8. This will take effect in OpenEXR v3.5. Signed-off-by: Cary Phillips <cary@ilm.com>
…#2475) Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 3.4.1 to 4.1.0. - [Release notes](https://github.com/pypa/cibuildwheel/releases) - [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md) - [Commits](pypa/cibuildwheel@8d2b08b...2947353) --- updated-dependencies: - dependency-name: pypa/cibuildwheel dependency-version: 4.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cary Phillips <cary@ilm.com>
…ademySoftwareFoundation#2472) EXR_LOCK_WRITE_AND_DEFINE_PART() acquires the mutex on write contexts but both success and error returns leaked the lock, deadlocking later API calls such as exr_get_count(). Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…#2479) Both macOS matrix jobs previously built x86_64, arm64, and universal2, producing duplicate wheel filenames. Prior to AcademySoftwareFoundation#2433, the workflow downloaded each built wheel in succession, which would cause the duplicate wheel to overwrite the original, but it avoided an error. The new merge-multiple in the publish job corrupt the files, causing TestPyPI uploads to fail with "Mis-matched data size". This change builds x86_64 and universal2 on macos-15-intel and arm64 on macos-latest so merged artifacts have unique names. This also adds a validation step to the python-wheels.yml workflow to ensure the wheels have the expected structure. Signed-off-by: Cary Phillips <cary@ilm.com>
…ners (AcademySoftwareFoundation#2483) GitHub Actions deprecated Node 20 and now forces Node 24 by default, which requires glibc >= 2.25. The VFX 2021/2022 containers are CentOS 7 (glibc 2.17) and can't run Node 24, breaking the checkout step. Set ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true to allow the runner to use the Node 20 glibc-2.17 build installed in /node20217, which is the existing workaround for these old containers. Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…areFoundation#2490) A negative int cast to uint64_t bypassed the buffer size check and allowed exr_read_chunk() to write past a caller buffer. Addresses GHSA-gjpj-qv64-vwhf Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…emySoftwareFoundation#2488) The row() method in TypedDeepImageChannel, TypedFlatImageChannel, and SampleCountChannel is documented as 0-based within the data window, but used the _base offset meant for absolute (x, y) access. Index the compact backing arrays instead so row(0) aliases the first pixel when dataWindow.min is non-zero. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-hwmv-39v6-739m Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…eFoundation#2487) When --pixelmode float (or --bench) is used, outHeader channels are rewritten from the input type (e.g. HALF) to FLOAT. The DeepSlice framebuffer entries were already built from outHeader, requesting 4-byte FLOAT writes. However, the sample data buffers were allocated using the *input* header's channel types (2 bytes for HALF), so readPixels() wrote 4-byte values into 2-byte buffers — a heap buffer overflow. Fix: allocate sampleData using outHeader.channels() (the output/requested type) so that buffer sizes match the per-sample write size. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-6jj8-cxcr-j8hm Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…ion#2495) Bumps [vmactions/freebsd-vm](https://github.com/vmactions/freebsd-vm) from 1.4.6 to 1.4.8. - [Release notes](https://github.com/vmactions/freebsd-vm/releases) - [Commits](vmactions/freebsd-vm@a6de934...b84ab55) --- updated-dependencies: - dependency-name: vmactions/freebsd-vm dependency-version: 1.4.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ndation#2494) Check packed AC/DC and RLE buffer sizes against SIZE_MAX before calling alloc_fn(size_t). Without this, uint64_t sizes above 4 GiB truncate on 32-bit builds while later DWAA decode logic still uses the full size, leading to heap corruption during AC inflate. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-6662-fq6f-93mp Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…areFoundation#2493) In update_pack_unpack_ptrs(), decode->chunk.unpacked_size is uint64_t but was passed directly to internal_decode_alloc_buffer() which takes size_t. On ILP32 builds a crafted chunk with unpacked_size > 4 GiB silently truncates, allocating a tiny buffer while the decompressor and unpacker iterate over the full declared channel width, causing an out-of-bounds read. Add a truncation check before the allocation and return EXR_ERR_OUT_OF_MEMORY if unpacked_size exceeds SIZE_MAX. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-v6v5-344m-64vm Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…Foundation#2484) * Fix signed integer overflow in unpack_sample_table() Declare w and h as int64_t instead of int32_t so that index arithmetic y*w and w*h in unpack_sample_table() does not overflow when tile dimensions are large (e.g. 46342x46342). Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-rqp5-pmwm-wj6x Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Cary Phillips <cary@ilm.com> * declare y as int64_t Signed-off-by: Cary Phillips <cary@ilm.com> --------- Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…2481) Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@df4cb1c...9c091bb) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cary Phillips <cary@ilm.com>
…oftwareFoundation#2492) In update_pack_unpack_ptrs(), sampsize was computed as size_t, so on ILP32 builds a tile with width*height >= 2^30 wraps to zero (or four with the INDIVIDUAL flag), causing the sample-count table to be allocated too small and unpack_sample_table() to read far past it. Compute the size in uint64_t, check for truncation before converting to size_t, and return EXR_ERR_OUT_OF_MEMORY if the required size exceeds SIZE_MAX. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-p42q-g5c9-mh9w Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…undation#2496) Dotless channel names used multiView[0] without checking for an empty vector. Use defaultViewName() so malformed files return "" instead of OOB access. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-g8f2-r72m-48vx Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…ion#2498) * Avoid memory allocation in idmanifest parsing Signed-off-by: Peter Hillman <peterh@wetafx.co.nz> * check for negative string count, fix table size count Signed-off-by: Peter Hillman <peterh@wetafx.co.nz> --------- Signed-off-by: Peter Hillman <peterh@wetafx.co.nz> Co-authored-by: Cary Phillips <cary@ilm.com>
…cademySoftwareFoundation#2486) * Fix integer overflow in Array2D::resizeErase() on ILP32/LLP64 builds sizeX * sizeY used long arithmetic, which is 32 bits on ILP32 (32-bit Linux) and on Windows (MSVC LLP64). A tile size of 65537x65537 overflows to a small positive value, causing new[] to under-allocate and subsequent tile decoding to write past the buffer. Cast both operands to size_t before multiplying so the allocation is always correct regardless of the width of long. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-f667-c4wm-c8gq Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Cary Phillips <cary@ilm.com> * validate non-negative sizes Signed-off-by: Cary Phillips <cary@ilm.com> --------- Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…areFoundation#2469) Validate the source rgba pointer before memcpy in exr_attr_preview_create() and the same-dimensions update path in exr_attr_set_preview(), preventing a NULL pointer dereference when nonzero preview dimensions are supplied without pixel data. Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…emySoftwareFoundation#2473) Validate num_channels > 0 with entries == NULL before pointer arithmetic, covering exr_set_channels() and exr_attr_set_channels(). Also, refactor exr_attr_set_channels to call exr_attr_chlist_duplicate() since it does the same work. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-mqmw-xv8w-5jh4 Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…undation#2500) Name::operator= leaves the string without a terminating null if the string is longer than MAX_LENGTH. Write a null to ensure there is one. Signed-off-by: Cary Phillips <cary@ilm.com>
…wareFoundation#2497) * Changes for v3.14.13 Signed-off-by: Peter Hillman <peterh@wetafx.co.nz> * update notes with additional PRs Signed-off-by: Cary Phillips <cary@ilm.com> * Add 2479 to notes Signed-off-by: Cary Phillips <cary@ilm.com> * fix duplicate 3.4.13 security references Signed-off-by: Cary Phillips <cary@ilm.com> * 3.4.13 news Signed-off-by: Cary Phillips <cary@ilm.com> * update changes for v3.3.12 Signed-off-by: Peter Hillman <peterh@wetafx.co.nz> * update CHANGES for 3.2.10 Signed-off-by: Peter Hillman <peterh@wetafx.co.nz> * news & notes for 3.3 and 3.2 Signed-off-by: Cary Phillips <cary@ilm.com> * fix links Signed-off-by: Cary Phillips <cary@ilm.com> --------- Signed-off-by: Peter Hillman <peterh@wetafx.co.nz> Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Peter Hillman <peterh@wetafx.co.nz>
…twareFoundation#2501) Signed-off-by: Cary Phillips <cary@ilm.com>
…wareFoundation#2503) Signed-off-by: Peter Hillman <peterh@wetafx.co.nz> Co-authored-by: Cary Phillips <cary@ilm.com>
Bumps [actions/cache](https://github.com/actions/cache) from 6.0.0 to 6.1.0. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@2c8a9bd...55cc834) --- updated-dependencies: - dependency-name: actions/cache dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cary Phillips <cary@ilm.com>
…ion#2512) * Update security policy regarding CVE requests Clarify the conditions under which we will/won't request CVEs. Signed-off-by: Cary Phillips <cary@ilm.com> * update policy on tool bugs Signed-off-by: Cary Phillips <cary@ilm.com> * remove confusing statement Signed-off-by: Cary Phillips <cary@ilm.com> --------- Signed-off-by: Cary Phillips <cary@ilm.com>
…Foundation#2521) Bumps [github/codeql-action/init](https://github.com/github/codeql-action) from 4.36.2 to 4.36.3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@8aad20d...54f647b) --- updated-dependencies: - dependency-name: github/codeql-action/init dependency-version: 4.36.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cary Phillips <cary@ilm.com>
…SoftwareFoundation#2520) Bumps [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) from 4.36.2 to 4.36.3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@8aad20d...54f647b) --- updated-dependencies: - dependency-name: github/codeql-action/upload-sarif dependency-version: 4.36.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cary Phillips <cary@ilm.com>
…areFoundation#2519) Bumps [github/codeql-action/analyze](https://github.com/github/codeql-action) from 4.36.2 to 4.36.3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@8aad20d...54f647b) --- updated-dependencies: - dependency-name: github/codeql-action/analyze dependency-version: 4.36.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cary Phillips <cary@ilm.com>
…oftwareFoundation#2522) setDeepSliceData() used strcmp(c.name(), "G"/"B"/"A") to select the RGB channel offset, which only matched unprefixed channel names. For layer-prefixed channels like left.G and left.B the comparison failed, leaving channels 1 and 2 pointing at their initial (stale heap) data while channel 0 received all decoded samples. Fix: check only the final character of the channel name, consistent with how channelNameToRGBA() already identifies the channel suffix. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-pf59-r2mc-x746 Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…oftwareFoundation#2527) NumPy 2.5+ no longer ships manylinux_2_17 wheels and requires GCC >= 10.3 when building from source. The manylinux2014 containers only provides GCC 10.2.1, so cibuildwheel's test phase fails when pip cannot install numpy. Use manylinux_2_28 for aarch64, x86_64, and i686 builds (GCC 11, glibc 2.28), which has compatible pre-built numpy wheels and satisfies the compiler requirement. Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…ation#2528) initScanLine() adjusted Slice base pointers using full pixel-space origin offsets, but OpenEXR addresses subsampled channels with origin.x / xSampling and origin.y / ySampling. Use Slice::Make() so the base pointer matches the library's coordinate math. Fixes https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-7h7v-98cr-8ppw Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…dation#2523) Keep init, analyze, and upload-sarif on the same version so partial updates do not break the CodeQL workflow with a version mismatch. Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Bumps the codeql group with 3 updates: [github/codeql-action/init](https://github.com/github/codeql-action), [github/codeql-action/analyze](https://github.com/github/codeql-action) and [github/codeql-action/upload-sarif](https://github.com/github/codeql-action). Updates `github/codeql-action/init` from 4.36.3 to 4.37.0 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@54f647b...99df26d) Updates `github/codeql-action/analyze` from 4.36.3 to 4.37.0 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@54f647b...99df26d) Updates `github/codeql-action/upload-sarif` from 4.36.3 to 4.37.0 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@54f647b...99df26d) --- updated-dependencies: - dependency-name: github/codeql-action/init dependency-version: 4.37.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: codeql - dependency-name: github/codeql-action/analyze dependency-version: 4.37.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: codeql - dependency-name: github/codeql-action/upload-sarif dependency-version: 4.37.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: codeql ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [rules_cc](https://github.com/bazelbuild/rules_cc) from 0.2.20 to 0.2.22. - [Release notes](https://github.com/bazelbuild/rules_cc/releases) - [Commits](bazelbuild/rules_cc@0.2.20...0.2.22) --- updated-dependencies: - dependency-name: rules_cc dependency-version: 0.2.22 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cary Phillips <cary@ilm.com>
…pling (AcademySoftwareFoundation#2530) * Fix exrmultiview heap OOB when union dataWindow misaligns with subsampling Validate the combined data window against each input channel's x/y subsampling before allocating pixel buffers or calling readPixels, matching ImfHeader checks. Reject misaligned unions with ArgExc instead of reading past undersized buffers. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-gjf7-wjjw-xq56 Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Cary Phillips <cary@ilm.com> * Reject all input with sampling != 1 Subsampling is rare, and exrmultiview not commonly used, so this solution seems cleaner: just don't handle subsampling at all. Signed-off-by: Cary Phillips <cary@ilm.com> --------- Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…nnels (AcademySoftwareFoundation#2525) Signed-off-by: Kimball Thurston <kthurston@wetafx.co.nz> Co-authored-by: Cary Phillips <cary@ilm.com>
…ySoftwareFoundation#2548) Mirror the existing tile-path check in exr_read_scanline_chunk_info(): for EXR_COMPRESSION_NONE, require packed_size to equal unpacked_size before decode allocates an unpack buffer that no decompressor fills. Covers flat and deep scanline chunk leaders. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-7hgm-jxjc-6hgg Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-fwhm-jj7c-mx7v Signed-off-by: Cary Phillips <seabeepea@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…ation#2547) DWA UNKNOWN: pass actual_out to exr_uncompress_buffer() and require the inflated byte count to match UNKNOWN_UNCOMPRESSED_SIZE before copying planar data to output rows. ZIP/ZIPS: require actual_out_bytes to equal the expected uncompressed chunk size before reconstructing and unpacking pixels. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-38j8-88v6-jrm7 Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-r864-gwqv-q2hp Signed-off-by: Cary Phillips <seabeepea@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…ademySoftwareFoundation#2541) The convert path computed pixel_count as int64_t but passed samplesize * pixel_count to std::vector::resize(size_type), which truncates on ILP32 and left readPixels() writing past the buffer. Validate the size fits in size_t before resizing channelstore. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-r24r-74rc-588f Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…ion#2540) Array2D computed sizeX * sizeY in 32-bit arithmetic before new[]. On ILP32, a 65537 x 65537 allocation wraps to a tiny buffer while decode still writes the full image. Validate the element count in uint64_t and reject dimensions whose product exceeds size_t before constructing or resizing Array2D. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-h56j-j82x-w3fp Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-wrw5-mm52-r3h8 Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…areFoundation#2539) exrmetrics computed image buffer sizes as uint64_t but passed them to std::vector::resize(size_type), which silently truncates on 32-bit builds and left decode writing past undersized channel and sample-count buffers. Validate count and size to confirm the cast to size_t does not overflow. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-r8mj-rhfc-38g4 Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-pgc2-hppj-q623 Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-g5m8-8w79-34q8 Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-xc77-xm9h-qxm4 Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…demySoftwareFoundation#2535) ddata[1] (packed_size) and ddata[2] (unpacked_size) both had '< 0 || > INT_MAX' guards, but ddata[0] (sample_count_table_size) only had '< 0'. A value > INT_MAX stored in the uint64_t field then gets truncated to size_t on ILP32, causing an undersized allocation followed by a heap overflow when exr_read_deep_chunk writes the full 64-bit byte count into it. Addresses https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-m5cq-cx25-qw53 Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…eFoundation#2549) README.md: CODE_OF_CONDUCT → CODE_OF_CONDUCT.md CONTRIBUTING.md: - website/requirements.txtg → website/requirements.txt - #Creating-a-Major/Minor-Release → #creating-a-majorminor-release - #required-approvals → #code-review-and-required-approvals Signed-off-by: Cary Phillips <cary@ilm.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…ion#2552) Bumps [vmactions/freebsd-vm](https://github.com/vmactions/freebsd-vm) from 1.5.0 to 1.5.2. - [Release notes](https://github.com/vmactions/freebsd-vm/releases) - [Commits](vmactions/freebsd-vm@5a72679...77ed28d) --- updated-dependencies: - dependency-name: vmactions/freebsd-vm dependency-version: 1.5.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the codeql group with 3 updates: [github/codeql-action/init](https://github.com/github/codeql-action), [github/codeql-action/analyze](https://github.com/github/codeql-action) and [github/codeql-action/upload-sarif](https://github.com/github/codeql-action). Updates `github/codeql-action/init` from 4.37.0 to 4.37.1 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@99df26d...7188fc3) Updates `github/codeql-action/analyze` from 4.37.0 to 4.37.1 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@99df26d...7188fc3) Updates `github/codeql-action/upload-sarif` from 4.37.0 to 4.37.1 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@99df26d...7188fc3) --- updated-dependencies: - dependency-name: github/codeql-action/init dependency-version: 4.37.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: codeql - dependency-name: github/codeql-action/analyze dependency-version: 4.37.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: codeql - dependency-name: github/codeql-action/upload-sarif dependency-version: 4.37.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: codeql ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cary Phillips <cary@ilm.com>
…reFoundation#2553) Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from 1.14.0 to 1.14.1. - [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases) - [Commits](pypa/gh-action-pypi-publish@cef2210...ba38be9) --- updated-dependencies: - dependency-name: pypa/gh-action-pypi-publish dependency-version: 1.14.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cary Phillips <cary@ilm.com>
…ion#2554) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.3.0 to 7.0.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@ece7cb0...5fda3b9) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cary Phillips <cary@ilm.com>
…2555) Bumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@9c091bb...3d3c42e) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
palemieux
requested review from
cary-ilm,
kdt3rd and
peterhillman
and removed request for
kdt3rd
July 29, 2026 20:03
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.