[lbpng14] Quieted some harmless warnings from Coverity-scan.

This commit is contained in:
Glenn Randers-Pehrson 2015-01-30 10:24:58 -06:00
parent 4df1247bd6
commit 173432da9e
10 changed files with 215 additions and 108 deletions

View File

@ -1,5 +1,5 @@
Libpng 1.4.15beta01 - January 27, 2015 Libpng 1.4.15beta02 - January 30, 2015
This is not intended to be a public release. It will be replaced 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. within a few weeks by a public version or by another test version.
@ -9,21 +9,21 @@ Files available for download:
Source files with LF line endings (for Unix/Linux) and with a Source files with LF line endings (for Unix/Linux) and with a
"configure" script "configure" script
1.4.15beta01.tar.xz (LZMA-compressed, recommended) 1.4.15beta02.tar.xz (LZMA-compressed, recommended)
1.4.15beta01.tar.gz 1.4.15beta02.tar.gz
1.4.15beta01.tar.bz2 1.4.15beta02.tar.bz2
Source files with CRLF line endings (for Windows), without the Source files with CRLF line endings (for Windows), without the
"configure" script "configure" script
lp1415b01.7z (LZMA-compressed, recommended) lp1415b02.7z (LZMA-compressed, recommended)
lp1415b01.zip lp1415b02.zip
Other information: Other information:
1.4.15beta01-README.txt 1.4.15beta02-README.txt
1.4.15beta01-LICENSE.txt 1.4.15beta02-LICENSE.txt
libpng-1.4.15beta01-*.asc (armored detached GPG signatures) libpng-1.4.15beta02-*.asc (armored detached GPG signatures)
Changes since the last public release (1.4.14): Changes since the last public release (1.4.14):
@ -31,6 +31,9 @@ version 1.4.15beta01 [January 27, 2015]
Restored test for maximum allowed image width that was removed from Restored test for maximum allowed image width that was removed from
libpng-1.4.13 (fixes CVE-2014-9495 and CVE-2015-0973). libpng-1.4.13 (fixes CVE-2014-9495 and CVE-2015-0973).
version 1.4.15beta02 [January 30, 2015]
Quieted some harmless warnings from Coverity-scan.
Send comments/corrections/commendations to glennrp at users.sourceforge.net Send comments/corrections/commendations to glennrp at users.sourceforge.net
or to png-mng-implement at lists.sf.net (subscription required; visit or to png-mng-implement at lists.sf.net (subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement). https://lists.sourceforge.net/lists/listinfo/png-mng-implement).

View File

@ -2926,6 +2926,9 @@ version 1.4.15beta01 [January 27, 2015]
Restored test for maximum allowed image width that was removed from Restored test for maximum allowed image width that was removed from
libpng-1.4.13 (fixes CVE-2014-9495 and CVE-2015-0973). libpng-1.4.13 (fixes CVE-2014-9495 and CVE-2015-0973).
version 1.4.15beta02 [January 30, 2015]
Quieted some harmless warnings from Coverity-scan.
Send comments/corrections/commendations to glennrp at users.sourceforge.net Send comments/corrections/commendations to glennrp at users.sourceforge.net
or to png-mng-implement at lists.sf.net (subscription required; visit or to png-mng-implement at lists.sf.net (subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement). https://lists.sourceforge.net/lists/listinfo/png-mng-implement).

6
png.c
View File

@ -17,7 +17,7 @@
#include "pngpriv.h" #include "pngpriv.h"
/* Generate a compiler error if there is an old png.h in the search path. */ /* Generate a compiler error if there is an old png.h in the search path. */
typedef version_1_4_15beta01 Your_png_h_is_not_version_1_4_15beta01; typedef version_1_4_15beta02 Your_png_h_is_not_version_1_4_15beta02;
/* Tells libpng that we have already handled the first "num_bytes" bytes /* Tells libpng that we have already handled the first "num_bytes" bytes
* of the PNG file signature. If the PNG data is embedded into another * of the PNG file signature. If the PNG data is embedded into another
@ -547,13 +547,13 @@ png_get_copyright(png_const_structp png_ptr)
#else #else
#ifdef __STDC__ #ifdef __STDC__
return ((png_charp) PNG_STRING_NEWLINE \ return ((png_charp) PNG_STRING_NEWLINE \
"libpng version 1.4.15beta01 - January 27, 2015" PNG_STRING_NEWLINE \ "libpng version 1.4.15beta02 - January 30, 2015" PNG_STRING_NEWLINE \
"Copyright (c) 1998-2015 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2015 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
PNG_STRING_NEWLINE); PNG_STRING_NEWLINE);
#else #else
return ((png_charp) "libpng version 1.4.15beta01 - January 27, 2015\ return ((png_charp) "libpng version 1.4.15beta02 - January 30, 2015\
Copyright (c) 1998-2015 Glenn Randers-Pehrson\ Copyright (c) 1998-2015 Glenn Randers-Pehrson\
Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1996-1997 Andreas Dilger\
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."); Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.");

102
png.h
View File

@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library /* png.h - header file for PNG reference library
* *
* libpng version 1.4.15beta01 - January 27, 2015 * libpng version %VER% - %DATE%
* Copyright (c) 1998-2011 Glenn Randers-Pehrson * Copyright (c) 1998-2011 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@ -11,7 +11,7 @@
* Authors and maintainers: * Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * 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.89c, June 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.97, January 1998, through 1.4.15beta01 - January 27, 2015: Glenn * libpng versions 0.97, January 1998, through %VER% - %DATE%: Glenn
* See also "Contributing Authors", below. * See also "Contributing Authors", below.
* *
* Note about libpng version numbers: * Note about libpng version numbers:
@ -176,7 +176,7 @@
* 1.4.14beta01 14 10414 14.so.14.14[.0] * 1.4.14beta01 14 10414 14.so.14.14[.0]
* 1.4.14rc01-02 14 10414 14.so.14.14[.0] * 1.4.14rc01-02 14 10414 14.so.14.14[.0]
* 1.4.14 14 10414 14.so.14.14[.0] * 1.4.14 14 10414 14.so.14.14[.0]
* 1.4.15beta01 14 10415 14.so.14.15[.0] * 1.4.15beta01-02 14 10415 14.so.14.15[.0]
* *
* Henceforth the source version will match the shared-library major * Henceforth the source version will match the shared-library major
* and minor numbers; the shared-library major version number will be * and minor numbers; the shared-library major version number will be
@ -208,7 +208,7 @@
* *
* This code is released under the libpng license. * This code is released under the libpng license.
* *
* libpng versions 1.2.6, August 15, 2004, through 1.4.15beta01, January 27, 2015, are * libpng versions 1.2.6, August 15, 2004, through %VER%, %DATE%, are
* Copyright (c) 2004, 2006-2013 Glenn Randers-Pehrson, and are * Copyright (c) 2004, 2006-2013 Glenn Randers-Pehrson, and are
* distributed according to the same disclaimer and license as libpng-1.2.5 * distributed according to the same disclaimer and license as libpng-1.2.5
* with the following individual added to the list of Contributing Authors: * with the following individual added to the list of Contributing Authors:
@ -320,13 +320,13 @@
* Y2K compliance in libpng: * Y2K compliance in libpng:
* ========================= * =========================
* *
* January 27, 2015 * %DATE%
* *
* Since the PNG Development group is an ad-hoc body, we can't make * Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration. * an official declaration.
* *
* This is your unofficial assurance that libpng from version 0.71 and * This is your unofficial assurance that libpng from version 0.71 and
* upward through 1.4.15beta01 are Y2K compliant. It is my belief that earlier * upward through %VER% are Y2K compliant. It is my belief that earlier
* versions were also Y2K compliant. * versions were also Y2K compliant.
* *
* Libpng only has three year fields. One is a 2-byte unsigned integer * Libpng only has three year fields. One is a 2-byte unsigned integer
@ -382,22 +382,22 @@
*/ */
/* Version information for png.h - this should match the version in png.c */ /* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.4.15beta01" #define PNG_LIBPNG_VER_STRING "%VER%"
#define PNG_HEADER_VERSION_STRING \ #define PNG_HEADER_VERSION_STRING \
" libpng version 1.4.15beta01 - January 27, 2015\n" " libpng version %VER% - %DATE%\n"
#define PNG_LIBPNG_VER_SONUM 14 #define PNG_LIBPNG_VER_SONUM %SONUM%
#define PNG_LIBPNG_VER_DLLNUM 14 #define PNG_LIBPNG_VER_DLLNUM %DLLNUM%
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
#define PNG_LIBPNG_VER_MAJOR 1 #define PNG_LIBPNG_VER_MAJOR %MAJOR%
#define PNG_LIBPNG_VER_MINOR 4 #define PNG_LIBPNG_VER_MINOR %MINOR%
#define PNG_LIBPNG_VER_RELEASE 15 #define PNG_LIBPNG_VER_RELEASE %RELEASE%
/* This should match the numeric part of the final component of /* This should match the numeric part of the final component of
* PNG_LIBPNG_VER_STRING, omitting any leading zero: * PNG_LIBPNG_VER_STRING, omitting any leading zero:
*/ */
#define PNG_LIBPNG_VER_BUILD 01 #define PNG_LIBPNG_VER_BUILD %BUILDNUM%
/* Release Status */ /* Release Status */
#define PNG_LIBPNG_BUILD_ALPHA 1 #define PNG_LIBPNG_BUILD_ALPHA 1
@ -414,7 +414,7 @@
#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with #define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
PNG_LIBPNG_BUILD_PRIVATE */ PNG_LIBPNG_BUILD_PRIVATE */
#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA #define PNG_LIBPNG_BUILD_BASE_TYPE %BUILDTYPE%
/* Careful here. At one time, Guy wanted to use 082, but that would be octal. /* Careful here. At one time, Guy wanted to use 082, but that would be octal.
* We must not include leading zeros. * We must not include leading zeros.
@ -422,7 +422,7 @@
* version 1.0.0 was mis-numbered 100 instead of 10000). From * version 1.0.0 was mis-numbered 100 instead of 10000). From
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
*/ */
#define PNG_LIBPNG_VER 10415 /* 1.4.15 */ #define PNG_LIBPNG_VER %VER_NUM% /* %MAJOR%.%MINOR%.%RELEASE% */
#ifndef PNG_VERSION_INFO_ONLY #ifndef PNG_VERSION_INFO_ONLY
/* Include the compression library's header */ /* Include the compression library's header */
@ -765,8 +765,9 @@ defined(PNG_READ_BACKGROUND_SUPPORTED)
* single color specified that should be treated as fully transparent. * single color specified that should be treated as fully transparent.
* Data is valid if (valid & PNG_INFO_tRNS) is non-zero. * Data is valid if (valid & PNG_INFO_tRNS) is non-zero.
*/ */
png_bytep trans_alpha PNG_DEPSTRUCT; /* alpha values for paletted %12-% png_bytep trans PNG_DEPSTRUCT; /* alpha values for paletted image */
image */ %14+% png_bytep trans_alpha PNG_DEPSTRUCT; /* alpha values for paletted
%14+% image */
png_color_16 trans_color PNG_DEPSTRUCT; /* transparent color for png_color_16 trans_color PNG_DEPSTRUCT; /* transparent color for
non-palette image */ non-palette image */
#endif #endif
@ -858,8 +859,10 @@ defined(PNG_READ_BACKGROUND_SUPPORTED)
#endif #endif
/* New members added in libpng-1.0.6 */ /* New members added in libpng-1.0.6 */
%12-%#ifdef PNG_FREE_ME_SUPPORTED
png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is
responsible for freeing */ responsible for freeing */
%12-%#endif
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \ #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
@ -1069,6 +1072,7 @@ typedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep,
#endif #endif
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
%12-% defined(PNG_LEGACY_SUPPORTED) || \
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp, typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp,
png_row_infop, png_bytep)); png_row_infop, png_bytep));
@ -1202,7 +1206,8 @@ struct png_struct_def
* We will change the typedef from png_size_t to png_alloc_size_t * We will change the typedef from png_size_t to png_alloc_size_t
* in libpng-1.6.0 * in libpng-1.6.0
*/ */
png_alloc_size_t user_chunk_malloc_max PNG_DEPSTRUCT; %12-% png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT;
%14+% png_alloc_size_t user_chunk_malloc_max PNG_DEPSTRUCT;
#endif #endif
png_uint_32 iwidth PNG_DEPSTRUCT; /* width of current interlaced png_uint_32 iwidth PNG_DEPSTRUCT; /* width of current interlaced
row in pixels */ row in pixels */
@ -1248,8 +1253,13 @@ struct png_struct_def
start of file */ start of file */
#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
%12-%#ifdef PNG_LEGACY_SUPPORTED
%12-% png_byte filler PNG_DEPSTRUCT; /* filler byte for pixel
%12-% expansion */
%12-%#else
png_uint_16 filler PNG_DEPSTRUCT; /* filler bytes for pixel png_uint_16 filler PNG_DEPSTRUCT; /* filler bytes for pixel
expansion */ expansion */
%12-%#endif
#endif #endif
#ifdef PNG_bKGD_SUPPORTED #ifdef PNG_bKGD_SUPPORTED
@ -1308,7 +1318,9 @@ struct png_struct_def
#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \
|| defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
png_bytep trans_alpha PNG_DEPSTRUCT; /* alpha values for %12-% png_bytep trans PNG_DEPSTRUCT; /* alpha values for paletted
%12-% files */
%14+% png_bytep trans_alpha PNG_DEPSTRUCT; /* alpha values for
paletted files */ paletted files */
png_color_16 trans_color PNG_DEPSTRUCT; /* transparent color for png_color_16 trans_color PNG_DEPSTRUCT; /* transparent color for
non-paletted files */ non-paletted files */
@ -1405,8 +1417,10 @@ struct png_struct_def
/* New members added in libpng-1.0.6 */ /* New members added in libpng-1.0.6 */
%12-%#ifdef PNG_FREE_ME_SUPPORTED
png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is
responsible for freeing */ responsible for freeing */
%12-%#endif
#ifdef PNG_USER_CHUNKS_SUPPORTED #ifdef PNG_USER_CHUNKS_SUPPORTED
png_voidp user_chunk_ptr PNG_DEPSTRUCT; png_voidp user_chunk_ptr PNG_DEPSTRUCT;
@ -1446,6 +1460,11 @@ struct png_struct_def
png_byte filter_type PNG_DEPSTRUCT; png_byte filter_type PNG_DEPSTRUCT;
#endif #endif
%12-%/* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */
%12-%#if (defined(PNG_DEBUG) && defined(PNG_USE_PNGGCCRD))
%12-% png_uint_32 row_buf_size PNG_DEPSTRUCT;
%12-%#endif
%12-%
/* New members added in libpng-1.2.0 */ /* New members added in libpng-1.2.0 */
/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
@ -1479,10 +1498,10 @@ struct png_struct_def
#ifdef PNG_USER_LIMITS_SUPPORTED #ifdef PNG_USER_LIMITS_SUPPORTED
png_uint_32 user_width_max PNG_DEPSTRUCT; png_uint_32 user_width_max PNG_DEPSTRUCT;
png_uint_32 user_height_max PNG_DEPSTRUCT; png_uint_32 user_height_max PNG_DEPSTRUCT;
/* Added in libpng-1.4.0: Total number of sPLT, text, and unknown %14+% /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown
* chunks that can be stored (0 means unlimited). %14+% * chunks that can be stored (0 means unlimited).
*/ %14+% */
png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT; %14+% png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT;
#endif #endif
/* New member added in libpng-1.0.25 and 1.2.17 */ /* New member added in libpng-1.0.25 and 1.2.17 */
@ -1508,7 +1527,7 @@ struct png_struct_def
/* This triggers a compiler error in png.c, if png.c and png.h /* This triggers a compiler error in png.c, if png.c and png.h
* do not agree upon the version number. * do not agree upon the version number.
*/ */
typedef png_structp version_1_4_15beta01; typedef png_structp version_%_VER_%;
typedef png_struct FAR * FAR * png_structpp; typedef png_struct FAR * FAR * png_structpp;
@ -1535,11 +1554,11 @@ PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr,
PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start, PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start,
png_size_t num_to_check)); png_size_t num_to_check));
/* Simple signature checking function. This is the same as calling %14+%/* Simple signature checking function. This is the same as calling
* png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). %14+% * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n).
*/ %14+% */
#define png_check_sig(sig,n) !png_sig_cmp((sig), 0, (n)) %14+%#define png_check_sig(sig,n) !png_sig_cmp((sig), 0, (n))
%14+%
/* Allocate and initialize png_ptr struct for reading, and any other memory. */ /* Allocate and initialize png_ptr struct for reading, and any other memory. */
PNG_EXPORT(png_structp,png_create_read_struct) PNG_EXPORT(png_structp,png_create_read_struct)
PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
@ -2031,17 +2050,22 @@ PNG_EXPORT(void,png_set_mem_fn) PNGARG((png_structp png_ptr,
PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_const_structp png_ptr)); PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_const_structp png_ptr));
#endif #endif
#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED %12-%#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
%12-% defined(PNG_LEGACY_SUPPORTED)
%14+%#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp
png_ptr, png_user_transform_ptr read_user_transform_fn)); png_ptr, png_user_transform_ptr read_user_transform_fn));
#endif #endif
#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED %12-%#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
%12-% defined(PNG_LEGACY_SUPPORTED)
%14+%#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp
png_ptr, png_user_transform_ptr write_user_transform_fn)); png_ptr, png_user_transform_ptr write_user_transform_fn));
#endif #endif
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
%12-% defined(PNG_LEGACY_SUPPORTED) || \
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
PNG_EXPORT(void,png_set_user_transform_info) PNGARG((png_structp PNG_EXPORT(void,png_set_user_transform_info) PNGARG((png_structp
png_ptr, png_voidp user_transform_ptr, int user_transform_depth, png_ptr, png_voidp user_transform_ptr, int user_transform_depth,
@ -2084,9 +2108,9 @@ PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr,
PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr, PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr,
png_alloc_size_t size)) PNG_ALLOCATED; png_alloc_size_t size)) PNG_ALLOCATED;
/* Added at libpng version 1.4.0 */ %14+%/* Added at libpng version 1.4.0 */
PNG_EXPORT(png_voidp,png_calloc) PNGARG((png_structp png_ptr, %14+%PNG_EXPORT(png_voidp,png_calloc) PNGARG((png_structp png_ptr,
png_alloc_size_t size)) PNG_ALLOCATED; %14+% png_alloc_size_t size)) PNG_ALLOCATED;
/* Added at libpng version 1.2.4 */ /* Added at libpng version 1.2.4 */
PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr, PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr,
@ -2098,10 +2122,12 @@ PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
/* Free data that was allocated internally */ /* Free data that was allocated internally */
PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr, PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
png_infop info_ptr, png_uint_32 free_me, int num)); png_infop info_ptr, png_uint_32 free_me, int num));
%12-%#ifdef PNG_FREE_ME_SUPPORTED
/* Reassign responsibility for freeing existing data, whether allocated /* Reassign responsibility for freeing existing data, whether allocated
* by libpng or by the application */ * by libpng or by the application */
PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr, PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr,
png_infop info_ptr, int freer, png_uint_32 mask)); png_infop info_ptr, int freer, png_uint_32 mask));
%12-%#endif
/* Assignments for png_data_freer */ /* Assignments for png_data_freer */
#define PNG_DESTROY_WILL_FREE_DATA 1 #define PNG_DESTROY_WILL_FREE_DATA 1
#define PNG_SET_WILL_FREE_DATA 1 #define PNG_SET_WILL_FREE_DATA 1
@ -2455,13 +2481,15 @@ PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr,
#ifdef PNG_tRNS_SUPPORTED #ifdef PNG_tRNS_SUPPORTED
PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_const_structp png_ptr, PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_const_structp png_ptr,
png_infop info_ptr, png_bytep *trans_alpha, int *num_trans, %12-% png_infop info_ptr, png_bytep *trans, int *num_trans,
%14+% png_infop info_ptr, png_bytep *trans_alpha, int *num_trans,
png_color_16p *trans_color)); png_color_16p *trans_color));
#endif #endif
#ifdef PNG_tRNS_SUPPORTED #ifdef PNG_tRNS_SUPPORTED
PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr, PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr,
png_infop info_ptr, png_bytep trans_alpha, int num_trans, %12-% png_infop info_ptr, png_bytep trans, int num_trans,
%14+% png_infop info_ptr, png_bytep trans_alpha, int num_trans,
png_color_16p trans_color)); png_color_16p trans_color));
#endif #endif

103
pngconf.h
View File

@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng /* pngconf.h - machine configurable file for libpng
* *
* libpng version 1.4.15beta01 - January 27, 2015 * libpng version %VER% - %DATE%
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2011 Glenn Randers-Pehrson * Copyright (c) 1998-2011 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@ -59,7 +59,7 @@
* distinguish your DLL from those of the official release. These * distinguish your DLL from those of the official release. These
* correspond to the trailing letters that come after the version * correspond to the trailing letters that come after the version
* number and must match your private DLL name> * number and must match your private DLL name>
* e.g. // private DLL "libpng14gx.dll" * e.g. // private DLL "libpng%NN%gx.dll"
* #define PNG_USER_DLLFNAME_POSTFIX "gx" * #define PNG_USER_DLLFNAME_POSTFIX "gx"
* *
* The following macros are also at your disposal if you want to complete the * The following macros are also at your disposal if you want to complete the
@ -352,7 +352,8 @@
#endif #endif
/* Enough people need this for various reasons to include it here */ /* Enough people need this for various reasons to include it here */
#if !defined(MACOS) && !defined(RISCOS) %12-%#if !defined(MACOS) && !defined(RISCOS) && !defined(_WIN32_WCE)
%14+%#if !defined(MACOS) && !defined(RISCOS)
# include <sys/types.h> # include <sys/types.h>
#endif #endif
@ -499,12 +500,46 @@
* 1.4.0) * 1.4.0)
*/ */
%12-%/* The following support, added after version 1.0.0, can be turned off
%12-% * here en masse by defining PNG_LEGACY_SUPPORTED in case you need binary
%12-% * compatibility with old applications that require the length of
%12-% * png_struct and png_info to remain unchanged.
%12-% */
%12-%
%12-%#ifdef PNG_LEGACY_SUPPORTED
%12-%# define PNG_NO_FREE_ME
%12-%# define PNG_NO_READ_UNKNOWN_CHUNKS
%12-%# define PNG_NO_WRITE_UNKNOWN_CHUNKS
%12-%# define PNG_NO_HANDLE_AS_UNKNOWN
%12-%# define PNG_NO_READ_USER_CHUNKS
%12-%# define PNG_NO_READ_iCCP
%12-%# define PNG_NO_WRITE_iCCP
%12-%# define PNG_NO_READ_iTXt
%12-%# define PNG_NO_WRITE_iTXt
%12-%# define PNG_NO_READ_sCAL
%12-%# define PNG_NO_WRITE_sCAL
%12-%# define PNG_NO_READ_sPLT
%12-%# define PNG_NO_WRITE_sPLT
%12-%# define PNG_NO_INFO_IMAGE
%12-%# define PNG_NO_READ_RGB_TO_GRAY
%12-%# define PNG_NO_READ_USER_TRANSFORM
%12-%# define PNG_NO_WRITE_USER_TRANSFORM
%12-%# define PNG_NO_USER_MEM
%12-%# define PNG_NO_READ_EMPTY_PLTE
%12-%# define PNG_NO_MNG_FEATURES
%12-%# define PNG_NO_FIXED_POINT_SUPPORTED
%12-%#endif
%12-%
/* Ignore attempt to turn off both floating and fixed point support */ /* Ignore attempt to turn off both floating and fixed point support */
#if !defined(PNG_FLOATING_POINT_SUPPORTED) || \ #if !defined(PNG_FLOATING_POINT_SUPPORTED) || \
!defined(PNG_NO_FIXED_POINT_SUPPORTED) !defined(PNG_NO_FIXED_POINT_SUPPORTED)
# define PNG_FIXED_POINT_SUPPORTED # define PNG_FIXED_POINT_SUPPORTED
#endif #endif
%12-%#ifndef PNG_NO_FREE_ME
%12-%# define PNG_FREE_ME_SUPPORTED
%12-%#endif
%12-%
#ifdef PNG_READ_SUPPORTED #ifdef PNG_READ_SUPPORTED
/* PNG_READ_TRANSFORMS_NOT_SUPPORTED is deprecated. */ /* PNG_READ_TRANSFORMS_NOT_SUPPORTED is deprecated. */
@ -672,7 +707,10 @@
#endif /* PNG_WRITE_SUPPORTED */ #endif /* PNG_WRITE_SUPPORTED */
#define PNG_NO_ERROR_NUMBERS %14+%#define PNG_NO_ERROR_NUMBERS
%12-%#ifndef PNG_NO_ERROR_NUMBERS
%12-%# define PNG_ERROR_NUMBERS_SUPPORTED
%12-%#endif
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
@ -754,23 +792,23 @@
# define PNG_USER_CHUNK_MALLOC_MAX 0 # define PNG_USER_CHUNK_MALLOC_MAX 0
#endif #endif
/* Added at libpng-1.4.0 */ %14+%/* Added at libpng-1.4.0 */
#if !defined(PNG_NO_IO_STATE) && !defined(PNG_IO_STATE_SUPPORTED) %14+%#if !defined(PNG_NO_IO_STATE) && !defined(PNG_IO_STATE_SUPPORTED)
# define PNG_IO_STATE_SUPPORTED %14+%# define PNG_IO_STATE_SUPPORTED
#endif %14+%#endif
%14+%
#ifndef PNG_LITERAL_SHARP %14+%#ifndef PNG_LITERAL_SHARP
# define PNG_LITERAL_SHARP 0x23 %14+%# define PNG_LITERAL_SHARP 0x23
#endif %14+%#endif
#ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET %14+%#ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET
# define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b %14+%# define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b
#endif %14+%#endif
#ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET %14+%#ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET
# define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d %14+%# define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d
#endif %14+%#endif
#ifndef PNG_STRING_NEWLINE %14+%#ifndef PNG_STRING_NEWLINE
#define PNG_STRING_NEWLINE "\n" %14+%#define PNG_STRING_NEWLINE "\n"
#endif %14+%#endif
/* These are currently experimental features, define them if you want */ /* These are currently experimental features, define them if you want */
@ -791,9 +829,9 @@
#endif #endif
*/ */
#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) %14+%#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS)
# define PNG_USE_READ_MACROS %14+%# define PNG_USE_READ_MACROS
#endif %14+%#endif
/* Buggy compilers (e.g., gcc 2.7.2.2) need PNG_NO_POINTER_INDEXING */ /* Buggy compilers (e.g., gcc 2.7.2.2) need PNG_NO_POINTER_INDEXING */
@ -802,6 +840,13 @@
# define PNG_POINTER_INDEXING_SUPPORTED # define PNG_POINTER_INDEXING_SUPPORTED
#endif #endif
%12-%/* These functions are turned off by default, as they will be phased
%12-% * out.
%12-% */
%12-%/*
%12-%#define PNG_USELESS_TESTS_SUPPORTED
%12-%#define PNG_CORRECT_PALETTE_SUPPORTED
%12-%*/
/* Any chunks you are not interested in, you can undef here. The /* Any chunks you are not interested in, you can undef here. The
* ones that allocate memory may be expecially important (hIST, * ones that allocate memory may be expecially important (hIST,
@ -1139,7 +1184,8 @@ typedef unsigned char png_byte;
#define png_sizeof(x) (sizeof (x)) #define png_sizeof(x) (sizeof (x))
/* The following is needed for medium model support. It cannot be in the /* The following is needed for medium model support. It cannot be in the
* pngpriv.h header. Needs modification for other compilers besides %12-% * PNG_INTERNAL section. Needs modification for other compilers besides
%14+% * pngpriv.h header. Needs modification for other compilers besides
* MSC. Model independent support declares all arrays and pointers to be * MSC. Model independent support declares all arrays and pointers to be
* large using the far keyword. The zlib version used must also support * large using the far keyword. The zlib version used must also support
* model independent data. As of version zlib 1.0.4, the necessary changes * model independent data. As of version zlib 1.0.4, the necessary changes
@ -1214,7 +1260,11 @@ typedef char FAR * png_charp;
typedef png_fixed_point FAR * png_fixed_point_p; typedef png_fixed_point FAR * png_fixed_point_p;
#ifndef PNG_NO_STDIO #ifndef PNG_NO_STDIO
%12-%# ifdef _WIN32_WCE
%12-%typedef HANDLE png_FILE_p;
%12-%# else
typedef FILE * png_FILE_p; typedef FILE * png_FILE_p;
%12-%# endif
#endif #endif
#ifdef PNG_FLOATING_POINT_SUPPORTED #ifdef PNG_FLOATING_POINT_SUPPORTED
@ -1370,7 +1420,8 @@ typedef char FAR * FAR * FAR * png_charppp;
* Added at libpng-1.2.41. * Added at libpng-1.2.41.
*/ */
#ifndef PNG_NO_PEDANTIC_WARNINGS %12-%#ifdef PNG_PEDANTIC_WARNINGS
%14+%#ifndef PNG_NO_PEDANTIC_WARNINGS
# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED # ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED
# define PNG_PEDANTIC_WARNINGS_SUPPORTED # define PNG_PEDANTIC_WARNINGS_SUPPORTED
# endif # endif

View File

@ -1,7 +1,7 @@
/* pngpriv.h - private declarations for use inside libpng /* pngpriv.h - private declarations for use inside libpng
* *
* libpng version 1.4.15beta01 - January 27, 2015 * libpng version %VER% - %DATE%
* For conditions of distribution and use, see copyright notice in png.h * For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2014 Glenn Randers-Pehrson * Copyright (c) 1998-2014 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@ -163,9 +163,12 @@
#define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200 #define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200
#define PNG_FLAG_CRC_CRITICAL_USE 0x0400 #define PNG_FLAG_CRC_CRITICAL_USE 0x0400
#define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800 #define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800
/* 0x1000 unused */ %14+% /* 0x1000 unused */
/* 0x2000 unused */ %14+% /* 0x2000 unused */
/* 0x4000 unused */ %14+% /* 0x4000 unused */
%12-%#define PNG_FLAG_FREE_PLTE 0x1000
%12-%#define PNG_FLAG_FREE_TRNS 0x2000
%12-%#define PNG_FLAG_FREE_HIST 0x4000
#define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000L #define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000L
#define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000L #define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000L
#define PNG_FLAG_LIBRARY_MISMATCH 0x20000L #define PNG_FLAG_LIBRARY_MISMATCH 0x20000L
@ -625,14 +628,14 @@ PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row,
#ifdef PNG_READ_BACKGROUND_SUPPORTED #ifdef PNG_READ_BACKGROUND_SUPPORTED
#ifdef PNG_READ_GAMMA_SUPPORTED #ifdef PNG_READ_GAMMA_SUPPORTED
PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
png_color_16p trans_color, png_color_16p background, png_color_16p %TV%, png_color_16p background,
png_color_16p background_1, png_color_16p background_1,
png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1, png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1,
png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1, png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1,
png_uint_16pp gamma_16_to_1, int gamma_shift)); png_uint_16pp gamma_16_to_1, int gamma_shift));
#else #else
PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
png_color_16p trans_color, png_color_16p background)); png_color_16p %TV%, png_color_16p background));
#endif #endif
#endif #endif
@ -825,7 +828,8 @@ PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr,
#ifdef PNG_cHRM_SUPPORTED #ifdef PNG_cHRM_SUPPORTED
#ifdef PNG_CHECK_cHRM_SUPPORTED #ifdef PNG_CHECK_cHRM_SUPPORTED
/* Added at libpng version 1.2.34 and 1.4.0 */ %12-%/* Added at libpng version 1.2.34 */
%14+%/* Added at libpng version 1.2.34 and 1.4.0 */
PNG_EXTERN void png_64bit_product PNGARG((long v1, long v2, PNG_EXTERN void png_64bit_product PNGARG((long v1, long v2,
unsigned long *hi_product, unsigned long *lo_product)); unsigned long *hi_product, unsigned long *lo_product));
#endif #endif

View File

@ -1,8 +1,8 @@
/* pngrtran.c - transforms the data in a row for PNG readers /* pngrtran.c - transforms the data in a row for PNG readers
* *
* Last changed in libpng 1.4.13 [February 6, 2014] * Last changed in libpng 1.4.15 [%RDATE%]
* Copyright (c) 1998-2014 Glenn Randers-Pehrson * Copyright (c) 1998-2015 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
* *
@ -2370,10 +2370,14 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
for (i = 0; i < row_width; i++) for (i = 0; i < row_width; i++)
{ {
png_uint_16 red, green, blue, w; png_uint_16 red, green, blue, w;
png_byte hi,lo;
red = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2; hi=*(sp)++; lo=*(sp)++;
green = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2; red = (png_uint_16)((hi << 8) | (lo));
blue = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2; hi=*(sp)++; lo=*(sp)++;
green = (png_uint_16)((hi << 8) | (lo));
hi=*(sp)++; lo=*(sp)++;
blue = (png_uint_16)((hi << 8) | (lo));
if (red == green && red == blue) if (red == green && red == blue)
w = red; w = red;
@ -2405,10 +2409,14 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
for (i = 0; i < row_width; i++) for (i = 0; i < row_width; i++)
{ {
png_uint_16 red, green, blue, gray16; png_uint_16 red, green, blue, gray16;
png_byte hi,lo;
red = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2; hi=*(sp)++; lo=*(sp)++;
green = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2; red = (png_uint_16)((hi << 8) | (lo));
blue = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2; hi=*(sp)++; lo=*(sp)++;
green = (png_uint_16)((hi << 8) | (lo));
hi=*(sp)++; lo=*(sp)++;
blue = (png_uint_16)((hi << 8) | (lo));
if (red != green || red != blue) if (red != green || red != blue)
rgb_error |= 1; rgb_error |= 1;
@ -2468,10 +2476,14 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
for (i = 0; i < row_width; i++) for (i = 0; i < row_width; i++)
{ {
png_uint_16 red, green, blue, w; png_uint_16 red, green, blue, w;
png_byte hi,lo;
red = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2; hi=*(sp)++; lo=*(sp)++;
green = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2; red = (png_uint_16)((hi << 8) | (lo));
blue = (png_uint_16)(((*(sp))<<8) | *(sp+1)); sp+=2; hi=*(sp)++; lo=*(sp)++;
green = (png_uint_16)((hi << 8) | (lo));
hi=*(sp)++; lo=*(sp)++;
blue = (png_uint_16)((hi << 8) | (lo));
if (red == green && red == blue) if (red == green && red == blue)
w = red; w = red;
@ -2505,9 +2517,15 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
for (i = 0; i < row_width; i++) for (i = 0; i < row_width; i++)
{ {
png_uint_16 red, green, blue, gray16; png_uint_16 red, green, blue, gray16;
red = (png_uint_16)((*(sp)<<8) | *(sp+1)); sp+=2; png_byte hi,lo;
green = (png_uint_16)((*(sp)<<8) | *(sp+1)); sp+=2;
blue = (png_uint_16)((*(sp)<<8) | *(sp+1)); sp+=2; hi=*(sp)++; lo=*(sp)++;
red = (png_uint_16)((hi << 8) | (lo));
hi=*(sp)++; lo=*(sp)++;
green = (png_uint_16)((hi << 8) | (lo));
hi=*(sp)++; lo=*(sp)++;
blue = (png_uint_16)((hi << 8) | (lo));
if (red != green || red != blue) if (red != green || red != blue)
rgb_error |= 1; rgb_error |= 1;
gray16 = (png_uint_16)((rc*red + gc*green + bc*blue)>>15); gray16 = (png_uint_16)((rc*red + gc*green + bc*blue)>>15);

View File

@ -1,8 +1,8 @@
/* pngset.c - storage of image information into info struct /* pngset.c - storage of image information into info struct
* *
* Last changed in libpng 1.4.13 [February 6, 2014] * Last changed in libpng 1.4.15 [%RDATE%]
* Copyright (c) 1998-2014 Glenn Randers-Pehrson * Copyright (c) 1998-2015 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
* *
@ -150,7 +150,7 @@ png_set_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point
if (png_ptr == NULL || info_ptr == NULL) if (png_ptr == NULL || info_ptr == NULL)
return; return;
if (int_gamma > (png_fixed_point)PNG_UINT_31_MAX) if (int_gamma >= (png_fixed_point)PNG_UINT_31_MAX)
{ {
png_warning(png_ptr, "Limiting gamma to 21474.83"); png_warning(png_ptr, "Limiting gamma to 21474.83");
png_gamma=PNG_UINT_31_MAX; png_gamma=PNG_UINT_31_MAX;

View File

@ -1,8 +1,8 @@
/* pngwrite.c - general routines to write a PNG file /* pngwrite.c - general routines to write a PNG file
* *
* Last changed in libpng 1.4.14 [November 20, 2014] * Last changed in libpng 1.4.15 [%RDATE%]
* Copyright (c) 1998-2014 Glenn Randers-Pehrson * Copyright (c) 1998-2015 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
* *
@ -1063,14 +1063,13 @@ png_set_filter(png_structp png_ptr, int method, int filters)
{ {
switch (filters & (PNG_ALL_FILTERS | 0x07)) switch (filters & (PNG_ALL_FILTERS | 0x07))
{ {
case PNG_FILTER_VALUE_NONE:
png_ptr->do_filter = PNG_FILTER_NONE; break;
#ifdef PNG_WRITE_FILTER_SUPPORTED #ifdef PNG_WRITE_FILTER_SUPPORTED
case 5: case 5:
case 6: case 6:
case 7: png_warning(png_ptr, "Unknown row filter for method 0"); case 7: png_warning(png_ptr, "Unknown row filter for method 0");
#endif /* PNG_WRITE_FILTER_SUPPORTED */ break;
case PNG_FILTER_VALUE_NONE:
png_ptr->do_filter = PNG_FILTER_NONE; break;
#ifdef PNG_WRITE_FILTER_SUPPORTED
case PNG_FILTER_VALUE_SUB: case PNG_FILTER_VALUE_SUB:
png_ptr->do_filter = PNG_FILTER_SUB; break; png_ptr->do_filter = PNG_FILTER_SUB; break;
case PNG_FILTER_VALUE_UP: case PNG_FILTER_VALUE_UP:
@ -1082,6 +1081,7 @@ png_set_filter(png_structp png_ptr, int method, int filters)
default: png_ptr->do_filter = (png_byte)filters; break; default: png_ptr->do_filter = (png_byte)filters; break;
#else #else
default: png_warning(png_ptr, "Unknown row filter for method 0"); default: png_warning(png_ptr, "Unknown row filter for method 0");
break;
#endif /* PNG_WRITE_FILTER_SUPPORTED */ #endif /* PNG_WRITE_FILTER_SUPPORTED */
} }

View File

@ -1,8 +1,8 @@
/* pngwutil.c - utilities to write a PNG file /* pngwutil.c - utilities to write a PNG file
* *
* Last changed in libpng 1.4.8 [July 7, 2011] * Last changed in libpng 1.4.15 [%RDATE%]
* Copyright (c) 1998-2011 Glenn Randers-Pehrson * Copyright (c) 1998-2015 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
* *
@ -283,7 +283,7 @@ png_text_compress(png_structp png_ptr,
old_ptr = comp->output_ptr; old_ptr = comp->output_ptr;
comp->output_ptr = (png_charpp)png_malloc(png_ptr, comp->output_ptr = (png_charpp)png_malloc(png_ptr,
(png_alloc_size_t) (png_alloc_size_t)
(comp->max_output_ptr * png_sizeof(png_charpp))); (comp->max_output_ptr * png_sizeof(png_charp)));
png_memcpy(comp->output_ptr, old_ptr, old_max png_memcpy(comp->output_ptr, old_ptr, old_max
* png_sizeof(png_charp)); * png_sizeof(png_charp));
png_free(png_ptr, old_ptr); png_free(png_ptr, old_ptr);