Skip to content

fix: move large scratch buffers off stack#1719

Merged
xsscx merged 1 commit into
masterfrom
ci-qa-pr-wasm-0xdeaf
Jul 18, 2026
Merged

fix: move large scratch buffers off stack#1719
xsscx merged 1 commit into
masterfrom
ci-qa-pr-wasm-0xdeaf

Conversation

@xsscx

@xsscx xsscx commented Jul 18, 2026

Copy link
Copy Markdown
Member

PR Summary

#1715

Checklist

  • [y] Signed all Commits in PR
  • [y] Built locally according to docs/build.md
  • [y] Followed the guidelines in Contributing document
  • [y] Ran relevant CTest/profile tests from docs/ctest.md
  • Updated documentation for user-visible behavior changes
  • [y] Ran sanitizer coverage for memory-safety or parser changes
  • [y] Added or updated regression coverage for behavior changes
  • For Python package changes, followed docs/python-packaging-release.md for PR and merge requirements
  • [y] Did not change maintainer-owned workflow, CTest, CPack, sanitizer, release, or security infrastructure unless requested by an iccDEV maintainer
  • New source files include the ICC copyright and BSD 3-Clause license header
  • Code style matches nearby code: 2-space indent, K&R braces, m_ members

Legal Requirements

All official software projects hosted by the International Color Consoritum (ICC)
follows the open source software best practice policies. The International Color Consoritum IP policy governs ICC specification development and contributions to ICC open source software. Software contributions are also covered by the Contributor License Agreement (CLA).

Contributor License Agreements

Developers who wish to contribute code to be considered for inclusion
in ICC software must first complete a Contributor License Agreement
(CLA)
.

There is no cost or membership requirement to sign the ICC Contributor License Agreement (CLA). Please note that this is different from membership in the International Color Consortium (ICC). If your organization relies on our projects, please become a member. Membership dues are an essential source of funding and investment for these projects.

  • If you are an individual writing the code on your own time and you are SURE you are the sole owner of any intellectual property you contribute, you can sign the CLA as an individual contributor.

  • If you are writing the code as part of your job, or if there is any possibility that your employer might think they own any intellectual property you create, then you should use the Corporate Contributor Licence Agreement

License

ICC software is licensed under the BSD 3-Clause "New" or "Revised" License. Contributions to ICC software projects should abide by that license unless otherwised specified or approved by the ICC.

Copyright Notices

All new source files must begin with the ICC Copyright notice and include or reference the BSD 3-Clause "New" or "Revised" License.

INTELLECTUAL PROPERTY & PATENTS

Participation in ICC's development activities is subject to ICC's Patent Policy.

Maintainer Review Required

If you have questions, contact a listed Maintainer.

@xsscx xsscx added this to the v2.3.2.3 milestone Jul 18, 2026
@xsscx xsscx self-assigned this Jul 18, 2026
Copilot AI review requested due to automatic review settings July 18, 2026 15:42
@xsscx xsscx linked an issue Jul 18, 2026 that may be closed by this pull request
@github-actions github-actions Bot added Source C or C++ source code changes Build Build system, CMake, compiler, or packaging labels Jul 18, 2026
@xsscx
xsscx enabled auto-merge (squash) July 18, 2026 15:42
@github-actions github-actions Bot added the pending CI checks still running label Jul 18, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Moves oversized scratch buffers from stack to heap to prevent WebAssembly stack overflows reported in #1715.

Changes:

  • Replaces large automatic buffers with vectors.
  • Preserves existing zlib and CLUT behavior.
  • Adds a WASM CLUT dump regression test.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
IccProfLib/IccTagLut.cpp Heap-allocates the 200 KB CLUT dump buffer.
IccProfLib/IccTagBasic.cpp Heap-allocates four 32 KB zlib buffers.
Build/Cmake/wasm-package/test_all.js Exercises CLUT profile dumping under WASM.

@xsscx
xsscx merged commit 4cd2f4d into master Jul 18, 2026
64 checks passed
@xsscx
xsscx deleted the ci-qa-pr-wasm-0xdeaf branch July 18, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Build Build system, CMake, compiler, or packaging pending CI checks still running Source C or C++ source code changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

QA Report: CIccTagZipUtf8Text::GetText() abort in wasm

2 participants