SixLabors / ImageSharp

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

PBM decoder robustness improvements and BufferedReadStream observability #2551

Closed antonfirsov closed 1 year ago

antonfirsov commented 1 year ago

Prerequisites

Description

Add additonal checks to handle corrupt files better in the PBM decoder.

Also extend BufferedReadStream to monitor the number of times it has been made to hit EOF by read calls. This improves the testability of decoder behavior. The perf impact of the BufferedReadStream change is within the margin of error.