#24 INTERNAL ERROR: Wrong guess of the output IDAT size


opting-0.6.4 at FreeBSD-8.1-RELEASE i386, compiled by system gcc version 4.2.1 20070719 [FreeBSD] (cflags -O2 -march=prescott)

I've run optipng -o0 on bunch of generated png images I have, and it crashed on one of these. I guess that reveals some border case bug, as there's only one failure for 1473 images which only differ in content (e.g. were generated by the same code). Image is attached.

Other optimization levels (-o1, -o2, -o3) seem to work without problems.


  • Dmitry Marakasov

    File that triggers the error

  • Matthew

    Matthew - 2010-12-20

    This seems to be a regression in the latest version. A quick test found the error in 0.6.4, but not 0.6.3.
    It's reporting the input IDAT size as 16384, but it's actually 16388. TweakPNG reveals three IDAT blocks; two of size 8192, one of size 4.

    After a little experimentation it looks like if the last IDAT size is <=5, then OptiPNG doesn't count it in the size total.

    (Note: Some IDAT configurations (e.g. combining the first two) don't cause an error because OptiPNG reports it as already optimised, but it still gets the size wrong. -sim also has this effect.)

  • Cosmin Truta

    Cosmin Truta - 2011-01-14

    Hello, Dmitry,
    Thank you very much for the report.

    Fortunately the problem is already fixed, and the fix will be available in the new release that I will publish over this weekend. It's actually a libpng problem, whose fix I submitted to the libpng developers, and which has been incorporated in libpng-1.4.5.

  • Cosmin Truta

    Cosmin Truta - 2011-01-14
    • priority: 5 --> 7
    • assigned_to: nobody --> cosmin
  • Cosmin Truta

    Cosmin Truta - 2011-01-14
    • status: open --> open-accepted
  • Dmitry Marakasov

    Great, thanks a lot!

  • Cosmin Truta

    Cosmin Truta - 2011-01-31
    • status: open-accepted --> closed-fixed

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks