SixLabors / ImageSharp

:camera: A modern, cross-platform, 2D Graphics library for .NET
https://sixlabors.com/products/imagesharp/
Other
7.34k stars 847 forks source link

Correctly break during Png decoding #2769

Closed JimBobSquarePants closed 1 month ago

JimBobSquarePants commented 2 months ago

Prerequisites

Description

Fixes #2752

We weren't breaking from the loop only the nested switch. We were also missing a chunk break. The first fcTL chunk in a PNG is followed by one or more IDAT chunk, only subsequent fcTL chunks are followed by fdAT chunks.

The test image contains the following chunks.

IHDR, pHYs, acTL, fcTL, IDAT ×3, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT,
fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, 
fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT,
fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT,
fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL,
fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT,
fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, fcTL, fdAT, fdAT, IEND