[libpng17] Quiet a "comparison always true" warning in pngstest.c (John Bowler).
diff --git a/ANNOUNCE b/ANNOUNCE
index fcf9adc..9d88079 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
 
-Libpng 1.7.0beta43 - December 15, 2014
+Libpng 1.7.0beta43 - December 17, 2014
 
 This is not intended to be a public release.  It will be replaced
 within a few weeks by a public version or by another test version.
@@ -658,11 +658,12 @@
   Merged clang no-warning fix from libpng-1.6.13: png_digit was defined
     but never used in pngerror.c.
 
-Version 1.7.0beta43 [December 15, 2014]
+Version 1.7.0beta43 [December 17, 2014]
   Added ".align 2" to arm/filter_neon.S to support old GAS assemblers that
     don't do alignment correctly.
   Revised Makefile.am and scripts/*.dfn to work with MinGW/MSYS;
     renamed scripts/*.dfn to scripts/*.c (Bob Friesenhahn and John Bowler).
+  Quiet a "comparison always true" warning in pngstest.c (John Bowler).
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/CHANGES b/CHANGES
index 552800e..7517661 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4947,11 +4947,12 @@
   Merged clang no-warning fix from libpng-1.6.13: png_digit was defined
     but never used in pngerror.c.
 
-Version 1.7.0beta43 [December 15, 2014]
+Version 1.7.0beta43 [December 17, 2014]
   Added ".align 2" to arm/filter_neon.S to support old GAS assemblers that
     don't do alignment correctly.
   Revised Makefile.am and scripts/*.dfn to work with MinGW/MSYS;
     renamed scripts/*.dfn to scripts/*.c (Bob Friesenhahn and John Bowler).
+  Quiet a "comparison always true" warning in pngstest.c (John Bowler).
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/contrib/libtests/pngstest.c b/contrib/libtests/pngstest.c
index d20e8f2..6d6c501 100644
--- a/contrib/libtests/pngstest.c
+++ b/contrib/libtests/pngstest.c
@@ -3173,32 +3173,43 @@
             {
                long int cb = ftell(f);
 
-               if (cb > 0 && (unsigned long int)cb < (size_t)~(size_t)0)
+               if (cb > 0)
                {
-                  png_bytep b = voidcast(png_bytep, malloc((size_t)cb));
-
-                  if (b != NULL)
+                  if ((unsigned long int)cb <= (size_t)~(size_t)0)
                   {
-                     rewind(f);
+                     png_bytep b = voidcast(png_bytep, malloc((size_t)cb));
 
-                     if (fread(b, (size_t)cb, 1, f) == 1)
+                     if (b != NULL)
                      {
-                        fclose(f);
-                        image->input_memory_size = cb;
-                        image->input_memory = b;
+                        rewind(f);
+
+                        if (fread(b, (size_t)cb, 1, f) == 1)
+                        {
+                           fclose(f);
+                           image->input_memory_size = cb;
+                           image->input_memory = b;
+                        }
+
+                        else
+                        {
+                           free(b);
+                           return logclose(image, f, image->file_name,
+                              ": read failed: ");
+                        }
                      }
 
                      else
-                     {
-                        free(b);
                         return logclose(image, f, image->file_name,
-                           ": read failed: ");
-                     }
+                           ": out of memory: ");
                   }
 
                   else
                      return logclose(image, f, image->file_name,
-                        ": out of memory: ");
+                        ": file too big for this architecture: ");
+                     /* cb is the length of the file as a (long) and
+                      * this is greater than the maximum amount of
+                      * memory that can be requested from malloc.
+                      */
                }
 
                else if (cb == 0)