mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-15 07:42:42 +00:00
The 64-sample limit is now checked against the file's SamplesPerPixel before anything is decoded. It was checked against the samples the decoder gives, which is five for any CMYK file whose first ExtraSamples value is alpha, so a small file with 65,535 samples a pixel was read and the decoder took a row of every sample (1 GiB for a 16-bit file 8,192 pixels wide) before reading its data. - The row the decoder reads each strip or tile into, when the file has more samples a pixel than it gives, counts in the allowance. - Files whose samples aren't unsigned integers are refused from their tags; no reader takes them. - The same checks run before CMYK inks and plates are decoded. - The copy that puts a planar file's samples pixel by pixel is allocated once, at its length, so the reader holds no more than it counts.