Re: Why is it that png files are not dependable over the long haul

Cosmin Truta <[email protected]> Thu, 2 Aug 2018 00:25:09 -0400
Newsgroups gmane.comp.graphics.png.devel
Message-ID <CAAoVtZwvy0O5SSuwQwgUBCmDs3m_GCgBVp46iXwOaAgdQOv_qw@mail.gmail.com>
Cosmin Truta wrote:

> The PNG specification (and zlib, and deflate, etc.) have strict rules
> for error detection, but no rules for error recovery.

Correction: the PNG spec does have rules for error recovery, for
ancillary chunks (e.g. signal, and then drop the bad ancillary chunks,
and then continue) but not for critical chunks. The error that we're
dealing with here is inside IDAT, which is a critical chunk containing
a critically-important, unfortunately broken zlib datastream.

Also: general rules for error recovery do not specifically include
rules for data recovery. For example: if you have a chunk with
spurious data, it's intuitive to simply discard the spurious data. But
other than that, where nothing is spurious, and nothing is redundant
(as it is in our case), it is necessary to guess (because it is not
possible to absolutely know) how to recover the data. And guessing is
what we're doing here to solve this problem.

Sincerely,
Cosmin

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot