mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-26 02:57:34 -06:00
A PDF could abort the process through its colour spaces and functions. An Indexed hival of 10^12 asked an image for a 24 TB palette. A sampled function's outputs (one per /Range pair) multiplied its table without a bound, and copies of the table (one per q, one per reference) multiplied it again. Self-referencing colour spaces and functions overflowed the stack, a calculator's copy doubled its operand stack, index, idiv and mod could panic, and f64::clamp panicked on a reversed /Domain or /Range. Clamp hival to 255, count samples with checked arithmetic (at most 32 inputs and outputs, 2^24 samples a table), share the samples, give one function read a budget of nodes and samples, limit nesting to 8 levels and the calculator stack to 100, and clamp with the bounds in either order. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>