[libpng16] Imported from libpng-1.6.0beta32.tar
diff --git a/ANNOUNCE b/ANNOUNCE
index a54736a..f23f571 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.6.0beta32 - November 22, 2012
+Libpng 1.6.0beta32 - November 25, 2012
 
 This is not intended to be a public release.  It will be replaced
 within a few weeks by a public version or by another test version.
@@ -545,7 +545,7 @@
     gain; implementing full ICC color correction may be desireable but is left
     up to applications.
 
-Version 1.6.0beta32 [November 22, 2012]
+Version 1.6.0beta32 [November 25, 2012]
   Fixed an intermittent SEGV in pngstest due to an uninitialized array element.
   Added the ability for contrib/libtests/makepng.c to make a PNG with just one
     color. This is useful for debugging pngstest color inaccuracy reports.
diff --git a/CHANGES b/CHANGES
index 246610f..ab8596e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4297,7 +4297,7 @@
     gain; implementing full ICC color correction may be desireable but is left
     up to applications.
 
-Version 1.6.0beta32 [November 22, 2012]
+Version 1.6.0beta32 [November 25, 2012]
   Fixed an intermittent SEGV in pngstest due to an uninitialized array element.
   Added the ability for contrib/libtests/makepng.c to make a PNG with just one
     color. This is useful for debugging pngstest color inaccuracy reports.
diff --git a/LICENSE b/LICENSE
index 6c8267b..e165054 100644
--- a/LICENSE
+++ b/LICENSE
@@ -10,7 +10,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.6.0beta32, November 1, 2012, are
+libpng versions 1.2.6, August 15, 2004, through 1.6.0beta32, November 25, 2012, are
 Copyright (c) 2004, 2006-2012 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.2.5
 with the following individual added to the list of Contributing Authors
@@ -108,4 +108,4 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-November 1, 2012
+November 25, 2012
diff --git a/README b/README
index 5560daf..7ea2571 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.6.0beta32 - November 1, 2012 (shared library 16.0)
+README for libpng version 1.6.0beta32 - November 25, 2012 (shared library 16.0)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
diff --git a/libpng-manual.txt b/libpng-manual.txt
index 50fa058..0226fb2 100644
--- a/libpng-manual.txt
+++ b/libpng-manual.txt
@@ -1,6 +1,6 @@
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.6.0beta32 - November 1, 2012
+ libpng version 1.6.0beta32 - November 25, 2012
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2011 Glenn Randers-Pehrson
@@ -11,7 +11,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.6.0beta32 - November 1, 2012
+ libpng versions 0.97, January 1998, through 1.6.0beta32 - November 25, 2012
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2011 Glenn Randers-Pehrson
 
@@ -2567,6 +2567,20 @@
 more useful than abort(), as long as your function does not
 return.
 
+Checking for invalid palette index on write was added at libpng
+1.5.10.  If a pixel contains an invalid (out-of-range) index libpng issues
+a benign error.  This is enabled by default because this condition is an
+error according to the PNG specification, Clause 11.3.2, but the error can
+be ignored in each png_ptr with
+
+   png_set_check_for_invalid_index(png_ptr, 0);
+
+If the error is ignored, or if png_benign_error() treats it as a warning,
+any invalid pixels are written as-is by the encoder, resulting in an
+invalid PNG datastream as output.  In this case the application is
+responsible for ensuring that the pixel indexes are in range when it writes
+a PLTE chunk with fewer entries than the bit depth would allow.
+
 Now you need to set up the output code.  The default for libpng is to
 use the C function fwrite().  If you use this, you will need to pass a
 valid FILE * in the function png_init_io().  Be sure that the file is
@@ -3534,7 +3548,7 @@
    png_uint_32  warning_or_error;
    char         message[64];
 
-In the event of an error or warning the following field wrning_or_error
+In the event of an error or warning the following field warning_or_error
 field will be set to a non-zero value and the 'message' field will contain
 a '\0' terminated string with the libpng error or warning message.  If both
 warnings and an error were encountered, only the error is recorded.  If there
@@ -4562,13 +4576,22 @@
 
 Checking for invalid palette index on read or write was added at libpng
 1.5.10.  When an invalid index is found, libpng issues a benign error.
-This is enabled by default but can be disabled in each png_ptr with
+This is enabled by default because this condition is an error according
+to the PNG specification, Clause 11.3.2, but the error can be ignored in
+each png_ptr with
 
    png_set_check_for_invalid_index(png_ptr, allowed);
 
       allowed  - one of
-                 0: disable
-                 1: enable
+                 0: disable benign error (accept the
+                    invalid data without warning).
+                 1: enable benign error (treat the
+                    invalid data as an error or a
+                    warning).
+
+If the error is ignored, or if png_benign_error() treats it as a warning,
+any invalid pixels are decoded as opaque black by the decoder and written
+as-is by the encoder.
 
 A. Changes that affect users of libpng
 
@@ -5064,7 +5087,7 @@
 
 XVI. Y2K Compliance in libpng
 
-November 1, 2012
+November 25, 2012
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
diff --git a/libpng.3 b/libpng.3
index ec91aac..3b3833a 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,4 +1,4 @@
-.TH LIBPNG 3 "November 1, 2012"
+.TH LIBPNG 3 "November 25, 2012"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.0beta32
 .SH SYNOPSIS
@@ -997,7 +997,7 @@
 .SH LIBPNG.TXT
 libpng-manual.txt - A description on how to use and modify libpng
 
- libpng version 1.6.0beta32 - November 1, 2012
+ libpng version 1.6.0beta32 - November 25, 2012
  Updated and distributed by Glenn Randers-Pehrson
  <glennrp at users.sourceforge.net>
  Copyright (c) 1998-2011 Glenn Randers-Pehrson
@@ -1008,7 +1008,7 @@
 
  Based on:
 
- libpng versions 0.97, January 1998, through 1.6.0beta32 - November 1, 2012
+ libpng versions 0.97, January 1998, through 1.6.0beta32 - November 25, 2012
  Updated and distributed by Glenn Randers-Pehrson
  Copyright (c) 1998-2011 Glenn Randers-Pehrson
 
@@ -3564,6 +3564,20 @@
 more useful than abort(), as long as your function does not
 return.
 
+Checking for invalid palette index on write was added at libpng
+1.5.10.  If a pixel contains an invalid (out-of-range) index libpng issues
+a benign error.  This is enabled by default because this condition is an
+error according to the PNG specification, Clause 11.3.2, but the error can
+be ignored in each png_ptr with
+
+   png_set_check_for_invalid_index(png_ptr, 0);
+
+If the error is ignored, or if png_benign_error() treats it as a warning,
+any invalid pixels are written as-is by the encoder, resulting in an
+invalid PNG datastream as output.  In this case the application is
+responsible for ensuring that the pixel indexes are in range when it writes
+a PLTE chunk with fewer entries than the bit depth would allow.
+
 Now you need to set up the output code.  The default for libpng is to
 use the C function fwrite().  If you use this, you will need to pass a
 valid FILE * in the function png_init_io().  Be sure that the file is
@@ -4531,7 +4545,7 @@
    png_uint_32  warning_or_error;
    char         message[64];
 
-In the event of an error or warning the following field wrning_or_error
+In the event of an error or warning the following field warning_or_error
 field will be set to a non-zero value and the 'message' field will contain
 a '\0' terminated string with the libpng error or warning message.  If both
 warnings and an error were encountered, only the error is recorded.  If there
@@ -5560,13 +5574,22 @@
 
 Checking for invalid palette index on read or write was added at libpng
 1.5.10.  When an invalid index is found, libpng issues a benign error.
-This is enabled by default but can be disabled in each png_ptr with
+This is enabled by default because this condition is an error according
+to the PNG specification, Clause 11.3.2, but the error can be ignored in
+each png_ptr with
 
    png_set_check_for_invalid_index(png_ptr, allowed);
 
       allowed  - one of
-                 0: disable
-                 1: enable
+                 0: disable benign error (accept the
+                    invalid data without warning).
+                 1: enable benign error (treat the
+                    invalid data as an error or a
+                    warning).
+
+If the error is ignored, or if png_benign_error() treats it as a warning,
+any invalid pixels are decoded as opaque black by the decoder and written
+as-is by the encoder.
 
 A. Changes that affect users of libpng
 
@@ -6062,7 +6085,7 @@
 
 .SH XVI. Y2K Compliance in libpng
 
-November 1, 2012
+November 25, 2012
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
@@ -6330,7 +6353,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.6.0beta32 - November 1, 2012:
+Libpng version 1.6.0beta32 - November 25, 2012:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
 
@@ -6353,7 +6376,7 @@
 
 This code is released under the libpng license.
 
-libpng versions 1.2.6, August 15, 2004, through 1.6.0beta32, November 1, 2012, are
+libpng versions 1.2.6, August 15, 2004, through 1.6.0beta32, November 25, 2012, are
 Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.2.5
 with the following individual added to the list of Contributing Authors
@@ -6452,7 +6475,7 @@
 
 Glenn Randers-Pehrson
 glennrp at users.sourceforge.net
-November 1, 2012
+November 25, 2012
 
 .\" end of man page
 
diff --git a/libpngpf.3 b/libpngpf.3
index bdadf21..d5ae1c3 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,4 +1,4 @@
-.TH LIBPNGPF 3 "November 1, 2012"
+.TH LIBPNGPF 3 "November 25, 2012"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.0beta32
 (private functions)
diff --git a/png.5 b/png.5
index c3b6b22..b17672d 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "November 1, 2012"
+.TH PNG 5 "November 25, 2012"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 20484aa..c2c231f 100644
--- a/png.c
+++ b/png.c
@@ -768,13 +768,13 @@
 #else
 #  ifdef __STDC__
    return PNG_STRING_NEWLINE \
-     "libpng version 1.6.0beta32 - November 22, 2012" PNG_STRING_NEWLINE \
+     "libpng version 1.6.0beta32 - November 25, 2012" PNG_STRING_NEWLINE \
      "Copyright (c) 1998-2012 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
      "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
      "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
      PNG_STRING_NEWLINE;
 #  else
-      return "libpng version 1.6.0beta32 - November 22, 2012\
+      return "libpng version 1.6.0beta32 - November 25, 2012\
       Copyright (c) 1998-2012 Glenn Randers-Pehrson\
       Copyright (c) 1996-1997 Andreas Dilger\
       Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
diff --git a/png.h b/png.h
index 44df572..06a29e2 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.6.0beta32 - November 1, 2012
+ * libpng version 1.6.0beta32 - November 25, 2012
  * Copyright (c) 1998-2012 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@@ -11,7 +11,7 @@
  * Authors and maintainers:
  *   libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
  *   libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
- *   libpng versions 0.97, January 1998, through 1.6.0beta32 - November 1, 2012: Glenn
+ *   libpng versions 0.97, January 1998, through 1.6.0beta32 - November 25, 2012: Glenn
  *   See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -198,7 +198,7 @@
  *
  * This code is released under the libpng license.
  *
- * libpng versions 1.2.6, August 15, 2004, through 1.6.0beta32, November 1, 2012, are
+ * libpng versions 1.2.6, August 15, 2004, through 1.6.0beta32, November 25, 2012, are
  * Copyright (c) 2004, 2006-2012 Glenn Randers-Pehrson, and are
  * distributed according to the same disclaimer and license as libpng-1.2.5
  * with the following individual added to the list of Contributing Authors:
@@ -310,7 +310,7 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    November 1, 2012
+ *    November 25, 2012
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
@@ -378,7 +378,7 @@
 /* Version information for png.h - this should match the version in png.c */
 #define PNG_LIBPNG_VER_STRING "1.6.0beta32"
 #define PNG_HEADER_VERSION_STRING \
-     " libpng version 1.6.0beta32 - November 1, 2012\n"
+     " libpng version 1.6.0beta32 - November 25, 2012\n"
 
 #define PNG_LIBPNG_VER_SONUM   16
 #define PNG_LIBPNG_VER_DLLNUM  16
diff --git a/pngconf.h b/pngconf.h
index d0c52de..b17989c 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng version 1.6.0beta32 - November 1, 2012
+ * libpng version 1.6.0beta32 - November 25, 2012
  *
  * Copyright (c) 1998-2012 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngset.c b/pngset.c
index 85a1c14..c57dcef 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1536,7 +1536,14 @@
 #endif /* PNG_BENIGN_ERRORS_SUPPORTED */
 
 #ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED
-   /* Do not report invalid palette index; added at libng-1.5.10 */
+   /* Whether to report invalid palette index; added at libng-1.5.10.
+    * It is possible for an indexed (color-type==3) PNG file to contain
+    * pixels with invalid (out-of-range) indexes if the PLTE chunk has
+    * fewer entries than the image's bit-depth would allow. We recover
+    * from this gracefully by filling any incomplete palette with zeroes
+    * (opaque black).  By default, when this occurs libpng will issue
+    * a benign error.  This API can be used to override that behavior.
+    */
 void PNGAPI
 png_set_check_for_invalid_index(png_structrp png_ptr, int allowed)
 {
diff --git a/projects/vstudio/readme.txt b/projects/vstudio/readme.txt
index af737f9..dbe3d6f 100644
--- a/projects/vstudio/readme.txt
+++ b/projects/vstudio/readme.txt
@@ -1,7 +1,7 @@
 
 VisualStudio instructions
 
-libpng version 1.6.0beta32 - November 1, 2012
+libpng version 1.6.0beta32 - November 25, 2012
 
 Copyright (c) 1998-2010 Glenn Randers-Pehrson
 
diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props
index fb6556d..bf5d049 100644
--- a/projects/vstudio/zlib.props
+++ b/projects/vstudio/zlib.props
@@ -2,7 +2,7 @@
 <!--
  * zlib.props - location of zlib source
  *
- * libpng version 1.6.0beta32 - November 1, 2012
+ * libpng version 1.6.0beta32 - November 25, 2012
  *
  * Copyright (c) 1998-2011 Glenn Randers-Pehrson
  *
diff --git a/scripts/README.txt b/scripts/README.txt
index e778fae..5354ef1 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -1,5 +1,5 @@
 
-Makefiles for  libpng version 1.6.0beta32 - November 1, 2012
+Makefiles for  libpng version 1.6.0beta32 - November 25, 2012
 
 pnglibconf.h.prebuilt       =>  Stores configuration settings
  makefile.linux    =>  Linux/ELF makefile
diff --git a/scripts/pnglibconf.h.prebuilt b/scripts/pnglibconf.h.prebuilt
index 73482e6..8c4c6e0 100644
--- a/scripts/pnglibconf.h.prebuilt
+++ b/scripts/pnglibconf.h.prebuilt
@@ -3,7 +3,7 @@
 
 /* pnglibconf.h - library build configuration */
 
-/* Libpng 1.6.0beta32 - November 1, 2012 */
+/* Libpng 1.6.0beta32 - November 25, 2012 */
 
 /* Copyright (c) 1998-2012 Glenn Randers-Pehrson */