[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)