1. 01 Nov, 2012 1 commit
    • Nigel Tao's avatar
      image/png: degrade gracefully for palette index values that aren't · de6bf204
      Nigel Tao authored
      defined by the PLTE chunk. Such pixels decode to opaque black,
      which matches what libpng does.
      
      Fixes #4319.
      
      On my reading, the PNG spec isn't clear whether palette index values
      outside of those defined by the PLTE chunk is an error, and if not,
      what to do.
      
      Libpng 1.5.3 falls back to opaque black. png_set_PLTE says:
      
      /* Changed in libpng-1.2.1 to allocate PNG_MAX_PALETTE_LENGTH instead
       * of num_palette entries, in case of an invalid PNG file that has
       * too-large sample values.
       */
      png_ptr->palette = (png_colorp)png_calloc(png_ptr,
              PNG_MAX_PALETTE_LENGTH * png_sizeof(png_color));
      
      ImageMagick 6.5.7 returns an error:
      
      $ convert -version
      Version: ImageMagick 6.5.7-8 2012-08-17 Q16 http://www.imagemagick.org
      Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC
      Features: OpenMP
      $ convert packetloss.png x.bmp
      convert: Invalid colormap index `packetloss.png' @ image.c/SyncImage/3849.
      
      R=r
      CC=golang-dev
      https://golang.org/cl/6822065
      de6bf204
  2. 31 Oct, 2012 15 commits
  3. 30 Oct, 2012 14 commits
  4. 29 Oct, 2012 10 commits