Imported from libpng-1.0.11rc1.tar
diff --git a/ANNOUNCE b/ANNOUNCE
index e846ba4..c32e364 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.0.11beta3 - April 15, 2001
+Libpng 1.0.11rc1 - April 20, 2001
 
 This is a public release of libpng, intended for use in production codes.
 
@@ -10,7 +10,9 @@
   Changed several "//" single-line comments to C-style in pnggccrd.c
   Removed PNGAPI from private functions whose prototypes did not have PNGAPI.
   Updated scripts/pngos2.def
-  Added checking the results of many instances of png_malloc() for NULL
+  Added makefile.netbsd
+  Added a check for NULL return from user's malloc_fn().
+  Removed some useless type casts of the NULL pointer.
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/CHANGES b/CHANGES
index 279177c..401894d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -921,8 +921,13 @@
 version 1.0.11beta2 [April 11, 2001]
   Removed PNGAPI from several functions whose prototypes did not have PNGAPI.
   Updated scripts/pngos2.def
-version 1.0.11beta3 [April 15, 2001]
+version 1.0.11beta3 [April 14, 2001]
   Added checking the results of many instances of png_malloc() for NULL
+version 1.0.11rc1 [April 20, 2001]
+  Undid the changes from version 1.0.11beta3.  Added a check for NULL return
+    from user's malloc_fn().
+  Removed some useless type casts of the NULL pointer.
+  Added makefile.netbsd .
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/INSTALL b/INSTALL
index 9467fb3..683808b 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.0.11beta3 - April 15, 2001
+Installing libpng version 1.0.11rc1 - April 20, 2001
 
 Before installing libpng, you must first install zlib.  zlib
 can usually be found wherever you got libpng.  zlib can be
@@ -10,7 +10,7 @@
 version of zlib that's installed.
 
 You can rename the directories that you downloaded (they
-might be called "libpng-1.0.11beta3" or "lpng109" and "zlib-1.1.3"
+might be called "libpng-1.0.11rc1" or "lpng109" and "zlib-1.1.3"
 or "zlib113") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
@@ -60,8 +60,8 @@
 include
 
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
- makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.11beta3)
- makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.11beta3,
+ makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.11rc1)
+ makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0.11rc1,
                        uses assembler code tuned for Intel MMX platform)
  makefile.gcc      =>  Generic makefile (gcc, creates static libpng.a)
  makefile.knr      =>  Archaic UNIX Makefile that converts files with
@@ -76,10 +76,11 @@
  makefile.intel    =>  Intel C/C++ version 4.0 and later
  libpng.icc        =>  Project file for IBM VisualAge/C++ version 4.0 or later
  makefile.macosx   =>  MACOS X Makefile
+ makefile.netbsd   =>  NetBSD/cc makefile, uses PNGGCCRD
  makefile.sgi      =>  Silicon Graphics IRIX makefile (cc, creates static lib)
- makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.11beta3)
+ makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.11rc1)
  makefile.sunos    =>  Sun makefile
- makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.11beta3)
+ makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0.11rc1)
  makefile.sco      =>  For SCO OSr5  ELF and Unixware 7 with Native cc
  makefile.mips     =>  MIPS makefile
  makefile.acorn    =>  Acorn makefile
diff --git a/KNOWNBUG b/KNOWNBUG
index d58d3cd..241ce53 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -25,4 +25,7 @@
 4. April 14, 2001: Many instances of png_malloc() are not followed by
    a check to make sure it didn't return NULL.
 
-   STATUS: tests were added in libpng-1.0.11beta3.
+   STATUS: This only seems to matter if the user is using a custom
+   malloc_fn() that returns NULL.  In libpng-1.0.11rc1 the return from
+   malloc_fn() will be checked for NULL and png_error() issued if one
+   is found.
diff --git a/LICENSE b/LICENSE
index 68c5235..544c536 100644
--- a/LICENSE
+++ b/LICENSE
@@ -8,7 +8,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.0.7, July 1, 2000, through 1.0.11beta3, April 15, 2001, are
+libpng versions 1.0.7, July 1, 2000, through 1.0.11rc1, April 20, 2001, are
 Copyright (c) 2000, 2001 Glenn Randers-Pehrson
 and are distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors
@@ -99,4 +99,4 @@
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-April 15, 2001
+April 20, 2001
diff --git a/README b/README
index fa452d0..320284c 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng 1.0.11beta3 - April 15, 2001 (shared library 2.1)
+README for libpng 1.0.11rc1 - April 20, 2001 (shared library 2.1)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
@@ -183,9 +183,9 @@
        descrip.mms      =>  VMS makefile for MMS or MMK
        makefile.std     =>  Generic UNIX makefile (cc, creates static libpng.a)
        makefile.linux   =>  Linux/ELF makefile
-                            (gcc, creates libpng.so.2.1.0.11beta3)
+                            (gcc, creates libpng.so.2.1.0.11rc1)
        makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                            libpng.so.2.1.0.11beta3, uses assembler code
+                            libpng.so.2.1.0.11rc1, uses assembler code
                             tuned for Intel MMX platform)
        makefile.gcc     =>  Generic makefile (gcc, creates static libpng.a)
        makefile.knr     =>  Archaic UNIX Makefile that converts files with
@@ -200,11 +200,12 @@
        makefile.intel   =>  Intel C/C++ version 4.0 and later
        libpng.icc       =>  Project file, IBM VisualAge/C++ 4.0 or later
        makefile.macosx  =>  MACOS X Makefile
+       makefile.netbsd  =>  NetBSD/cc makefile, uses PNGGCCRD
        makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib)
-       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.11beta3)
+       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng.so.2.1.0.11rc1)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng.so.2.1.0.11beta3)
+                            (gcc, creates libpng.so.2.1.0.11rc1)
        makefile.sco     =>  For SCO OSr5  ELF and Unixware 7 with Native cc
        makefile.mips    =>  MIPS makefile
        makefile.acorn   =>  Acorn makefile
diff --git a/Y2KINFO b/Y2KINFO
index 5670ff7..909f048 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      April 15, 2001
+      April 20, 2001
 
       Since the PNG Development group is an ad-hoc body, we can't make
       an official declaration.
 
       This is your unofficial assurance that libpng from version 0.71 and
-      upward through 1.0.11beta3 are Y2K compliant.  It is my belief that earlier
+      upward through 1.0.11rc1 are Y2K compliant.  It is my belief that earlier
       versions were also Y2K compliant.
 
       Libpng only has three year fields.  One is a 2-byte unsigned integer
diff --git a/configure b/configure
index 47701ba..d8bb912 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 echo "
-  There is no \"configure\" script for Libpng-1.0.11beta3.  Instead, please
+  There is no \"configure\" script for Libpng-1.0.11rc1.  Instead, please
   copy the appropriate makefile for your system from the \"scripts\"
   directory.  Read the INSTALL file for more details.
 "
diff --git a/example.c b/example.c
index 8a7da25..f0fe688 100644
--- a/example.c
+++ b/example.c
@@ -338,7 +338,8 @@
 
    for (row = 0; row < height; row++)
    {
-      row_pointers[row] = malloc(png_get_rowbytes(png_ptr, info_ptr));
+      row_pointers[row] = png_malloc(png_ptr, png_get_rowbytes(png_ptr,
+         info_ptr));
    }
 
    /* Now it's time to read the image.  One of these methods is REQUIRED */
@@ -605,8 +606,6 @@
    /* set the palette if there is one.  REQUIRED for indexed-color images */
    palette = (png_colorp)png_malloc(png_ptr, PNG_MAX_PALETTE_LENGTH
              * sizeof (png_color));
-   if (palette == NULL)
-      png_error(png_ptr, "Example: malloc of palette failed");
    /* ... set palette colors ... */
    png_set_PLTE(png_ptr, info_ptr, palette, PNG_MAX_PALETTE_LENGTH);
    /* You must not free palette here, because png_set_PLTE only makes a link to
diff --git a/libpng.3 b/libpng.3
index 657039b..58e6e57 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "April 15, 2001"
+.TH LIBPNG 3 "April 20, 2001"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.11beta3
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.11rc1
 .SH SYNOPSIS
 \fI\fB
 
@@ -747,7 +747,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.0.11beta3 - April 15, 2001
+ libpng version 1.0.11rc1 - April 20, 2001
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -3061,6 +3061,10 @@
        png_uint_32 size);
     void free_fn(png_structp png_ptr, png_voidp ptr);
 
+Your malloc_fn() can return NULL in case of failure.  The png_malloc()
+function will call png_error() if it receives a NULL from the system
+memory allocator or from your replacement malloc_fn().
+
 Input/Output in libpng is done through png_read() and png_write(),
 which currently just call fread() and fwrite().  The FILE * is stored in
 png_struct and is initialized via png_init_io().  If you wish to change
@@ -3464,13 +3468,13 @@
 
 .SH VIII. Y2K Compliance in libpng
 
-April 15, 2001
+April 20, 2001
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
 
 This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.0.11beta3 are Y2K compliant.  It is my belief that earlier
+upward through 1.0.11rc1 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
@@ -3580,6 +3584,7 @@
  1.0.10rc1            1    10010  2.1.0.10rc1
  1.0.10               1    10010  2.1.0.10
  1.0.11beta1-3        1    10011  2.1.0.11beta1-3
+ 1.0.11rc1            1    10011  2.1.0.11rc1
 
 Henceforth the source version will match the shared-library minor
 and patch numbers; the shared-library major version number will be
@@ -3637,7 +3642,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.0.11beta3 - April 15, 2001:
+Libpng version 1.0.11rc1 - April 20, 2001:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
 
@@ -3654,7 +3659,7 @@
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.0.7, July 1, 2000, through  1.0.11beta3, April 15, 2001, are
+libpng versions 1.0.7, July 1, 2000, through  1.0.11rc1, April 20, 2001, are
 Copyright (c) 2000-2001 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors
@@ -3746,7 +3751,7 @@
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-April 15, 2001
+April 20, 2001
 
 .\" end of man page
 
diff --git a/libpng.txt b/libpng.txt
index 425cf30..c0330b2 100644
--- a/libpng.txt
+++ b/libpng.txt
@@ -1,6 +1,6 @@
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.0.11beta3 - April 15, 2001
+ libpng version 1.0.11rc1 - April 20, 2001
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
@@ -2314,6 +2314,10 @@
        png_uint_32 size);
     void free_fn(png_structp png_ptr, png_voidp ptr);
 
+Your malloc_fn() can return NULL in case of failure.  The png_malloc()
+function will call png_error() if it receives a NULL from the system
+memory allocator or from your replacement malloc_fn().
+
 Input/Output in libpng is done through png_read() and png_write(),
 which currently just call fread() and fwrite().  The FILE * is stored in
 png_struct and is initialized via png_init_io().  If you wish to change
@@ -2717,13 +2721,13 @@
 
 VIII. Y2K Compliance in libpng
 
-April 15, 2001
+April 20, 2001
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
 
 This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.0.11beta3 are Y2K compliant.  It is my belief that earlier
+upward through 1.0.11rc1 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
diff --git a/libpngpf.3 b/libpngpf.3
index b503e17..7813413 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "April 15, 2001"
+.TH LIBPNGPF 3 "April 20, 2001"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.11beta3
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.11rc1
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/png.5 b/png.5
index 7ff5898..c3b659c 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "April 15, 2001"
+.TH PNG 5 "April 20, 2001"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index 59fab5a..f1cd3f3 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * libpng version 1.0.11beta3 - April 15, 2001
+ * libpng version 1.0.11rc1 - April 20, 2001
  * Copyright (c) 1998-2001 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.)
@@ -13,14 +13,14 @@
 #include "png.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_11beta3 Your_png_h_is_not_version_1_0_11beta3;
+typedef version_1_0_11rc1 Your_png_h_is_not_version_1_0_11rc1;
 
 /* Version information for C files.  This had better match the version
  * string defined in png.h.  */
 
 #ifdef PNG_USE_GLOBAL_ARRAYS
 /* png_libpng_ver was changed to a function in version 1.0.5c */
-const char png_libpng_ver[18] = "1.0.11beta3";
+const char png_libpng_ver[18] = "1.0.11rc1";
 
 /* png_sig was changed to a function in version 1.0.5c */
 /* Place to hold the signature string for a PNG file. */
@@ -142,18 +142,15 @@
    png_voidp ptr = (png_voidp)png_malloc((png_structp)png_ptr, num_bytes);
 
 #ifndef PNG_NO_ZALLOC_ZERO
-   if (ptr)
+   if (num_bytes > (png_uint_32)0x8000L)
    {
-     if (num_bytes > (png_uint_32)0x8000L)
-     {
-        png_memset(ptr, 0, (png_size_t)0x8000L);
-        png_memset((png_bytep)ptr + (png_size_t)0x8000L, 0,
-           (png_size_t)(num_bytes - (png_uint_32)0x8000L));
-     }
-     else
-     {
-        png_memset(ptr, 0, (png_size_t)num_bytes);
-     }
+      png_memset(ptr, 0, (png_size_t)0x8000L);
+      png_memset((png_bytep)ptr + (png_size_t)0x8000L, 0,
+         (png_size_t)(num_bytes - (png_uint_32)0x8000L));
+   }
+   else
+   {
+      png_memset(ptr, 0, (png_size_t)num_bytes);
    }
 #endif
    return ((voidpf)ptr);
@@ -285,7 +282,8 @@
 #endif
 
 void PNGAPI
-png_free_data(png_structp png_ptr, png_infop info_ptr, png_uint_32 mask, int num)
+png_free_data(png_structp png_ptr, png_infop info_ptr, png_uint_32 mask,
+   int num)
 {
    png_debug(1, "in png_free_data\n");
    if (png_ptr == NULL || info_ptr == NULL)
@@ -584,31 +582,27 @@
          sizeof(char)));
    }
 
-   if (png_ptr->time_buffer == NULL)
-      png_warning(png_ptr, "Malloc of buffer for tIME chunk failed");
-   else
-   {
 #if defined(_WIN32_WCE)
-     {
-        wchar_t time_buf[29];
-        wsprintf(time_buf, TEXT("%d %S %d %02d:%02d:%02d +0000"),
-            ptime->day % 32, short_months[(ptime->month - 1) % 12],
-            ptime->year, ptime->hour % 24, ptime->minute % 60,
-            ptime->second % 61);
-        WideCharToMultiByte(CP_ACP, 0, time_buf, -1, png_ptr->time_buffer, 29,
-            NULL, NULL);
-     }
+   {
+      wchar_t time_buf[29];
+      wsprintf(time_buf, TEXT("%d %S %d %02d:%02d:%02d +0000"),
+          ptime->day % 32, short_months[(ptime->month - 1) % 12],
+        ptime->year, ptime->hour % 24, ptime->minute % 60,
+          ptime->second % 61);
+      WideCharToMultiByte(CP_ACP, 0, time_buf, -1, png_ptr->time_buffer, 29,
+          NULL, NULL);
+   }
 #else
 #ifdef USE_FAR_KEYWORD
-     {
-        char near_time_buf[29];
-        sprintf(near_time_buf, "%d %s %d %02d:%02d:%02d +0000",
-            ptime->day % 32, short_months[(ptime->month - 1) % 12],
-            ptime->year, ptime->hour % 24, ptime->minute % 60,
-            ptime->second % 61);
-        png_memcpy(png_ptr->time_buffer, near_time_buf,
-            29*sizeof(char));
-     }
+   {
+      char near_time_buf[29];
+      sprintf(near_time_buf, "%d %s %d %02d:%02d:%02d +0000",
+          ptime->day % 32, short_months[(ptime->month - 1) % 12],
+          ptime->year, ptime->hour % 24, ptime->minute % 60,
+          ptime->second % 61);
+      png_memcpy(png_ptr->time_buffer, near_time_buf,
+          29*sizeof(char));
+   }
 #else
    sprintf(png_ptr->time_buffer, "%d %s %d %02d:%02d:%02d +0000",
        ptime->day % 32, short_months[(ptime->month - 1) % 12],
@@ -616,7 +610,6 @@
        ptime->second % 61);
 #endif
 #endif /* _WIN32_WCE */
-   }
    return ((png_charp)png_ptr->time_buffer);
 }
 #endif /* PNG_TIME_RFC1123_SUPPORTED */
@@ -634,7 +627,7 @@
 png_get_copyright(png_structp png_ptr)
 {
    if (png_ptr != NULL || png_ptr == NULL)  /* silence compiler warning */
-   return ((png_charp) "\n libpng version 1.0.11beta3 - April 15, 2001\n\
+   return ((png_charp) "\n libpng version 1.0.11rc1 - April 20, 2001\n\
    Copyright (c) 1998-2001 Glenn Randers-Pehrson\n\
    Copyright (c) 1996, 1997 Andreas Dilger\n\
    Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n");
@@ -652,8 +645,8 @@
 {
    /* Version of *.c files used when building libpng */
    if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
-      return((png_charp) "1.0.11beta3");
-   return((png_charp) "1.0.11beta3");
+      return((png_charp) "1.0.11rc1");
+   return((png_charp) "1.0.11rc1");
 }
 
 png_charp PNGAPI
diff --git a/png.h b/png.h
index b78bac5..8e85083 100644
--- a/png.h
+++ b/png.h
@@ -1,7 +1,7 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.0.11beta3 - April 15, 2001
+ * libpng version 1.0.11rc1 - April 20, 2001
  * Copyright (c) 1998-2001 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.)
@@ -9,7 +9,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.0.11beta3 - April 15, 2001: Glenn
+ *  libpng versions 0.97, January 1998, through 1.0.11rc1 - April 20, 2001: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -68,6 +68,7 @@
  *    1.0.10rc1                1    10010  2.1.0.10rc1
  *    1.0.10                   1    10010  2.1.0.10
  *    1.0.11beta1-3            1    10011  2.1.0.11beta1-3
+ *    1.0.11rc1                1    10011  2.1.0.11rc1
  *
  *    Henceforth the source version will match the shared-library major
  *    and minor numbers; the shared-library major version number will be
@@ -97,7 +98,7 @@
  * If you modify libpng you may insert additional notices immediately following
  * this sentence.
  *
- * libpng versions 1.0.7, July 1, 2000, through  1.0.11beta3, April 15, 2001, are
+ * libpng versions 1.0.7, July 1, 2000, through  1.0.11rc1, April 20, 2001, are
  * Copyright (c) 2000, 2001 Glenn Randers-Pehrson, and are
  * distributed according to the same disclaimer and license as libpng-1.0.6
  * with the following individuals added to the list of Contributing Authors
@@ -202,13 +203,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    April 15, 2001
+ *    April 20, 2001
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
  *
  *    This is your unofficial assurance that libpng from version 0.71 and
- *    upward through 1.0.11beta3 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.0.11rc1 are Y2K compliant.  It is my belief that earlier
  *    versions were also Y2K compliant.
  *
  *    Libpng only has three year fields.  One is a 2-byte unsigned integer
@@ -264,7 +265,7 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.0.11beta3"
+#define PNG_LIBPNG_VER_STRING "1.0.11rc1"
 
 #define PNG_LIBPNG_VER_SONUM   2
 #define PNG_LIBPNG_VER_DLLNUM  %DLLNUM%
@@ -276,7 +277,7 @@
 /* This should match the numeric part of the final component of
  * PNG_LIBPNG_VER_STRING, omitting any leading zero: */
 
-#define PNG_LIBPNG_VER_BUILD  3
+#define PNG_LIBPNG_VER_BUILD  1
 
 #define PNG_LIBPNG_BUILD_ALPHA    1
 #define PNG_LIBPNG_BUILD_BETA     2
@@ -284,7 +285,7 @@
 #define PNG_LIBPNG_BUILD_STABLE   4
 #define PNG_LIBPNG_BUILD_TYPEMASK 7
 #define PNG_LIBPNG_BUILD_PATCH    8 /* Can be OR'ed with STABLE only */
-#define PNG_LIBPNG_BUILD_TYPE 2
+#define PNG_LIBPNG_BUILD_TYPE 3
 
 /* Careful here.  At one time, Guy wanted to use 082, but that would be octal.
  * We must not include leading zeros.
@@ -1185,9 +1186,9 @@
 
 
 /* This prevents a compiler error in png_get_copyright() in png.c if png.c
-and png.h are both at * version 1.0.11beta3
+and png.h are both at * version 1.0.11rc1
  */
-typedef png_structp version_1_0_11beta3;
+typedef png_structp version_1_0_11rc1;
 
 typedef png_struct FAR * FAR * png_structpp;
 
@@ -2235,7 +2236,7 @@
 /* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
 
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.0.11beta3 - April 15, 2001 (header)\n"
+   " libpng version 1.0.11rc1 - April 20, 2001 (header)\n"
 
 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
 /* With these routines we avoid an integer divide, which will be slower on
diff --git a/pngasmrd.h b/pngasmrd.h
index aab6160..0a93de4 100644
--- a/pngasmrd.h
+++ b/pngasmrd.h
@@ -1,6 +1,6 @@
 /* pngasmrd.h - assembler version of utilities to read a PNG file
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 2001 Glenn Randers-Pehrson
  *
diff --git a/pngconf.h b/pngconf.h
index c54744b..59a7dc0 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,6 +1,6 @@
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngerror.c b/pngerror.c
index 9e76975..76528b6 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -61,11 +61,12 @@
  */
 #define isnonalpha(c) ((c) < 41 || (c) > 122 || ((c) > 90 && (c) < 97))
 static PNG_CONST char png_digit[16] = {
-   '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
-};
+   '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E',
+   'F' };
 
 static void /* PRIVATE */
-png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp message)
+png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp
+   message)
 {
    int iout = 0, iin = 0;
 
diff --git a/pnggccrd.c b/pnggccrd.c
index ac2b8bb..8648689 100644
--- a/pnggccrd.c
+++ b/pnggccrd.c
@@ -6,7 +6,7 @@
  *     and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
  *     for Intel's performance analysis of the MMX vs. non-MMX code.
  *
- * libpng version 1.0.11beta3 - April 15, 2001
+ * libpng version 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
diff --git a/pngget.c b/pngget.c
index e05b2af..dd7426a 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -137,7 +137,7 @@
 #if defined(PNG_pHYs_SUPPORTED)
    if (info_ptr->valid & PNG_INFO_pHYs)
    {
-       png_debug1(1, "in %s retrieval function\n", "png_get_y_pixels_per_meter");
+      png_debug1(1, "in %s retrieval function\n", "png_get_y_pixels_per_meter");
       if(info_ptr->phys_unit_type != PNG_RESOLUTION_METER)
           return (0);
       else return (info_ptr->y_pixels_per_unit);
diff --git a/pngmem.c b/pngmem.c
index 3ba7c6a..e7fdf8b 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -119,7 +119,12 @@
 
 #ifdef PNG_USER_MEM_SUPPORTED
    if(png_ptr->malloc_fn != NULL)
-       return ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, size));
+   {
+       ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, size));
+       if (ret == NULL)
+          png_error(png_ptr, "Out of memory!");
+       return (ret);
+   }
    else
        return png_malloc_default(png_ptr, size);
 }
@@ -373,15 +378,18 @@
 png_voidp PNGAPI
 png_malloc(png_structp png_ptr, png_uint_32 size)
 {
-#ifndef PNG_USER_MEM_SUPPORTED
    png_voidp ret;
-#endif
    if (png_ptr == NULL || size == 0)
       return ((png_voidp)NULL);
 
 #ifdef PNG_USER_MEM_SUPPORTED
    if(png_ptr->malloc_fn != NULL)
-       return ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, size));
+   {
+       ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, size));
+       if (ret == NULL)
+          png_error(png_ptr, "Out of Memory!");
+       return (ret);
+   }
    else
        return (png_malloc_default(png_ptr, size));
 }
@@ -407,9 +415,7 @@
 #endif
 
    if (ret == NULL)
-   {
       png_error(png_ptr, "Out of Memory");
-   }
 
    return (ret);
 }
diff --git a/pngpread.c b/pngpread.c
index 816abbe..2c008a2 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -585,18 +585,9 @@
       old_buffer = png_ptr->save_buffer;
       png_ptr->save_buffer = (png_bytep)png_malloc(png_ptr,
          (png_uint_32)new_max);
-      if (png_ptr->save_buffer == (png_bytep)NULL)
-      {
-        png_warning(png_ptr, "Malloc of save buffer failed");
-        png_ptr->save_buffer=old_buffer;
-        png_ptr->current_buffer_size = 0;
-      }
-      else
-      {
-        png_memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size);
-        png_free(png_ptr, old_buffer);
-        png_ptr->save_buffer_max = new_max;
-      }
+      png_memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size);
+      png_free(png_ptr, old_buffer);
+      png_ptr->save_buffer_max = new_max;
    }
    if (png_ptr->current_buffer_size)
    {
@@ -1004,7 +995,8 @@
 
 #if defined(PNG_READ_tEXt_SUPPORTED)
 void /* PRIVATE */
-png_push_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
+png_push_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
+   length)
 {
    if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
       {
@@ -1016,7 +1008,7 @@
 #ifdef PNG_MAX_MALLOC_64K
    png_ptr->skip_length = 0;  /* This may not be necessary */
 
-   if (length > (png_uint_32)65535L) /* Can't hold the entire string in memory */
+   if (length > (png_uint_32)65535L) /* Can't hold entire string in memory */
    {
       png_warning(png_ptr, "tEXt chunk too large to fit in memory");
       png_ptr->skip_length = length - (png_uint_32)65535L;
@@ -1026,12 +1018,6 @@
 
    png_ptr->current_text = (png_charp)png_malloc(png_ptr,
          (png_uint_32)(length+1));
-   if (png_ptr->current_text == (png_charp)NULL)
-   {
-       png_warning (png_ptr, "malloc of current text failed");
-       png_ptr->skip_length=length;
-       return;
-   }
    png_ptr->current_text[length] = '\0';
    png_ptr->current_text_ptr = png_ptr->current_text;
    png_ptr->current_text_size = (png_size_t)length;
@@ -1083,11 +1069,6 @@
          text++;
 
       text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text));
-      if (text_ptr == (png_textp)NULL)
-        {
-           png_warning (png_ptr, "malloc of text buffer failed");
-           return;
-        }
       text_ptr->compression = PNG_TEXT_COMPRESSION_NONE;
       text_ptr->key = key;
 #ifdef PNG_iTXt_SUPPORTED
@@ -1106,7 +1087,8 @@
 
 #if defined(PNG_READ_zTXt_SUPPORTED)
 void /* PRIVATE */
-png_push_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
+png_push_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
+   length)
 {
    if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
       {
@@ -1130,12 +1112,6 @@
 
    png_ptr->current_text = (png_charp)png_malloc(png_ptr,
        (png_uint_32)(length+1));
-   if (png_ptr->current_text == (png_charp)NULL)
-   {
-      png_warning (png_ptr, "malloc of zTXt buffer failed");
-      png_push_crc_skip(png_ptr, length);
-      return;
-   }
    png_ptr->current_text[length] = '\0';
    png_ptr->current_text_ptr = png_ptr->current_text;
    png_ptr->current_text_size = (png_size_t)length;
@@ -1224,19 +1200,14 @@
             if (text == NULL)
             {
                text = (png_charp)png_malloc(png_ptr,
-                  (png_uint_32)(png_ptr->zbuf_size - png_ptr->zstream.avail_out +
-                     key_size + 1));
-               if (text == (png_charp)NULL)
-                 png_warning(png_ptr, "Malloc of text block failed");
-               else
-               {
-                 png_memcpy(text + key_size, png_ptr->zbuf,
-                    png_ptr->zbuf_size - png_ptr->zstream.avail_out);
-                 png_memcpy(text, key, key_size);
-                 text_size = key_size + png_ptr->zbuf_size -
-                    png_ptr->zstream.avail_out;
-                 *(text + text_size) = '\0';
-               }
+                  (png_uint_32)(png_ptr->zbuf_size - png_ptr->zstream.avail_out
+                     + key_size + 1));
+               png_memcpy(text + key_size, png_ptr->zbuf,
+                  png_ptr->zbuf_size - png_ptr->zstream.avail_out);
+               png_memcpy(text, key, key_size);
+               text_size = key_size + png_ptr->zbuf_size -
+                  png_ptr->zstream.avail_out;
+               *(text + text_size) = '\0';
             }
             else
             {
@@ -1246,17 +1217,12 @@
                text = (png_charp)png_malloc(png_ptr, text_size +
                   (png_uint_32)(png_ptr->zbuf_size - png_ptr->zstream.avail_out
                    + 1));
-               if (text != (png_charp)NULL)
-                 png_warning(png_ptr, "Malloc of new text block failed");
-               else
-               {
-                 png_memcpy(text, tmp, text_size);
-                 png_free(png_ptr, tmp);
-                 png_memcpy(text + text_size, png_ptr->zbuf,
-                    png_ptr->zbuf_size - png_ptr->zstream.avail_out);
-                 text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out;
-                 *(text + text_size) = '\0';
-               }
+               png_memcpy(text, tmp, text_size);
+               png_free(png_ptr, tmp);
+               png_memcpy(text + text_size, png_ptr->zbuf,
+                  png_ptr->zbuf_size - png_ptr->zstream.avail_out);
+               text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out;
+               *(text + text_size) = '\0';
             }
             if (ret != Z_STREAM_END)
             {
@@ -1288,30 +1254,26 @@
       text += key_size;
 
       text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text));
-      if (text_ptr == (png_textp)NULL)
-         png_warning (png_ptr, "Malloc of iTXt failed");
-      else
-      {
-        text_ptr->compression = PNG_TEXT_COMPRESSION_zTXt;
-        text_ptr->key = key;
+      text_ptr->compression = PNG_TEXT_COMPRESSION_zTXt;
+      text_ptr->key = key;
 #ifdef PNG_iTXt_SUPPORTED
-        text_ptr->lang = (char *)NULL;
-        text_ptr->lang_key = (char *)NULL;
+      text_ptr->lang = (char *)NULL;
+      text_ptr->lang_key = (char *)NULL;
 #endif
-        text_ptr->text = text;
+      text_ptr->text = text;
 
-        png_set_text(png_ptr, info_ptr, text_ptr, 1);
+      png_set_text(png_ptr, info_ptr, text_ptr, 1);
 
-        png_free(png_ptr, text_ptr);
-      }
       png_free(png_ptr, key);
+      png_free(png_ptr, text_ptr);
    }
 }
 #endif
 
 #if defined(PNG_READ_iTXt_SUPPORTED)
 void /* PRIVATE */
-png_push_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
+png_push_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32
+   length)
 {
    if (!(png_ptr->mode & PNG_HAVE_IHDR) || (png_ptr->mode & PNG_HAVE_IEND))
       {
@@ -1323,7 +1285,7 @@
 #ifdef PNG_MAX_MALLOC_64K
    png_ptr->skip_length = 0;  /* This may not be necessary */
 
-   if (length > (png_uint_32)65535L) /* Can't hold the entire string in memory */
+   if (length > (png_uint_32)65535L) /* Can't hold entire string in memory */
    {
       png_warning(png_ptr, "iTXt chunk too large to fit in memory");
       png_ptr->skip_length = length - (png_uint_32)65535L;
@@ -1333,16 +1295,11 @@
 
    png_ptr->current_text = (png_charp)png_malloc(png_ptr,
          (png_uint_32)(length+1));
-   if (png_ptr->current_text == (png_charp)NULL)
-        png_warning (png_ptr, "malloc of iTXt buffer failed");
-   else
-     {
-       png_ptr->current_text[length] = '\0';
-       png_ptr->current_text_ptr = png_ptr->current_text;
-       png_ptr->current_text_size = (png_size_t)length;
-       png_ptr->current_text_left = (png_size_t)length;
-       png_ptr->process_mode = PNG_READ_iTXt_MODE;
-     }
+   png_ptr->current_text[length] = '\0';
+   png_ptr->current_text_ptr = png_ptr->current_text;
+   png_ptr->current_text_size = (png_size_t)length;
+   png_ptr->current_text_left = (png_size_t)length;
+   png_ptr->process_mode = PNG_READ_iTXt_MODE;
 }
 
 void /* PRIVATE */
@@ -1406,10 +1363,6 @@
          text++;
 
       text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text));
-      if(text_ptr == (png_textp)NULL)
-         png_warning (png_ptr, "Malloc of iTXt pointer failed");
-      else
-      {
       text_ptr->compression = comp_flag + 2;
       text_ptr->key = key;
       text_ptr->lang = lang;
@@ -1421,7 +1374,6 @@
       png_set_text(png_ptr, info_ptr, text_ptr, 1);
 
       png_free(png_ptr, text_ptr);
-      }
    }
 }
 #endif
@@ -1431,7 +1383,8 @@
  * name or a critical chunk), the chunk is (currently) silently ignored.
  */
 void /* PRIVATE */
-png_push_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
+png_push_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32
+   length)
 {
    png_uint_32 skip=0;
    png_check_chunk_name(png_ptr, png_ptr->chunk_name);
@@ -1442,7 +1395,7 @@
       if(png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
            HANDLE_CHUNK_ALWAYS
 #if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
-           && png_ptr->read_user_chunk_fn == (png_user_chunk_ptr)NULL
+           && png_ptr->read_user_chunk_fn == NULL
 #endif
          )
 #endif
@@ -1469,30 +1422,25 @@
 
        png_strcpy((png_charp)chunk.name, (png_charp)png_ptr->chunk_name);
        chunk.data = (png_bytep)png_malloc(png_ptr, length);
-       if (chunk.data == (png_bytep)NULL)
-          png_warning (png_ptr, "Malloc of unknown chunk data failed");
-       else
-       {
-         png_crc_read(png_ptr, chunk.data, length);
-         chunk.size = length;
+       png_crc_read(png_ptr, chunk.data, length);
+       chunk.size = length;
 #if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
-         if(png_ptr->read_user_chunk_fn != (png_user_chunk_ptr)NULL)
-         {
-            /* callback to user unknown chunk handler */
-            if ((*(png_ptr->read_user_chunk_fn)) (png_ptr, &chunk) <= 0)
-            {
-               if (!(png_ptr->chunk_name[0] & 0x20))
-                  if(png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
-                       HANDLE_CHUNK_ALWAYS)
-                     png_chunk_error(png_ptr, "unknown critical chunk");
-            }
-               png_set_unknown_chunks(png_ptr, info_ptr, &chunk, 1);
-         }
-         else
-#endif
-            png_set_unknown_chunks(png_ptr, info_ptr, &chunk, 1);
-         png_free(png_ptr, chunk.data);
+       if(png_ptr->read_user_chunk_fn != NULL)
+       {
+          /* callback to user unknown chunk handler */
+          if ((*(png_ptr->read_user_chunk_fn)) (png_ptr, &chunk) <= 0)
+          {
+             if (!(png_ptr->chunk_name[0] & 0x20))
+                if(png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
+                     HANDLE_CHUNK_ALWAYS)
+                   png_chunk_error(png_ptr, "unknown critical chunk");
+          }
+             png_set_unknown_chunks(png_ptr, info_ptr, &chunk, 1);
        }
+       else
+#endif
+          png_set_unknown_chunks(png_ptr, info_ptr, &chunk, 1);
+       png_free(png_ptr, chunk.data);
    }
    else
 #endif
diff --git a/pngread.c b/pngread.c
index 28e66d4..d77ecda 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -115,8 +115,6 @@
    png_ptr->zbuf_size = PNG_ZBUF_SIZE;
    png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
      (png_uint_32)png_ptr->zbuf_size);
-   if (png_ptr->zbuf == (png_bytep)NULL)
-      png_error(png_ptr, "Could not allocate zbuf");
    png_ptr->zstream.zalloc = png_zalloc;
    png_ptr->zstream.zfree = png_zfree;
    png_ptr->zstream.opaque = (voidpf)png_ptr;
@@ -199,8 +197,6 @@
    png_ptr->zbuf_size = PNG_ZBUF_SIZE;
    png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
      (png_uint_32)png_ptr->zbuf_size);
-   if (png_ptr->zbuf == (png_bytep)NULL)
-      png_error(png_ptr, "Could not allocate zbuf");
    png_ptr->zstream.zalloc = png_zalloc;
    png_ptr->zstream.zfree = png_zfree;
    png_ptr->zstream.opaque = (voidpf)png_ptr;
@@ -719,7 +715,7 @@
  * not called png_set_interlace_handling(), the display_row buffer will
  * be ignored, so pass NULL to it.
  *
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.11beta3
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.11rc1
  */
 
 void PNGAPI
@@ -768,7 +764,7 @@
  * only call this function once.  If you desire to have an image for
  * each pass of a interlaced image, use png_read_rows() instead.
  *
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.11beta3
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.11rc1
  */
 void PNGAPI
 png_read_image(png_structp png_ptr, png_bytepp image)
@@ -1322,8 +1318,6 @@
    {
       info_ptr->row_pointers = (png_bytepp)png_malloc(png_ptr,
          info_ptr->height * sizeof(png_bytep));
-      if (info_ptr->row_pointers)
-         png_error(png_ptr, "png_read_png could not allocate row pointers");
 #ifdef PNG_FREE_ME_SUPPORTED
       info_ptr->free_me |= PNG_FREE_ROWS;
 #endif
@@ -1331,15 +1325,6 @@
       {
          info_ptr->row_pointers[row] = (png_bytep)png_malloc(png_ptr,
             png_get_rowbytes(png_ptr, info_ptr));
-         if (info_ptr->row_pointers)
-         {
-            int allocated_row;
-            for (allocated_row=0; allocated_row < row; allocated_row++)
-               png_free(png_ptr, info_ptr->row_pointers[allocated_row]);
-            if (info_ptr->free_me & !(PNG_FREE_ROWS))
-               png_free (png_ptr, info_ptr->row_pointers);
-            png_error(png_ptr, "png_read_png could not allocate row pointer");
-         }
       }
    }
 
@@ -1349,7 +1334,7 @@
    /* read rest of file, and get additional chunks in info_ptr - REQUIRED */
    png_read_end(png_ptr, info_ptr);
 
-   if(transforms == 0 || params == (voidp)NULL)
+   if(transforms == 0 || params == NULL)
       /* quiet compiler warnings */ return;
 
 }
diff --git a/pngrio.c b/pngrio.c
index d6d1d70..5fbc668 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
 
 /* pngrio.c - functions for data input
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrtran.c b/pngrtran.c
index 9ab152e..6780026 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,7 +1,7 @@
 
 /* pngrtran.c - transforms the data in a row for PNG readers
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -155,11 +155,6 @@
 
       png_ptr->dither_index = (png_bytep)png_malloc(png_ptr,
          (png_uint_32)(num_palette * sizeof (png_byte)));
-      if (png_ptr->dither_index == (png_bytep)NULL)
-      {
-         png_warning (png_ptr, "Malloc of dither index failed");
-         return;
-      }
       for (i = 0; i < num_palette; i++)
          png_ptr->dither_index[i] = (png_byte)i;
    }
@@ -177,12 +172,6 @@
          /* initialize an array to sort colors */
          sort = (png_bytep)png_malloc(png_ptr, (png_uint_32)(num_palette
             * sizeof (png_byte)));
-         if (sort == (png_bytep)NULL)
-         {
-            png_warning (png_ptr, "Malloc of sort array for dither failed");
-            png_free (png_ptr, png_ptr->dither_index);
-            return;
-         }
 
          /* initialize the sort array */
          for (i = 0; i < num_palette; i++)
@@ -313,14 +302,6 @@
             (png_uint_32)(num_palette * sizeof (png_byte)));
          palette_to_index = (png_bytep)png_malloc(png_ptr,
             (png_uint_32)(num_palette * sizeof (png_byte)));
-         if (index_to_palette == (png_bytep)NULL || palette_to_index ==
-            (png_bytep)NULL)
-         {
-            png_warning (png_ptr, "Malloc of index array for dither failed");
-            png_free (png_ptr, index_to_palette);
-            png_free (png_ptr, png_ptr->dither_index);
-            return;
-         }
 
          /* initialize the sort array */
          for (i = 0; i < num_palette; i++)
@@ -331,14 +312,6 @@
 
          hash = (png_dsortpp)png_malloc(png_ptr, (png_uint_32)(769 *
             sizeof (png_dsortp)));
-         if (hash == (png_dsortpp)NULL)
-         {
-            png_warning (png_ptr, "Malloc of hash array for dither failed");
-            png_free (png_ptr, palette_to_index);
-            png_free (png_ptr, index_to_palette);
-            png_free (png_ptr, png_ptr->dither_index);
-            return;
-         }
          for (i = 0; i < 769; i++)
             hash[i] = NULL;
 /*         png_memset(hash, 0, 769 * sizeof (png_dsortp)); */
@@ -373,13 +346,10 @@
 
                      t = (png_dsortp)png_malloc(png_ptr, (png_uint_32)(sizeof
                          (png_dsort)));
-                     if (t != (png_dsortp)NULL)
-                     {
                      t->next = hash[d];
                      t->left = (png_byte)i;
                      t->right = (png_byte)j;
                      hash[d] = t;
-                     }
                   }
                }
             }
@@ -486,25 +456,16 @@
 
       png_ptr->palette_lookup = (png_bytep )png_malloc(png_ptr,
          (png_uint_32)(num_entries * sizeof (png_byte)));
-      if (png_ptr->palette_lookup == (png_bytep)NULL)
-      {
-         png_warning(png_ptr, "Malloc of palette_lookup for dither failed");
-      }
-      else
-        png_memset(png_ptr->palette_lookup, 0, num_entries * sizeof (png_byte));
+
+      png_memset(png_ptr->palette_lookup, 0, num_entries * sizeof (png_byte));
 
       distance = (png_bytep)png_malloc(png_ptr, (png_uint_32)(num_entries *
          sizeof(png_byte)));
-      if (distance == (png_bytep)NULL)
-      {
-         png_warning(png_ptr, "Malloc of distance array for dither failed");
-      }
-      else
-      {
-        png_memset(distance, 0xff, num_entries * sizeof(png_byte));
 
-        for (i = 0; i < num_palette; i++)
-        {
+      png_memset(distance, 0xff, num_entries * sizeof(png_byte));
+
+      for (i = 0; i < num_palette; i++)
+      {
          int ir, ig, ib;
          int r = (palette[i].red >> (8 - PNG_DITHER_RED_BITS));
          int g = (palette[i].green >> (8 - PNG_DITHER_GREEN_BITS));
@@ -535,12 +496,11 @@
                      png_ptr->palette_lookup[d_index] = (png_byte)i;
                   }
                }
-             }
-           }
-        }
+            }
+         }
+      }
 
       png_free(png_ptr, distance);
-      }
    }
 }
 #endif
@@ -3898,11 +3858,6 @@
 
       png_ptr->gamma_table = (png_bytep)png_malloc(png_ptr,
          (png_uint_32)256);
-      if (png_ptr->gamma_table == (png_bytep)NULL)
-      {
-         png_warning (png_ptr, "Malloc of gamma table failed");
-         return;
-      }
 
       for (i = 0; i < 256; i++)
       {
@@ -3919,11 +3874,6 @@
 
          png_ptr->gamma_to_1 = (png_bytep)png_malloc(png_ptr,
             (png_uint_32)256);
-         if (png_ptr->gamma_to_1 == (png_bytep)NULL)
-         {
-         png_warning (png_ptr, "Malloc of gamma_to_1 table failed");
-         return;
-         }
 
          for (i = 0; i < 256; i++)
          {
@@ -3934,11 +3884,6 @@
 
          png_ptr->gamma_from_1 = (png_bytep)png_malloc(png_ptr,
             (png_uint_32)256);
-         if (png_ptr->gamma_from_1 == (png_bytep)NULL)
-         {
-         png_warning (png_ptr, "Malloc of gamma_from_1 table failed");
-         return;
-         }
 
          if(png_ptr->screen_gamma > 0.000001)
             g = 1.0 / png_ptr->screen_gamma;
@@ -4001,11 +3946,6 @@
 
       png_ptr->gamma_16_table = (png_uint_16pp)png_malloc(png_ptr,
          (png_uint_32)(num * sizeof (png_uint_16p)));
-      if (png_ptr->gamma_16_table == (png_uint_16pp)NULL)
-      {
-         png_warning (png_ptr, "Malloc of gamma_16 table failed");
-         return;
-      }
 
       if (png_ptr->transformations & (PNG_16_TO_8 | PNG_BACKGROUND))
       {
@@ -4016,11 +3956,6 @@
          {
             png_ptr->gamma_16_table[i] = (png_uint_16p)png_malloc(png_ptr,
                (png_uint_32)(256 * sizeof (png_uint_16)));
-           if (png_ptr->gamma_16_table[i] == (png_uint_16p)NULL)
-           {
-              png_warning (png_ptr, "Malloc of gamma_16 table entry failed");
-              return;
-           }
          }
 
          g = 1.0 / g;
@@ -4051,11 +3986,6 @@
          {
             png_ptr->gamma_16_table[i] = (png_uint_16p)png_malloc(png_ptr,
                (png_uint_32)(256 * sizeof (png_uint_16)));
-            if (png_ptr->gamma_16_table[i] == (png_uint_16p)NULL)
-            {
-              png_warning (png_ptr, "Malloc of gamma_16 table entry failed");
-              return;
-            }
 
             ig = (((png_uint_32)i * (png_uint_32)png_gamma_shift[shift]) >> 4);
             for (j = 0; j < 256; j++)
@@ -4076,22 +4006,11 @@
 
          png_ptr->gamma_16_to_1 = (png_uint_16pp)png_malloc(png_ptr,
             (png_uint_32)(num * sizeof (png_uint_16p )));
-         if (png_ptr->gamma_16_to_1 == (png_uint_16pp)NULL)
-         {
-            png_warning (png_ptr, "Malloc of gamma_16_to_1 table failed");
-            return;
-         }
 
          for (i = 0; i < num; i++)
          {
             png_ptr->gamma_16_to_1[i] = (png_uint_16p)png_malloc(png_ptr,
                (png_uint_32)(256 * sizeof (png_uint_16)));
-            if (png_ptr->gamma_16_to_1[i] == (png_uint_16p)NULL)
-            {
-               png_warning (png_ptr,
-                 "Malloc of gamma_16_to_1 table entry failed");
-               return;
-            }
 
             ig = (((png_uint_32)i *
                (png_uint_32)png_gamma_shift[shift]) >> 4);
@@ -4110,23 +4029,11 @@
 
          png_ptr->gamma_16_from_1 = (png_uint_16pp)png_malloc(png_ptr,
             (png_uint_32)(num * sizeof (png_uint_16p)));
-         if (png_ptr->gamma_16_from_1 == (png_uint_16pp)NULL)
-         {
-            png_warning (png_ptr,
-              "Malloc of gamma_16_from_1 table failed");
-            return;
-         }
 
          for (i = 0; i < num; i++)
          {
             png_ptr->gamma_16_from_1[i] = (png_uint_16p)png_malloc(png_ptr,
                (png_uint_32)(256 * sizeof (png_uint_16)));
-            if (png_ptr->gamma_16_from_1[i] == (png_uint_16p)NULL)
-            {
-               png_warning (png_ptr,
-                 "Malloc of gamma_16_from_1 table failed");
-               return;
-            }
 
             ig = (((png_uint_32)i *
                (png_uint_32)png_gamma_shift[shift]) >> 4);
diff --git a/pngrutil.c b/pngrutil.c
index 522af2a..8ae86ac 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -201,19 +201,15 @@
             {
                text_size = prefix_size + sizeof(msg) + 1;
                text = (png_charp)png_malloc(png_ptr, text_size);
-               if (text != NULL)
-                 png_memcpy(text, chunkdata, prefix_size);
+               png_memcpy(text, chunkdata, prefix_size);
             }
 
-            if (text != NULL)
-            {
-               text[text_size - 1] = 0x00;
+            text[text_size - 1] = 0x00;
 
-               /* Copy what we can of the error message into the text chunk */
-               text_size = (png_size_t)(chunklength - (text - chunkdata) - 1);
-               text_size = sizeof(msg) > text_size ? text_size : sizeof(msg);
-               png_memcpy(text + prefix_size, msg, text_size + 1);
-            }
+            /* Copy what we can of the error message into the text chunk */
+            text_size = (png_size_t)(chunklength - (text - chunkdata) - 1);
+            text_size = sizeof(msg) > text_size ? text_size : sizeof(msg);
+            png_memcpy(text + prefix_size, msg, text_size + 1);
             break;
          }
          if (!png_ptr->zstream.avail_out || ret == Z_STREAM_END)
@@ -223,13 +219,10 @@
                text_size = prefix_size +
                    png_ptr->zbuf_size - png_ptr->zstream.avail_out;
                text = (png_charp)png_malloc(png_ptr, text_size + 1);
-               if (text != NULL)
-               {
-                 png_memcpy(text + prefix_size, png_ptr->zbuf,
-                          text_size - prefix_size);
-                 png_memcpy(text, chunkdata, prefix_size);
-                 *(text + text_size) = 0x00;
-               }
+               png_memcpy(text + prefix_size, png_ptr->zbuf,
+                    text_size - prefix_size);
+               png_memcpy(text, chunkdata, prefix_size);
+               *(text + text_size) = 0x00;
             }
             else
             {
@@ -238,20 +231,12 @@
                tmp = text;
                text = (png_charp)png_malloc(png_ptr, (png_uint_32)(text_size +
                   png_ptr->zbuf_size - png_ptr->zstream.avail_out + 1));
-               if (text != NULL)
-               {
                png_memcpy(text, tmp, text_size);
                png_free(png_ptr, tmp);
                png_memcpy(text + text_size, png_ptr->zbuf,
                   (png_ptr->zbuf_size - png_ptr->zstream.avail_out));
                text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out;
                *(text + text_size) = 0x00;
-               }
-               else
-               {
-                  png_warning (png_ptr, "Could not malloc text buffer");
-                  text=tmp;
-               }
             }
             if (ret == Z_STREAM_END)
                break;
@@ -285,13 +270,9 @@
          if (text ==  NULL)
          {
             text = (png_charp)png_malloc(png_ptr, text_size+1);
-            if (text !=  NULL)
-               png_memcpy(text, chunkdata, prefix_size);
-            else
-               png_warning(png_ptr, "Could not malloc text chunkdata");
+            png_memcpy(text, chunkdata, prefix_size);
          }
-         if (text !=  NULL)
-            *(text + text_size) = 0x00;
+         *(text + text_size) = 0x00;
       }
 
       inflateReset(&png_ptr->zstream);
@@ -1002,14 +983,7 @@
 
    chunkdata = (png_charp)png_malloc(png_ptr, length + 1);
    slength = (png_size_t)length;
-   if (chunkdata != (png_charp)NULL)
-      png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
-   else
-   {
-      png_warning(png_ptr, "Could not allocate memory for iCCP chunk");
-      png_crc_finish(png_ptr, slength);
-      return;
-   }
+   png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
 
    if (png_crc_finish(png_ptr, skip))
    {
@@ -1105,16 +1079,8 @@
 #endif
 
    chunkdata = (png_bytep)png_malloc(png_ptr, length + 1);
-   if (chunkdata != (png_bytep)NULL)
-   {
-      slength = (png_size_t)length;
-      png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
-   }
-   else
-   {
-      png_warning(png_ptr, "Could not allocate memory for sPLT chunk");
-      skip = (png_size_t)length;
-   }
+   slength = (png_size_t)length;
+   png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
 
    if (png_crc_finish(png_ptr, skip))
    {
@@ -1151,12 +1117,6 @@
    new_palette.nentries = data_length / entry_size;
    new_palette.entries = (png_sPLT_entryp)png_malloc(
        png_ptr, new_palette.nentries * sizeof(png_sPLT_entry));
-   if (new_palette.entries == (png_sPLT_entryp)NULL)
-   {
-       png_free(png_ptr, chunkdata);
-       png_warning (png_ptr, "Could not allocate sPLT entries");
-       return;
-   }
 
 #ifndef PNG_NO_POINTER_INDEXING
    for (i = 0; i < new_palette.nentries; i++)
@@ -1566,12 +1526,6 @@
    png_debug1(2, "Allocating and reading pCAL chunk data (%lu bytes)\n",
       length + 1);
    purpose = (png_charp)png_malloc(png_ptr, length + 1);
-   if (purpose == (png_charp)NULL)
-   {
-     png_warning (png_ptr, "Could not allocate memory for pCAL purpose");
-     png_crc_finish(png_ptr, length);
-     return;
-   }
    slength = (png_size_t)length;
    png_crc_read(png_ptr, (png_bytep)purpose, slength);
 
@@ -1628,11 +1582,6 @@
    png_debug(3, "Allocating pCAL parameters array\n");
    params = (png_charpp)png_malloc(png_ptr, (png_uint_32)(nparams
       *sizeof(png_charp))) ;
-   if (params == (png_charpp)NULL)
-   {
-      png_warning (png_ptr, "Could not allocate pCAL parameters array");
-      nparams=0;
-   }
 
    /* Get pointers to the start of each parameter string. */
    for (i = 0; i < (int)nparams; i++)
@@ -1697,12 +1646,6 @@
    png_debug1(2, "Allocating and reading sCAL chunk data (%lu bytes)\n",
       length + 1);
    buffer = (png_charp)png_malloc(png_ptr, length + 1);
-   if (buffer == (png_charp)NULL)
-   {
-     png_warning (png_ptr, "Could not allocate memory for sCAL buffer");
-     png_crc_finish(png_ptr, length);
-     return;
-   }
    slength = (png_size_t)length;
    png_crc_read(png_ptr, (png_bytep)buffer, slength);
 
@@ -1726,8 +1669,7 @@
 #else
 #ifdef PNG_FIXED_POINT_SUPPORTED
    swidth = (png_charp)png_malloc(png_ptr, png_strlen(ep) + 1);
-   if (swidth != (png_charp)NULL)
-     png_memcpy(swidth, ep, (png_size_t)png_strlen(ep));
+   png_memcpy(swidth, ep, (png_size_t)png_strlen(ep));
 #endif
 #endif
 
@@ -1745,8 +1687,7 @@
 #else
 #ifdef PNG_FIXED_POINT_SUPPORTED
    sheight = (png_charp)png_malloc(png_ptr, png_strlen(ep) + 1);
-   if (sheight != (png_charp)NULL)
-      png_memcpy(sheight, ep, (png_size_t)png_strlen(ep));
+   png_memcpy(sheight, ep, (png_size_t)png_strlen(ep));
 #endif
 #endif
 
@@ -1855,14 +1796,7 @@
 
    key = (png_charp)png_malloc(png_ptr, length + 1);
    slength = (png_size_t)length;
-   if (key == (png_charp)NULL)
-   {
-      png_warning (png_ptr, "Could not allocate memory for tEXt chunk");
-      png_crc_finish(png_ptr, slength);
-      return;
-   }
-   else
-      png_crc_read(png_ptr, (png_bytep)key, slength);
+   png_crc_read(png_ptr, (png_bytep)key, slength);
 
    if (png_crc_finish(png_ptr, skip))
    {
@@ -1879,8 +1813,6 @@
       text++;
 
    text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text));
-   if (text_ptr != (png_textp)NULL)
-   {
    text_ptr->compression = PNG_TEXT_COMPRESSION_NONE;
    text_ptr->key = key;
 #ifdef PNG_iTXt_SUPPORTED
@@ -1893,11 +1825,8 @@
 
    png_set_text(png_ptr, info_ptr, text_ptr, 1);
 
-   png_free(png_ptr, text_ptr);
-   }
-   else
-     png_warning(png_ptr, "Could not allocate iTXt pointer");
    png_free(png_ptr, key);
+   png_free(png_ptr, text_ptr);
 }
 #endif
 
@@ -1931,17 +1860,8 @@
 #endif
 
    chunkdata = (png_charp)png_malloc(png_ptr, length + 1);
-   if (chunkdata != (png_charp)NULL)
-   {
      slength = (png_size_t)length;
-     png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
-   }
-   else
-   {
-     png_warning (png_ptr, "Could not allocate memory for zTXt chunk data");
-     png_crc_finish(png_ptr, length);
-     return;
-   }
+   png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
    if (png_crc_finish(png_ptr, 0))
    {
       png_free(png_ptr, chunkdata);
@@ -1975,24 +1895,19 @@
                                     (png_size_t)length, prefix_len, &data_len);
 
    text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text));
-   if (text_ptr != (png_textp)NULL)
-   {
-     text_ptr->compression = comp_type;
-     text_ptr->key = chunkdata;
+   text_ptr->compression = comp_type;
+   text_ptr->key = chunkdata;
 #ifdef PNG_iTXt_SUPPORTED
-     text_ptr->lang = NULL;
-     text_ptr->lang_key = NULL;
-     text_ptr->itxt_length = 0;
+   text_ptr->lang = NULL;
+   text_ptr->lang_key = NULL;
+   text_ptr->itxt_length = 0;
 #endif
-     text_ptr->text = chunkdata + prefix_len;
-     text_ptr->text_length = data_len;
+   text_ptr->text = chunkdata + prefix_len;
+   text_ptr->text_length = data_len;
 
-     png_set_text(png_ptr, info_ptr, text_ptr, 1);
+   png_set_text(png_ptr, info_ptr, text_ptr, 1);
 
-     png_free(png_ptr, text_ptr);
-   }
-   else
-      png_warning (png_ptr, "Could not allocate memory for zTXt data");
+   png_free(png_ptr, text_ptr);
    png_free(png_ptr, chunkdata);
 }
 #endif
@@ -2029,17 +1944,8 @@
 #endif
 
    chunkdata = (png_charp)png_malloc(png_ptr, length + 1);
-   if (chunkdata != (png_charp)NULL)
-   {
-     slength = (png_size_t)length;
-     png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
-   }
-   else
-   {
-     png_warning (png_ptr, "Could not allocate memory for iTXt chunk data");
-     png_crc_finish(png_ptr, length);
-     return;
-   }
+   slength = (png_size_t)length;
+   png_crc_read(png_ptr, (png_bytep)chunkdata, slength);
    if (png_crc_finish(png_ptr, 0))
    {
       png_free(png_ptr, chunkdata);
@@ -2084,22 +1990,17 @@
    else
        data_len=png_strlen(chunkdata + prefix_len);
    text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text));
-   if (text_ptr != (png_textp)NULL)
-   {
-     text_ptr->compression = (int)comp_flag + 1;
-     text_ptr->lang_key = chunkdata+(lang_key-key);
-     text_ptr->lang = chunkdata+(lang-key);
-     text_ptr->itxt_length = data_len;
-     text_ptr->text_length = 0;
-     text_ptr->key = chunkdata;
-     text_ptr->text = chunkdata + prefix_len;
+   text_ptr->compression = (int)comp_flag + 1;
+   text_ptr->lang_key = chunkdata+(lang_key-key);
+   text_ptr->lang = chunkdata+(lang-key);
+   text_ptr->itxt_length = data_len;
+   text_ptr->text_length = 0;
+   text_ptr->key = chunkdata;
+   text_ptr->text = chunkdata + prefix_len;
 
-     png_set_text(png_ptr, info_ptr, text_ptr, 1);
+   png_set_text(png_ptr, info_ptr, text_ptr, 1);
 
-     png_free(png_ptr, text_ptr);
-   }
-   else
-     png_warning (png_ptr, "Could not allocate memory for iTXt chunk data");
+   png_free(png_ptr, text_ptr);
    png_free(png_ptr, chunkdata);
 }
 #endif
@@ -2133,7 +2034,7 @@
       if(png_handle_as_unknown(png_ptr, png_ptr->chunk_name) !=
            HANDLE_CHUNK_ALWAYS
 #if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
-           && png_ptr->read_user_chunk_fn == (png_user_chunk_ptr)NULL
+           && png_ptr->read_user_chunk_fn == NULL
 #endif
         )
 #endif
@@ -2155,19 +2056,10 @@
 #endif
        png_strcpy((png_charp)chunk.name, (png_charp)png_ptr->chunk_name);
        chunk.data = (png_bytep)png_malloc(png_ptr, length);
-       if (chunk.data != (png_bytep)NULL)
-       {
-         chunk.size = (png_size_t)length;
-         png_crc_read(png_ptr, (png_bytep)chunk.data, length);
-       }
-       else
-       {
-         png_warning (png_ptr, "Could not allocate memory for iTXt chunk data");
-         png_crc_finish(png_ptr, length);
-         return;
-       }
+       chunk.size = (png_size_t)length;
+       png_crc_read(png_ptr, (png_bytep)chunk.data, length);
 #if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
-       if(png_ptr->read_user_chunk_fn != (png_user_chunk_ptr)NULL)
+       if(png_ptr->read_user_chunk_fn != NULL)
        {
           /* callback to user unknown chunk handler */
           if ((*(png_ptr->read_user_chunk_fn)) (png_ptr, &chunk) <= 0)
@@ -3072,8 +2964,6 @@
       png_error(png_ptr, "This image requires a row greater than 64KB");
 #endif
    png_ptr->row_buf = (png_bytep)png_malloc(png_ptr, row_bytes);
-   if (png_ptr->row_buf == (png_bytep)NULL)
-      png_error (png_ptr, "Could not allocate memory for row buffer");
    png_ptr->row_buf_size = row_bytes;
 
 #ifdef PNG_MAX_MALLOC_64K
@@ -3082,11 +2972,6 @@
 #endif
    png_ptr->prev_row = (png_bytep)png_malloc(png_ptr, (png_uint_32)(
       png_ptr->rowbytes + 1));
-   if (png_ptr->prev_row == (png_bytep)NULL)
-   {
-      png_free (png_ptr, png_ptr->row_buf);
-      png_error (png_ptr, "Could not allocate memory for previous row buffer");
-   }
 
    png_memset_check(png_ptr, png_ptr->prev_row, 0, png_ptr->rowbytes + 1);
 
diff --git a/pngset.c b/pngset.c
index 2465fd0..49f9702 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -154,11 +154,6 @@
 #endif
    png_ptr->hist = (png_uint_16p)png_malloc(png_ptr,
       (png_uint_32)(info_ptr->num_palette * sizeof (png_uint_16)));
-   if (png_ptr->hist == (png_uint_16p)NULL)
-   {
-      png_warning (png_ptr, "Could not allocate memory for histogram");
-      return;
-   }
 
    for (i = 0; i < info_ptr->num_palette; i++)
        png_ptr->hist[i] = hist[i];
@@ -300,11 +295,6 @@
    length = png_strlen(purpose) + 1;
    png_debug1(3, "allocating purpose for info (%lu bytes)\n", length);
    info_ptr->pcal_purpose = (png_charp)png_malloc(png_ptr, length);
-   if (info_ptr->pcal_purpose == (png_charp)NULL)
-   {
-      png_warning (png_ptr, "Could not allocate memory for pCAL");
-      return;
-   }
    png_memcpy(info_ptr->pcal_purpose, purpose, (png_size_t)length);
 
    png_debug(3, "storing X0, X1, type, and nparams in info\n");
@@ -316,23 +306,10 @@
    length = png_strlen(units) + 1;
    png_debug1(3, "allocating units for info (%lu bytes)\n", length);
    info_ptr->pcal_units = (png_charp)png_malloc(png_ptr, length);
-   if (info_ptr->pcal_units == (png_charp)NULL)
-   {
-      png_free (png_ptr, info_ptr->pcal_purpose);
-      png_warning (png_ptr, "Could not allocate memory for pCAL units");
-      return;
-   }
    png_memcpy(info_ptr->pcal_units, units, (png_size_t)length);
 
    info_ptr->pcal_params = (png_charpp)png_malloc(png_ptr,
       (png_uint_32)((nparams + 1) * sizeof(png_charp)));
-   if (info_ptr->pcal_params == (png_charpp)NULL)
-   {
-      png_free (png_ptr, info_ptr->pcal_purpose);
-      png_free (png_ptr, info_ptr->pcal_units);
-      png_warning (png_ptr, "Could not allocate memory for pCAL params");
-      return;
-   }
 
    info_ptr->pcal_params[nparams] = NULL;
 
@@ -341,13 +318,7 @@
       length = png_strlen(params[i]) + 1;
       png_debug2(3, "allocating parameter %d for info (%lu bytes)\n", i, length);
       info_ptr->pcal_params[i] = (png_charp)png_malloc(png_ptr, length);
-      if (info_ptr->pcal_params[i] == (png_charp)NULL)
-      {
-         nparams=i;
-         png_warning (png_ptr, "Could not allocate memory for pCAL params");
-      }
-      else
-         png_memcpy(info_ptr->pcal_params[i], params[i], (png_size_t)length);
+      png_memcpy(info_ptr->pcal_params[i], params[i], (png_size_t)length);
    }
 
    info_ptr->valid |= PNG_INFO_pCAL;
@@ -390,14 +361,12 @@
    length = png_strlen(swidth) + 1;
    png_debug1(3, "allocating unit for info (%d bytes)\n", length);
    info_ptr->scal_s_width = (png_charp)png_malloc(png_ptr, length);
-   if (info_ptr->scal_s_width != (png_charp)NULL)
-      png_memcpy(info_ptr->scal_s_width, swidth, (png_size_t)length);
+   png_memcpy(info_ptr->scal_s_width, swidth, (png_size_t)length);
 
    length = png_strlen(sheight) + 1;
    png_debug1(3, "allocating unit for info (%d bytes)\n", length);
    info_ptr->scal_s_height = (png_charp)png_malloc(png_ptr, length);
-   if (info_ptr->scal_s_height != (png_charp)NULL)
-      png_memcpy(info_ptr->scal_s_height, sheight, (png_size_t)length);
+   png_memcpy(info_ptr->scal_s_height, sheight, (png_size_t)length);
 
    info_ptr->valid |= PNG_INFO_sCAL;
 #ifdef PNG_FREE_ME_SUPPORTED
@@ -443,11 +412,6 @@
 #endif
    png_ptr->palette = (png_colorp)png_zalloc(png_ptr, (uInt)num_palette,
       sizeof (png_color));
-   if (png_ptr->palette == (png_colorp)NULL)
-   {
-      png_warning(png_ptr, "Unable to allocate palette");
-      return;
-   }
    png_memcpy(png_ptr->palette, palette, num_palette * sizeof (png_color));
    info_ptr->palette = png_ptr->palette;
    info_ptr->num_palette = png_ptr->num_palette = (png_uint_16)num_palette;
@@ -572,19 +536,8 @@
       return;
 
    new_iccp_name = (png_charp)png_malloc(png_ptr, png_strlen(name)+1);
-   if (new_iccp_name == (png_charp)NULL) 
-   {
-     png_warning (png_ptr, "Could not allocate memory for ICC profile name");
-     return;
-   }
    png_strcpy(new_iccp_name, name);
    new_iccp_profile = (png_charp)png_malloc(png_ptr, proflen);
-   if (new_iccp_profile == (png_charp)NULL) 
-   {
-     png_warning (png_ptr, "Could not allocate memory for ICC profile");
-     png_free (png_ptr, new_iccp_name);
-     return;
-   }
    png_memcpy(new_iccp_profile, profile, (png_size_t)proflen);
 
    png_free_data(png_ptr, info_ptr, PNG_FREE_ICCP, 0);
@@ -630,12 +583,6 @@
          old_text = info_ptr->text;
          info_ptr->text = (png_textp)png_malloc(png_ptr,
             (png_uint_32)(info_ptr->max_text * sizeof (png_text)));
-         if (info_ptr->text == (png_textp)NULL)
-         {
-            png_warning (png_ptr, "Could not allocate memory for text");
-            info_ptr->text = old_text;
-            return;
-         }
          png_memcpy(info_ptr->text, old_text, (png_size_t)(old_max *
             sizeof(png_text)));
          png_free(png_ptr, old_text);
@@ -646,11 +593,6 @@
          info_ptr->num_text = 0;
          info_ptr->text = (png_textp)png_malloc(png_ptr,
             (png_uint_32)(info_ptr->max_text * sizeof (png_text)));
-         if (info_ptr->text == (png_textp)NULL)
-         {
-            png_warning (png_ptr, "Could not allocate memory for text");
-            return;
-         }
 #ifdef PNG_FREE_ME_SUPPORTED
          info_ptr->free_me |= PNG_FREE_TEXT;
 #endif
@@ -664,7 +606,7 @@
       png_size_t lang_len,lang_key_len;
       png_textp textp = &(info_ptr->text[info_ptr->num_text]);
 
-      if (text_ptr[i].key == (png_charp)NULL)
+      if (text_ptr[i].key == NULL)
           continue;
 
       key_len = png_strlen(text_ptr[i].key);
@@ -678,11 +620,11 @@
 #ifdef PNG_iTXt_SUPPORTED
       {
         /* set iTXt data */
-        if (text_ptr[i].key != (png_charp)NULL)
+        if (text_ptr[i].key != NULL)
           lang_len = png_strlen(text_ptr[i].lang);
         else
           lang_len = 0;
-        if (text_ptr[i].lang_key != (png_charp)NULL)
+        if (text_ptr[i].lang_key != NULL)
           lang_key_len = png_strlen(text_ptr[i].lang_key);
         else
           lang_key_len = 0;
@@ -694,7 +636,7 @@
       }
 #endif
 
-      if (text_ptr[i].text == (png_charp)NULL || text_ptr[i].text[0] == '\0')
+      if (text_ptr[i].text == NULL || text_ptr[i].text[0] == '\0')
       {
          text_length = 0;
 #ifdef PNG_iTXt_SUPPORTED
@@ -712,11 +654,6 @@
 
       textp->key = (png_charp)png_malloc(png_ptr,
          (png_uint_32)(key_len + text_length + lang_len + lang_key_len + 4));
-      if (textp->key == (png_charp)NULL)
-      {
-         png_warning (png_ptr, "Could not allocate memory for text pointer");
-         return;
-      }
       png_debug2(2, "Allocated %d bytes at %x in png_set_text\n",
          key_len + lang_len + lang_key_len + text_length + 4, (int)textp->key);
 
@@ -804,11 +741,6 @@
 #endif
        png_ptr->trans = info_ptr->trans = (png_bytep)png_malloc(png_ptr,
            num_trans);
-       if (png_ptr->trans == (png_bytep)NULL)
-       {
-          png_warning (png_ptr, "Could not allocate memory for tRNS array");
-          return;
-       }
        png_memcpy(info_ptr->trans, trans, num_trans);
 #ifdef PNG_FREE_ME_SUPPORTED
        info_ptr->free_me |= PNG_FREE_TRNS;
@@ -839,11 +771,6 @@
 
     np = (png_sPLT_tp)png_malloc(png_ptr,
         (info_ptr->splt_palettes_num + nentries) * sizeof(png_sPLT_t));
-    if (np == (png_sPLT_tp)NULL)
-    {
-       png_warning (png_ptr, "Could not allocate memory for sPLT");
-       return;
-    }
 
     png_memcpy(np, info_ptr->splt_palettes,
            info_ptr->splt_palettes_num * sizeof(png_sPLT_t));
@@ -860,18 +787,10 @@
         png_strcpy(to->name, from->name);
         to->entries = (png_sPLT_entryp)png_malloc(png_ptr,
             from->nentries * sizeof(png_sPLT_t));
-        if (to->entries == (png_sPLT_entryp)NULL)
-        {
-           png_warning(png_ptr, "Could not allocate memory for sPLT entry");
-           nentries=i;
-        }
-        else
-        {
-          png_memcpy(to->entries, from->entries,
-               from->nentries * sizeof(png_sPLT_t));
-          to->nentries = from->nentries;
-          to->depth = from->depth;
-        }
+        png_memcpy(to->entries, from->entries,
+            from->nentries * sizeof(png_sPLT_t));
+        to->nentries = from->nentries;
+        to->depth = from->depth;
     }
 
     info_ptr->splt_palettes = np;
@@ -897,11 +816,6 @@
     np = (png_unknown_chunkp)png_malloc(png_ptr,
         (info_ptr->unknown_chunks_num + num_unknowns) *
         sizeof(png_unknown_chunk));
-    if (np == (png_unknown_chunkp)NULL)
-    {
-       png_warning (png_ptr, "Could not allocate memory for unknown chunk");
-       return;
-    }
 
     png_memcpy(np, info_ptr->unknown_chunks,
            info_ptr->unknown_chunks_num * sizeof(png_unknown_chunk));
@@ -915,19 +829,11 @@
 
         png_strcpy((png_charp)to->name, (png_charp)from->name);
         to->data = (png_bytep)png_malloc(png_ptr, from->size);
-        if (to->data == (png_bytep)NULL)
-        {
-           png_warning(png_ptr, "Could not allocate memory for unknown entry");
-           num_unknowns=i;
-        }
-        else
-        {
-          png_memcpy(to->data, from->data, from->size);
-          to->size = from->size;
+        png_memcpy(to->data, from->data, from->size);
+        to->size = from->size;
 
-          /* note our location in the read or write sequence */
-          to->location = (png_byte)(png_ptr->mode & 0xff);
-        }
+        /* note our location in the read or write sequence */
+        to->location = (png_byte)(png_ptr->mode & 0xff);
     }
 
     info_ptr->unknown_chunks = np;
@@ -999,7 +905,7 @@
       return;
     old_num_chunks=png_ptr->num_chunk_list;
     new_list=(png_bytep)png_malloc(png_ptr,5*(num_chunks+old_num_chunks));
-    if(png_ptr->chunk_list != (png_bytep)NULL)
+    if(png_ptr->chunk_list != NULL)
     {
        png_memcpy(new_list, png_ptr->chunk_list, 5*old_num_chunks);
        png_free(png_ptr, png_ptr->chunk_list);
@@ -1051,8 +957,6 @@
        png_free(png_ptr, png_ptr->zbuf);
     png_ptr->zbuf_size = (png_size_t)size;
     png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, size);
-    if(!png_ptr->zbuf)
-       png_error(png_ptr,"Unable to malloc zbuf");
     png_ptr->zstream.next_out = png_ptr->zbuf;
     png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
 }
diff --git a/pngtest.c b/pngtest.c
index c5c12c1..e017ad5 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1028,18 +1028,6 @@
    row_buf = (png_bytep)png_malloc(read_ptr,
       png_get_rowbytes(read_ptr, read_info_ptr));
    png_debug1(0, "0x%08lx\n\n", (unsigned long)row_buf);
-   if (row_buf == NULL)
-   {
-      fprintf(STDERR, "No memory to allocate row buffer\n");
-      png_destroy_read_struct(&read_ptr, &read_info_ptr, (png_infopp)NULL);
-#ifdef PNG_WRITE_SUPPORTED
-      png_destroy_info_struct(write_ptr, &write_end_info_ptr);
-      png_destroy_write_struct(&write_ptr, &write_info_ptr);
-#endif
-      FCLOSE(fpin);
-      FCLOSE(fpout);
-      return (1);
-   }
 #endif /* SINGLE_ROWBUF_ALLOC */
    png_debug(0, "Writing row data\n");
 
@@ -1523,4 +1511,4 @@
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_11beta3 your_png_h_is_not_version_1_0_11beta3;
+typedef version_1_0_11rc1 your_png_h_is_not_version_1_0_11rc1;
diff --git a/pngtrans.c b/pngtrans.c
index 6f521e9..4475ab0 100644
--- a/pngtrans.c
+++ b/pngtrans.c
@@ -1,7 +1,7 @@
 
 /* pngtrans.c - transforms the data in a row (used by both readers and writers)
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngvcrd.c b/pngvcrd.c
index 17499ac..c46e3c1 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
  *
  * For Intel x86 CPU and Microsoft Visual C++ compiler
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
diff --git a/pngwio.c b/pngwio.c
index 0775dbc..530c885 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
 
 /* pngwio.c - functions for data output
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwrite.c b/pngwrite.c
index 18ce24c..10c04aa 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
 
 /* pngwrite.c - general routines to write a PNG file
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -512,8 +512,6 @@
    png_ptr->zbuf_size = PNG_ZBUF_SIZE;
    png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
       (png_uint_32)png_ptr->zbuf_size);
-   if (png_ptr->zbuf == (png_bytep)NULL)
-      png_error(png_ptr, "Could not allocate zbuf for writing");
 
    png_set_write_fn(png_ptr, NULL, NULL, NULL);
 
@@ -583,8 +581,6 @@
    png_ptr->zbuf_size = PNG_ZBUF_SIZE;
    png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
       (png_uint_32)png_ptr->zbuf_size);
-   if (png_ptr->zbuf == (png_bytep)NULL)
-      png_error(png_ptr, "Could not allocate zbuf for writing");
    png_set_write_fn(png_ptr, NULL, NULL, NULL);
 
 #if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
@@ -1033,8 +1029,6 @@
          {
             png_ptr->sub_row = (png_bytep)png_malloc(png_ptr,
               (png_ptr->rowbytes + 1));
-           if (png_ptr->sub_row == (png_bytep)NULL)
-              png_error(png_ptr, "Could not allocate sub_row");
             png_ptr->sub_row[0] = PNG_FILTER_VALUE_SUB;
          }
 
@@ -1049,10 +1043,6 @@
             {
                png_ptr->up_row = (png_bytep)png_malloc(png_ptr,
                   (png_ptr->rowbytes + 1));
-               if (png_ptr->up_row == (png_bytep)NULL)
-               {
-                 png_error(png_ptr, "Could not allocate sub_row");
-               }
                png_ptr->up_row[0] = PNG_FILTER_VALUE_UP;
             }
          }
@@ -1068,8 +1058,6 @@
             {
                png_ptr->avg_row = (png_bytep)png_malloc(png_ptr,
                   (png_ptr->rowbytes + 1));
-               if (png_ptr->avg_row == (png_bytep)NULL)
-                  png_error(png_ptr, "Could not allocate avg_row");
                png_ptr->avg_row[0] = PNG_FILTER_VALUE_AVG;
             }
          }
@@ -1086,8 +1074,6 @@
             {
                png_ptr->paeth_row = (png_bytep)png_malloc(png_ptr,
                   (png_ptr->rowbytes + 1));
-               if (png_ptr->paeth_row == (png_bytep)NULL)
-                 png_error(png_ptr, "Could not allocate avg_row");
                png_ptr->paeth_row[0] = PNG_FILTER_VALUE_PAETH;
             }
          }
@@ -1143,13 +1129,10 @@
          png_ptr->prev_filters = (png_bytep)png_malloc(png_ptr,
             (png_uint_32)(sizeof(png_byte) * num_weights));
 
-         if (png_ptr->prev_filters != (png_bytep)NULL)
+         /* To make sure that the weighting starts out fairly */
+         for (i = 0; i < num_weights; i++)
          {
-           /* To make sure that the weighting starts out fairly */
-           for (i = 0; i < num_weights; i++)
-           {
-              png_ptr->prev_filters[i] = 255;
-           }
+            png_ptr->prev_filters[i] = 255;
          }
       }
 
@@ -1160,22 +1143,11 @@
 
          png_ptr->inv_filter_weights = (png_uint_16p)png_malloc(png_ptr,
             (png_uint_32)(sizeof(png_uint_16) * num_weights));
-         if (png_ptr->inv_filter_weights == (png_uint_16p)NULL)
+         for (i = 0; i < num_weights; i++)
          {
-            png_free(png_ptr, png_ptr->filter_weights);
-            png_ptr->filter_weights = NULL;
+            png_ptr->inv_filter_weights[i] =
+            png_ptr->filter_weights[i] = PNG_WEIGHT_FACTOR;
          }
-         if (png_ptr->filter_weights != (png_uint_16p)NULL &&
-             png_ptr->inv_filter_weights != (png_uint_16p)NULL)
-         {
-           for (i = 0; i < num_weights; i++)
-           {
-              png_ptr->inv_filter_weights[i] =
-              png_ptr->filter_weights[i] = PNG_WEIGHT_FACTOR;
-           }
-         }
-         else
-            num_weights=0;
       }
 
       for (i = 0; i < num_weights; i++)
@@ -1387,7 +1359,7 @@
    /* It is REQUIRED to call this to finish writing the rest of the file */
    png_write_end(png_ptr, info_ptr);
 
-   if(transforms == 0 || params == (voidp)NULL)
+   if(transforms == 0 || params == NULL)
       /* quiet compiler warnings */ return;
 }
 #endif
diff --git a/pngwtran.c b/pngwtran.c
index 79437a6..7322087 100644
--- a/pngwtran.c
+++ b/pngwtran.c
@@ -1,7 +1,7 @@
 
 /* pngwtran.c - transforms the data in a row for PNG writers
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwutil.c b/pngwutil.c
index 6889f27..a900986 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * libpng 1.0.11beta3 - April 15, 2001
+ * libpng 1.0.11rc1 - April 20, 2001
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2001 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -235,11 +235,6 @@
                old_ptr = comp->output_ptr;
                comp->output_ptr = (png_charpp)png_malloc(png_ptr,
                   (png_uint_32)(comp->max_output_ptr * sizeof (png_charpp)));
-               if (comp->output_ptr == (png_charpp)NULL)
-               {
-                  png_warning (png_ptr, "Cannot allocate compression buffer");
-                  comp->output_ptr=old_ptr;
-               }
                png_memcpy(comp->output_ptr, old_ptr, old_max
                   * sizeof (png_charp));
                png_free(png_ptr, old_ptr);
@@ -247,23 +242,14 @@
             else
                comp->output_ptr = (png_charpp)png_malloc(png_ptr,
                   (png_uint_32)(comp->max_output_ptr * sizeof (png_charp)));
-               if (comp->output_ptr == (png_charpp)NULL)
-               {
-                  png_warning (png_ptr, "Cannot allocate compression buffer");
-               }
          }
 
          /* save the data */
          comp->output_ptr[comp->num_output_ptr] = (png_charp)png_malloc(png_ptr,
             (png_uint_32)png_ptr->zbuf_size);
-         if (comp->output_ptr[comp->num_output_ptr] == (png_charp)NULL)
-            png_warning (png_ptr, "Cannot allocate compression buffer");
-         else
-         {
-            png_memcpy(comp->output_ptr[comp->num_output_ptr], png_ptr->zbuf,
-               png_ptr->zbuf_size);
-            comp->num_output_ptr++;
-         }
+         png_memcpy(comp->output_ptr[comp->num_output_ptr], png_ptr->zbuf,
+            png_ptr->zbuf_size);
+         comp->num_output_ptr++;
 
          /* and reset the buffer */
          png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
@@ -298,8 +284,7 @@
                   /* This could be optimized to realloc() */
                   comp->output_ptr = (png_charpp)png_malloc(png_ptr,
                      (png_uint_32)(comp->max_output_ptr * sizeof (png_charpp)));
-                  if (comp->output_ptr != (png_charpp)NULL)
-                    png_memcpy(comp->output_ptr, old_ptr,
+                  png_memcpy(comp->output_ptr, old_ptr,
                        old_max * sizeof (png_charp));
                   png_free(png_ptr, old_ptr);
                }
@@ -311,14 +296,9 @@
             /* save off the data */
             comp->output_ptr[comp->num_output_ptr] =
                (png_charp)png_malloc(png_ptr, (png_uint_32)png_ptr->zbuf_size);
-            if (comp->output_ptr[comp->num_output_ptr] == (png_charp)NULL)
-               png_warning (png_ptr, "Cannot allocate compression buffer");
-            else
-            {
-               png_memcpy(comp->output_ptr[comp->num_output_ptr], png_ptr->zbuf,
-                  png_ptr->zbuf_size);
-               comp->num_output_ptr++;
-            }
+            png_memcpy(comp->output_ptr[comp->num_output_ptr], png_ptr->zbuf,
+               png_ptr->zbuf_size);
+            comp->num_output_ptr++;
 
             /* and reset the buffer pointers */
             png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
@@ -1130,12 +1110,6 @@
 
    *new_key = (png_charp)png_malloc(png_ptr, (png_uint_32)(key_len + 2));
  
-   if (*new_key == (png_charp)NULL)
-   {
-      png_warning(png_ptr, "Could not allocate new key; keyword not checked");
-      return key_len;
-   }
-
    /* Replace non-printing characters with a blank and print a warning */
    for (kp = key, dp = *new_key; *kp != '\0'; kp++, dp++)
    {
@@ -1451,12 +1425,6 @@
    params_len = (png_uint_32p)png_malloc(png_ptr, (png_uint_32)(nparams
       *sizeof(png_uint_32)));
 
-   if (params_len == (png_uint_32p)NULL)
-   {
-      png_warning (png_ptr, "Could not allocate params for pCAL");
-      return;
-   }
-
    /* Find the length of each parameter, making sure we don't count the
       null terminator for the last parameter. */
    for (i = 0; i < nparams; i++)
@@ -1640,8 +1608,6 @@
 
    /* set up row buffer */
    png_ptr->row_buf = (png_bytep)png_malloc(png_ptr, (png_uint_32)buf_size);
-   if (png_ptr->row_buf == (png_bytep)NULL)
-      png_error(png_ptr, "Could not allocate row buffer");
    png_ptr->row_buf[0] = PNG_FILTER_VALUE_NONE;
 
    /* set up filtering buffer, if using this filter */
@@ -1649,8 +1615,6 @@
    {
       png_ptr->sub_row = (png_bytep)png_malloc(png_ptr,
          (png_ptr->rowbytes + 1));
-      if (png_ptr->sub_row == (png_bytep)NULL)
-         png_error(png_ptr, "Could not allocate sub row buffer");
       png_ptr->sub_row[0] = PNG_FILTER_VALUE_SUB;
    }
 
@@ -1665,8 +1629,6 @@
       {
          png_ptr->up_row = (png_bytep )png_malloc(png_ptr,
             (png_ptr->rowbytes + 1));
-         if (png_ptr->up_row == (png_bytep)NULL)
-            png_error(png_ptr, "Could not allocate up row buffer");
          png_ptr->up_row[0] = PNG_FILTER_VALUE_UP;
       }
 
@@ -1674,8 +1636,6 @@
       {
          png_ptr->avg_row = (png_bytep)png_malloc(png_ptr,
             (png_ptr->rowbytes + 1));
-         if (png_ptr->avg_row == (png_bytep)NULL)
-            png_error(png_ptr, "Could not allocate avg row buffer");
          png_ptr->avg_row[0] = PNG_FILTER_VALUE_AVG;
       }
 
@@ -1683,8 +1643,6 @@
       {
          png_ptr->paeth_row = (png_bytep )png_malloc(png_ptr,
             (png_ptr->rowbytes + 1));
-         if (png_ptr->paeth_row == (png_bytep)NULL)
-            png_error(png_ptr, "Could not allocate paeth row buffer");
          png_ptr->paeth_row[0] = PNG_FILTER_VALUE_PAETH;
       }
    }
diff --git a/projects/msvc/README.txt b/projects/msvc/README.txt
index bfbfe90..cc14ab5 100644
--- a/projects/msvc/README.txt
+++ b/projects/msvc/README.txt
@@ -1,5 +1,5 @@
 Microsoft Developer Studio Build File, Format Version 6.00 for
-libpng 1.0.11beta3 (April 15, 2001) and zlib
+libpng 1.0.11rc1 (April 20, 2001) and zlib
 
 Copyright (C) 2000 Simon-Pierre Cadieux
 For conditions of distribution and use, see copyright notice in png.h
diff --git a/projects/msvc/png32ms.def b/projects/msvc/png32ms.def
index 3202558..b5c9b8b 100644
--- a/projects/msvc/png32ms.def
+++ b/projects/msvc/png32ms.def
@@ -6,7 +6,7 @@
 DESCRIPTION "PNG image compression library for Windows"
 
 EXPORTS
-;Version 1.0.11beta3
+;Version 1.0.11rc1
   png_build_grayscale_palette  @1
   png_check_sig        @2
   png_chunk_error      @3
diff --git a/projects/wince/READMEE.WCE b/projects/wince/READMEE.WCE
index 98b833d..80b359b 100644
--- a/projects/wince/READMEE.WCE
+++ b/projects/wince/READMEE.WCE
@@ -8,9 +8,9 @@
 
 Introduction
 ============
-This is libpng 1.0.11beta3 ported to WindowsCE 2.0 and 2.11.
-libpng 1.0.11beta3 is a PNG reference library.
-See README, a document of original libpng 1.0.11beta3.
+This is libpng 1.0.11rc1 ported to WindowsCE 2.0 and 2.11.
+libpng 1.0.11rc1 is a PNG reference library.
+See README, a document of original libpng 1.0.11rc1.
 
 zlib for WindowsCE
 ==================
@@ -23,7 +23,7 @@
 warranty.  In no event will the authors be held liable for any damages
 arising from the use of this software.
 
-See README and LICENSE, documents of original libpng 1.0.11beta3, for conditions
+See README and LICENSE, documents of original libpng 1.0.11rc1, for conditions
 of use and distribution.
 
 Files
diff --git a/projects/wince/READMEJ.WCE b/projects/wince/READMEJ.WCE
index 83f295b..8a090de 100644
--- a/projects/wince/READMEJ.WCE
+++ b/projects/wince/READMEJ.WCE
@@ -24,7 +24,7 @@
 ‚É‚È‚Á‚½‚¢‚©‚È‚é”íŠQ‚ɂ‚¢‚Ä‚àAìŽÒA”z•zŽÒA‚»‚Ì‘¼—˜—pŽÒˆÈŠO‚̐l•¨A
 ’c‘̂ɐӔC‚ð‚Æ‚é‹`–±‚Í‚È‚¢‚à‚Ì‚Æ‚µ‚Ü‚·B
 
-‚»‚Ì‘¼A‚±‚̃\ƒtƒgƒEƒFƒA‚Ì—˜—pðŒ‚ɂ‚¢‚ẮAŒ´”Å‚Å‚ ‚é libpng 1.0.11beta3‚É
+‚»‚Ì‘¼A‚±‚̃\ƒtƒgƒEƒFƒA‚Ì—˜—pðŒ‚ɂ‚¢‚ẮAŒ´”Å‚Å‚ ‚é libpng 1.0.11rc1‚É
 €‹’‚·‚é‚à‚Ì‚Æ‚µ‚Ü‚·BÚ‚µ‚­‚́A•t‘®‚Ì README,LICENSE ‚ð‚¨“Ç‚Ý‚­‚¾‚³‚¢B
 
 Žû˜^“à—e
diff --git a/projects/wince/png32ce.def b/projects/wince/png32ce.def
index 9eff133..83cf33a 100644
--- a/projects/wince/png32ce.def
+++ b/projects/wince/png32ce.def
@@ -5,7 +5,7 @@
 LIBRARY lpngce
 
 EXPORTS
-;Version 1.0.11beta3
+;Version 1.0.11rc1
   png_build_grayscale_palette  @1
   png_check_sig        @2
   png_chunk_error      @3
diff --git a/scripts/makefile.aix b/scripts/makefile.aix
index aa5e51a..3bc88e4 100644
--- a/scripts/makefile.aix
+++ b/scripts/makefile.aix
@@ -18,7 +18,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.11beta3
+PNGMIN = 1.0.11rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 prefix=/usr/local
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index a76361d..c8aa168 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -13,7 +13,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.11beta3
+PNGMIN = 1.0.11rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 ALIGN=
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
index 96fda02..78416b5 100644
--- a/scripts/makefile.cygwin
+++ b/scripts/makefile.cygwin
@@ -39,8 +39,8 @@
 # have to change it.
 PNGMAJ = 2
 #PNGDLL = $1# msvc
-PNGDLL = 2# cygwin 1.0.11beta3
-PNGMIN = 1.0.11beta3
+PNGDLL = 2# cygwin 1.0.11rc1
+PNGMIN = 1.0.11rc1
 PNGMIN_BASE = 1.0.11
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index 94e5500..a124b72 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -17,7 +17,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.11beta3
+PNGMIN = 1.0.11rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 CC=cc
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index 73aaaaa..a5aea3b 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -51,7 +51,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.11beta3
+PNGMIN = 1.0.11rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc
index a3d01cf..d1192df 100644
--- a/scripts/makefile.hpgcc
+++ b/scripts/makefile.hpgcc
@@ -34,7 +34,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.11beta3
+PNGMIN = 1.0.11rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux
index 235d3e9..7b58513 100644
--- a/scripts/makefile.hpux
+++ b/scripts/makefile.hpux
@@ -19,7 +19,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.11beta3
+PNGMIN = 1.0.11rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # where make install puts libpng.a and png.h
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index d138290..0d561e7 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -34,7 +34,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.11beta3
+PNGMIN = 1.0.11rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd
new file mode 100644
index 0000000..d151213
--- /dev/null
+++ b/scripts/makefile.netbsd
@@ -0,0 +1,89 @@
+# makefile for libpng on NetBSD
+# Copyright (C) 2001 Glenn Randers-Pehrson
+# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
+# For conditions of distribution and use, see copyright notice in png.h
+
+# where make install puts libpng.a and png.h
+# pkgsrc will want prefix=${PREFIX}
+prefix=/usr/local
+INCPATH=$(prefix)/include
+LIBPATH=$(prefix)/lib
+
+# The zlib library and include files are part of the standard system
+
+# read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
+# have to change it.
+PNGMAJ = 2
+PNGMIN = 1.0.11rc1
+PNGVER = $(PNGMAJ).$(PNGMIN)
+
+CC=cc
+# You can define PNG_ASSEMBLER_CODE_SUPPORTED if building for Intel x86
+CFLAGS=-O2 -DPNG_USE_PNGGCCRD # -DPNG_ASSEMBLER_CODE_SUPPORTED  -g -DPNG_DEBUG=1
+LDFLAGS=-Wl,-R${LIBPATH} -L. -lpng -lz -lm
+
+#RANLIB=echo
+RANLIB=ranlib
+
+OBJS = pnggccrd.o png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
+	pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
+	pngwtran.o pngmem.o pngerror.o pngpread.o
+
+all: libpng.so libpng.a pngtest
+
+libpng.a: $(OBJS)
+	ar rc $@  $(OBJS)
+	$(RANLIB) $@
+
+libpng.so: libpng.so.$(PNGMAJ)
+	ln -f -s libpng.so.$(PNGMAJ) libpng.so
+
+libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
+	ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)
+
+libpng.so.$(PNGVER): $(OBJS)
+	$(CC) -shared -o $@ $(OBJS) -L$(ZLIBLIB) -lz -lm
+
+pngtest: pngtest.o libpng.a
+	$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
+
+test: pngtest
+	./pngtest
+
+install: libpng.a libpng.so.$(PNGVER)
+	-@mkdir $(INCPATH)
+	-@mkdir $(LIBPATH)
+	cp png.h $(INCPATH)
+	cp pngconf.h $(INCPATH)
+	chmod 644 $(INCPATH)/png.h
+	chmod 644 $(INCPATH)/pngconf.h
+	cp libpng.a $(LIBPATH)
+	cp libpng.so.$(PNGVER) $(LIBPATH)
+	chmod 644 $(LIBPATH)/libpng.a
+	chmod 644 $(LIBPATH)/libpng.so.$(PNGVER)
+	-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
+	(cd $(LIBPATH); ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
+	 ln -f -s libpng.so.$(PNGMAJ) libpng.so)
+
+clean:
+	rm -f *.o libpng.a pngtest pngout.png libpng.so*
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+pnggccrd.o: png.h pngconf.h
+png.o: png.h pngconf.h
+pngerror.o: png.h pngconf.h
+pngrio.o: png.h pngconf.h
+pngwio.o: png.h pngconf.h
+pngmem.o: png.h pngconf.h
+pngset.o: png.h pngconf.h
+pngget.o: png.h pngconf.h
+pngread.o: png.h pngconf.h
+pngrtran.o: png.h pngconf.h
+pngrutil.o: png.h pngconf.h
+pngtest.o: png.h pngconf.h
+pngtrans.o: png.h pngconf.h
+pngwrite.o: png.h pngconf.h
+pngwtran.o: png.h pngconf.h
+pngwutil.o: png.h pngconf.h
+pngpread.o: png.h pngconf.h
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index ffa24da..9a8661f 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -25,7 +25,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.11beta3
+PNGMIN = 1.0.11rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index 9256fab..baddb56 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -19,8 +19,8 @@
 LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
 LDSHARED=gcc -shared
 
-VER=1.0.11beta3
-LIBS=libpng.so.1.0.11beta3
+VER=1.0.11rc1
+LIBS=libpng.so.1.0.11rc1
 SHAREDLIB=libpng.so
 libdir=$(prefix)/lib32
 
diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi
index 82a31c4..3504eb5 100644
--- a/scripts/makefile.sgi
+++ b/scripts/makefile.sgi
@@ -25,7 +25,7 @@
 LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
 LDSHARED=cc -shared
 
-VER=1.0.11beta3
+VER=1.0.11rc1
 SONUM=2
 SHAREDLIB=libpng.so
 libdir=$(prefix)
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index f03041c..8de6fd6 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -31,7 +31,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.0.11beta3
+PNGMIN = 1.0.11rc1
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 INCPATH=$(prefix)/include
diff --git a/scripts/pngdef.pas b/scripts/pngdef.pas
index 11c4c92..522b165 100644
--- a/scripts/pngdef.pas
+++ b/scripts/pngdef.pas
@@ -7,7 +7,7 @@
 interface
 
 const
-  PNG_LIBPNG_VER_STRING = '1.0.11beta3';
+  PNG_LIBPNG_VER_STRING = '1.0.11rc1';
   PNG_LIBPNG_VER        =  10011;
 
 type
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index 6d7a299..c885bbd 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
 ; PNG.LIB module definition file for OS/2
 ;----------------------------------------
 
-; Version 1.0.11beta3
+; Version 1.0.11rc1
 
 LIBRARY		PNG
 DESCRIPTION	"PNG image compression library for OS/2"