Show
Ignore:
Timestamp:
02/15/10 11:56:43 (2 years ago)
Author:
Carsten
Message:

Merged latest libpng upgrade in vendor/libpng to cafu/trunk/ExtLibs/libpng.

Note that this implements the "Vendor Branches" strategy described in the Subversion book at
 http://svnbook.red-bean.com/nightly/en/svn.branchmerge.basicmerging.html
 http://svnbook.red-bean.com/nightly/en/svn.advanced.vendorbr.html

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • cafu/trunk/ExtLibs/libpng/pngrutil.c

    r11 r44  
    22/* pngrutil.c - utilities to read a PNG file 
    33 * 
    4  * Last changed in libpng 1.2.38 [July 16, 2009] 
     4 * Last changed in libpng 1.2.41 [December 3, 2009] 
    55 * Copyright (c) 1998-2009 Glenn Randers-Pehrson 
    66 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) 
     
    1616 
    1717#define PNG_INTERNAL 
     18#define PNG_NO_PEDANTIC_WARNINGS 
    1819#include "png.h" 
    19 #if defined(PNG_READ_SUPPORTED) 
     20#ifdef PNG_READ_SUPPORTED 
    2021 
    2122#if defined(_WIN32_WCE) && (_WIN32_WCE<0x500) 
     
    2425 
    2526#ifdef PNG_FLOATING_POINT_SUPPORTED 
    26 #  if defined(WIN32_WCE_OLD) 
     27#  ifdef WIN32_WCE_OLD 
    2728/* The strtod() function is not supported on WindowsCE */ 
    2829__inline double png_strtod(png_structp png_ptr, PNG_CONST char *nptr, char **endptr) 
     
    229230                              png_size_t prefix_size, png_size_t *newlength) 
    230231{ 
    231    static PNG_CONST char msg[] = "Error decoding compressed text"; 
     232   static PNG_CONST char msg[] = "Error decoding compressed chunk"; 
    232233   png_charp text; 
    233234   png_size_t text_size; 
     
    303304 
    304305               tmp = text; 
    305                text = (png_charp)png_malloc_warn(png_ptr, 
    306                   (png_uint_32)(text_size + 
    307                   png_ptr->zbuf_size - png_ptr->zstream.avail_out + 1)); 
     306                  text = (png_charp)png_malloc_warn(png_ptr, 
     307                     (png_uint_32)(text_size + 
     308                      png_ptr->zbuf_size - png_ptr->zstream.avail_out + 1)); 
    308309               if (text == NULL) 
    309310               { 
     
    332333      if (ret != Z_STREAM_END) 
    333334      { 
    334 #if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE) 
     335#if defined(PNG_STDIO_SUPPORTED) && !defined(_WIN32_WCE) 
    335336         char umsg[52]; 
    336337 
     
    379380   else /* if (comp_type != PNG_COMPRESSION_TYPE_BASE) */ 
    380381   { 
    381 #if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE) 
     382#if defined(PNG_STDIO_SUPPORTED) && !defined(_WIN32_WCE) 
    382383      char umsg[50]; 
    383384 
     
    431432   png_ptr->interlaced = (png_byte)interlace_type; 
    432433   png_ptr->color_type = (png_byte)color_type; 
    433 #if defined(PNG_MNG_FEATURES_SUPPORTED) 
     434#ifdef PNG_MNG_FEATURES_SUPPORTED 
    434435   png_ptr->filter_type = (png_byte)filter_type; 
    435436#endif 
     
    474475   png_color palette[PNG_MAX_PALETTE_LENGTH]; 
    475476   int num, i; 
    476 #ifndef PNG_NO_POINTER_INDEXING 
     477#ifdef PNG_POINTER_INDEXING_SUPPORTED 
    477478   png_colorp pal_ptr; 
    478479#endif 
     
    502503      return; 
    503504   } 
    504 #if !defined(PNG_READ_OPT_PLTE_SUPPORTED) 
     505#ifndef PNG_READ_OPT_PLTE_SUPPORTED 
    505506   if (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE) 
    506507   { 
     
    527528   num = (int)length / 3; 
    528529 
    529 #ifndef PNG_NO_POINTER_INDEXING 
     530#ifdef PNG_POINTER_INDEXING_SUPPORTED 
    530531   for (i = 0, pal_ptr = palette; i < num; i++, pal_ptr++) 
    531532   { 
     
    555556    * we will act as though it is. 
    556557    */ 
    557 #if !defined(PNG_READ_OPT_PLTE_SUPPORTED) 
     558#ifndef PNG_READ_OPT_PLTE_SUPPORTED 
    558559   if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) 
    559560#endif 
     
    561562      png_crc_finish(png_ptr, 0); 
    562563   } 
    563 #if !defined(PNG_READ_OPT_PLTE_SUPPORTED) 
     564#ifndef PNG_READ_OPT_PLTE_SUPPORTED 
    564565   else if (png_crc_error(png_ptr))  /* Only if we have a CRC error */ 
    565566   { 
     
    590591   png_set_PLTE(png_ptr, info_ptr, palette, num); 
    591592 
    592 #if defined(PNG_READ_tRNS_SUPPORTED) 
     593#ifdef PNG_READ_tRNS_SUPPORTED 
    593594   if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) 
    594595   { 
     
    632633} 
    633634 
    634 #if defined(PNG_READ_gAMA_SUPPORTED) 
     635#ifdef PNG_READ_gAMA_SUPPORTED 
    635636void /* PRIVATE */ 
    636637png_handle_gAMA(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    657658 
    658659   if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA) 
    659 #if defined(PNG_READ_sRGB_SUPPORTED) 
     660#ifdef PNG_READ_sRGB_SUPPORTED 
    660661      && !(info_ptr->valid & PNG_INFO_sRGB) 
    661662#endif 
     
    687688      } 
    688689 
    689 #if defined(PNG_READ_sRGB_SUPPORTED) 
     690#ifdef PNG_READ_sRGB_SUPPORTED 
    690691   if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_sRGB)) 
    691692      if (PNG_OUT_OF_RANGE(igamma, 45500L, 500)) 
     
    693694         png_warning(png_ptr, 
    694695           "Ignoring incorrect gAMA value when sRGB is also present"); 
    695 #ifndef PNG_NO_CONSOLE_IO 
     696#ifdef PNG_CONSOLE_IO_SUPPORTED 
    696697         fprintf(stderr, "gamma = (%d/100000)", (int)igamma); 
    697698#endif 
     
    713714#endif 
    714715 
    715 #if defined(PNG_READ_sBIT_SUPPORTED) 
     716#ifdef PNG_READ_sBIT_SUPPORTED 
    716717void /* PRIVATE */ 
    717718png_handle_sBIT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    779780#endif 
    780781 
    781 #if defined(PNG_READ_cHRM_SUPPORTED) 
     782#ifdef PNG_READ_cHRM_SUPPORTED 
    782783void /* PRIVATE */ 
    783784png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    807808 
    808809   if (info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM) 
    809 #if defined(PNG_READ_sRGB_SUPPORTED) 
     810#ifdef PNG_READ_sRGB_SUPPORTED 
    810811      && !(info_ptr->valid & PNG_INFO_sRGB) 
    811812#endif 
     
    859860#endif 
    860861 
    861 #if defined(PNG_READ_sRGB_SUPPORTED) 
     862#ifdef PNG_READ_sRGB_SUPPORTED 
    862863   if ((info_ptr != NULL) && (info_ptr->valid & PNG_INFO_sRGB)) 
    863864      { 
     
    873874            png_warning(png_ptr, 
    874875              "Ignoring incorrect cHRM value when sRGB is also present"); 
    875 #ifndef PNG_NO_CONSOLE_IO 
     876#ifdef PNG_CONSOLE_IO_SUPPORTED 
    876877#ifdef PNG_FLOATING_POINT_SUPPORTED 
    877878            fprintf(stderr, "wx=%f, wy=%f, rx=%f, ry=%f\n", 
     
    885886               int_x_green, int_y_green, int_x_blue, int_y_blue); 
    886887#endif 
    887 #endif /* PNG_NO_CONSOLE_IO */ 
     888#endif /* PNG_CONSOLE_IO_SUPPORTED */ 
    888889         } 
    889890         return; 
     
    903904#endif 
    904905 
    905 #if defined(PNG_READ_sRGB_SUPPORTED) 
     906#ifdef PNG_READ_sRGB_SUPPORTED 
    906907void /* PRIVATE */ 
    907908png_handle_sRGB(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    965966         png_warning(png_ptr, 
    966967           "Ignoring incorrect gAMA value when sRGB is also present"); 
    967 #ifndef PNG_NO_CONSOLE_IO 
     968#ifdef PNG_CONSOLE_IO_SUPPORTED 
    968969#  ifdef PNG_FIXED_POINT_SUPPORTED 
    969970         fprintf(stderr, "incorrect gamma=(%d/100000)\n", 
     
    10011002#endif /* PNG_READ_sRGB_SUPPORTED */ 
    10021003 
    1003 #if defined(PNG_READ_iCCP_SUPPORTED) 
     1004#ifdef PNG_READ_iCCP_SUPPORTED 
    10041005void /* PRIVATE */ 
    10051006png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    11211122#endif /* PNG_READ_iCCP_SUPPORTED */ 
    11221123 
    1123 #if defined(PNG_READ_sPLT_SUPPORTED) 
     1124#ifdef PNG_READ_sPLT_SUPPORTED 
    11241125void /* PRIVATE */ 
    11251126png_handle_sPLT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    11281129   png_bytep entry_start; 
    11291130   png_sPLT_t new_palette; 
    1130 #ifdef PNG_NO_POINTER_INDEXING 
     1131#ifdef PNG_POINTER_INDEXING_SUPPORTED 
    11311132   png_sPLT_entryp pp; 
    11321133#endif 
     
    11361137 
    11371138   png_debug(1, "in png_handle_sPLT"); 
    1138  
    11391139 
    11401140   if (!(png_ptr->mode & PNG_HAVE_IHDR)) 
     
    12111211   } 
    12121212 
    1213 #ifndef PNG_NO_POINTER_INDEXING 
     1213#ifdef PNG_POINTER_INDEXING_SUPPORTED 
    12141214   for (i = 0; i < new_palette.nentries; i++) 
    12151215   { 
    1216       png_sPLT_entryp pp = new_palette.entries + i; 
     1216      pp = new_palette.entries + i; 
    12171217 
    12181218      if (new_palette.depth == 8) 
     
    12661266#endif /* PNG_READ_sPLT_SUPPORTED */ 
    12671267 
    1268 #if defined(PNG_READ_tRNS_SUPPORTED) 
     1268#ifdef PNG_READ_tRNS_SUPPORTED 
    12691269void /* PRIVATE */ 
    12701270png_handle_tRNS(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    13611361#endif 
    13621362 
    1363 #if defined(PNG_READ_bKGD_SUPPORTED) 
     1363#ifdef PNG_READ_bKGD_SUPPORTED 
    13641364void /* PRIVATE */ 
    13651365png_handle_bKGD(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    14501450#endif 
    14511451 
    1452 #if defined(PNG_READ_hIST_SUPPORTED) 
     1452#ifdef PNG_READ_hIST_SUPPORTED 
    14531453void /* PRIVATE */ 
    14541454png_handle_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    15041504#endif 
    15051505 
    1506 #if defined(PNG_READ_pHYs_SUPPORTED) 
     1506#ifdef PNG_READ_pHYs_SUPPORTED 
    15071507void /* PRIVATE */ 
    15081508png_handle_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    15471547#endif 
    15481548 
    1549 #if defined(PNG_READ_oFFs_SUPPORTED) 
     1549#ifdef PNG_READ_oFFs_SUPPORTED 
    15501550void /* PRIVATE */ 
    15511551png_handle_oFFs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    15901590#endif 
    15911591 
    1592 #if defined(PNG_READ_pCAL_SUPPORTED) 
     1592#ifdef PNG_READ_pCAL_SUPPORTED 
    15931593/* Read the pCAL chunk (described in the PNG Extensions document) */ 
    15941594void /* PRIVATE */ 
     
    17241724#endif 
    17251725 
    1726 #if defined(PNG_READ_sCAL_SUPPORTED) 
     1726#ifdef PNG_READ_sCAL_SUPPORTED 
    17271727/* Read the sCAL chunk */ 
    17281728void /* PRIVATE */ 
     
    18671867#endif 
    18681868 
    1869 #if defined(PNG_READ_tIME_SUPPORTED) 
     1869#ifdef PNG_READ_tIME_SUPPORTED 
    18701870void /* PRIVATE */ 
    18711871png_handle_tIME(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) 
     
    19101910#endif 
    19111911 
    1912 #if defined(PNG_READ_tEXt_SUPPORTED) 
     1912#ifdef PNG_READ_tEXt_SUPPORTED 
    19131913/* Note: this does not properly handle chunks that are > 64K under DOS */ 
    19141914void /* PRIVATE */ 
     
    19241924   png_debug(1, "in png_handle_tEXt"); 
    19251925 
    1926  
    19271926   if (!(png_ptr->mode & PNG_HAVE_IHDR)) 
    19281927      png_error(png_ptr, "Missing IHDR before tEXt"); 
     
    19971996#endif 
    19981997 
    1999 #if defined(PNG_READ_zTXt_SUPPORTED) 
     1998#ifdef PNG_READ_zTXt_SUPPORTED 
    20001999/* Note: this does not correctly handle chunks that are > 64K under DOS */ 
    20012000void /* PRIVATE */ 
     
    20092008 
    20102009   png_debug(1, "in png_handle_zTXt"); 
    2011  
    20122010 
    20132011   if (!(png_ptr->mode & PNG_HAVE_IHDR)) 
     
    21012099#endif 
    21022100 
    2103 #if defined(PNG_READ_iTXt_SUPPORTED) 
     2101#ifdef PNG_READ_iTXt_SUPPORTED 
    21042102/* Note: this does not correctly handle chunks that are > 64K under DOS */ 
    21052103void /* PRIVATE */ 
     
    21142112 
    21152113   png_debug(1, "in png_handle_iTXt"); 
    2116  
    21172114 
    21182115   if (!(png_ptr->mode & PNG_HAVE_IHDR)) 
     
    22432240   png_debug(1, "in png_handle_unknown"); 
    22442241 
    2245  
    22462242   if (png_ptr->mode & PNG_HAVE_IDAT) 
    22472243   { 
     
    22552251   if (!(png_ptr->chunk_name[0] & 0x20)) 
    22562252   { 
    2257 #if defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) 
     2253#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED 
    22582254      if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) != 
    22592255           PNG_HANDLE_CHUNK_ALWAYS 
    2260 #if defined(PNG_READ_USER_CHUNKS_SUPPORTED) 
     2256#ifdef PNG_READ_USER_CHUNKS_SUPPORTED 
    22612257           && png_ptr->read_user_chunk_fn == NULL 
    22622258#endif 
     
    22662262   } 
    22672263 
    2268 #if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) 
     2264#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED 
    22692265   if ((png_ptr->flags & PNG_FLAG_KEEP_UNKNOWN_CHUNKS) 
    2270 #if defined(PNG_READ_USER_CHUNKS_SUPPORTED) 
     2266#ifdef PNG_READ_USER_CHUNKS_SUPPORTED 
    22712267       || (png_ptr->read_user_chunk_fn != NULL) 
    22722268#endif 
     
    22932289         png_crc_read(png_ptr, (png_bytep)png_ptr->unknown_chunk.data, length); 
    22942290       } 
    2295 #if defined(PNG_READ_USER_CHUNKS_SUPPORTED) 
     2291#ifdef PNG_READ_USER_CHUNKS_SUPPORTED 
    22962292       if (png_ptr->read_user_chunk_fn != NULL) 
    22972293       { 
     
    23052301          { 
    23062302             if (!(png_ptr->chunk_name[0] & 0x20)) 
    2307 #if defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) 
     2303#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED 
    23082304                if (png_handle_as_unknown(png_ptr, png_ptr->chunk_name) != 
    23092305                     PNG_HANDLE_CHUNK_ALWAYS) 
     
    23262322   png_crc_finish(png_ptr, skip); 
    23272323 
    2328 #if !defined(PNG_READ_USER_CHUNKS_SUPPORTED) 
     2324#ifndef PNG_READ_USER_CHUNKS_SUPPORTED 
    23292325   info_ptr = info_ptr; /* Quiet compiler warnings about unused info_ptr */ 
    23302326#endif 
     
    23842380            png_uint_32 row_width = png_ptr->width; 
    23852381 
    2386 #if defined(PNG_READ_PACKSWAP_SUPPORTED) 
     2382#ifdef PNG_READ_PACKSWAP_SUPPORTED 
    23872383            if (png_ptr->transformations & PNG_PACKSWAP) 
    23882384            { 
     
    24392435            int value; 
    24402436 
    2441 #if defined(PNG_READ_PACKSWAP_SUPPORTED) 
     2437#ifdef PNG_READ_PACKSWAP_SUPPORTED 
    24422438            if (png_ptr->transformations & PNG_PACKSWAP) 
    24432439            { 
     
    24912487            int value; 
    24922488 
    2493 #if defined(PNG_READ_PACKSWAP_SUPPORTED) 
     2489#ifdef PNG_READ_PACKSWAP_SUPPORTED 
    24942490            if (png_ptr->transformations & PNG_PACKSWAP) 
    24952491            { 
     
    25742570   int pass = png_ptr->pass; 
    25752571   png_uint_32 transformations = png_ptr->transformations; 
    2576 #ifdef PNG_USE_LOCAL_ARRAYS 
    25772572   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ 
    25782573   /* Offset to next interlace block */ 
    25792574   PNG_CONST int png_pass_inc[7] = {8, 8, 4, 4, 2, 2, 1}; 
    2580 #endif 
    25812575 
    25822576   png_debug(1, "in png_do_read_interlace"); 
     
    26002594            int j; 
    26012595 
    2602 #if defined(PNG_READ_PACKSWAP_SUPPORTED) 
     2596#ifdef PNG_READ_PACKSWAP_SUPPORTED 
    26032597            if (transformations & PNG_PACKSWAP) 
    26042598            { 
     
    26532647            png_uint_32 i; 
    26542648 
    2655 #if defined(PNG_READ_PACKSWAP_SUPPORTED) 
     2649#ifdef PNG_READ_PACKSWAP_SUPPORTED 
    26562650            if (transformations & PNG_PACKSWAP) 
    26572651            { 
     
    27092703            int jstop = png_pass_inc[pass]; 
    27102704 
    2711 #if defined(PNG_READ_PACKSWAP_SUPPORTED) 
     2705#ifdef PNG_READ_PACKSWAP_SUPPORTED 
    27122706            if (transformations & PNG_PACKSWAP) 
    27132707            { 
     
    27832777      row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, final_width); 
    27842778   } 
    2785 #if !defined(PNG_READ_PACKSWAP_SUPPORTED) 
     2779#ifndef PNG_READ_PACKSWAP_SUPPORTED 
    27862780   transformations = transformations; /* Silence compiler warning */ 
    27872781#endif 
     
    29122906} 
    29132907 
    2914 #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED 
     2908#ifdef PNG_SEQUENTIAL_READ_SUPPORTED 
    29152909void /* PRIVATE */ 
    29162910png_read_finish_row(png_structp png_ptr) 
    29172911{ 
    2918 #ifdef PNG_USE_LOCAL_ARRAYS 
    29192912#ifdef PNG_READ_INTERLACING_SUPPORTED 
    29202913   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ 
     
    29322925   PNG_CONST int png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; 
    29332926#endif /* PNG_READ_INTERLACING_SUPPORTED */ 
    2934 #endif 
    29352927 
    29362928   png_debug(1, "in png_read_finish_row"); 
     
    30443036   png_ptr->mode |= PNG_AFTER_IDAT; 
    30453037} 
    3046 #endif /* PNG_NO_SEQUENTIAL_READ_SUPPORTED */ 
     3038#endif /* PNG_SEQUENTIAL_READ_SUPPORTED */ 
    30473039 
    30483040void /* PRIVATE */ 
    30493041png_read_start_row(png_structp png_ptr) 
    30503042{ 
    3051 #ifdef PNG_USE_LOCAL_ARRAYS 
    30523043#ifdef PNG_READ_INTERLACING_SUPPORTED 
    30533044   /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ 
     
    30643055   /* Offset to next interlace block in the y direction */ 
    30653056   PNG_CONST int png_pass_yinc[7] = {8, 8, 8, 4, 4, 2, 2}; 
    3066 #endif 
    30673057#endif 
    30683058 
     
    30993089   max_pixel_depth = png_ptr->pixel_depth; 
    31003090 
    3101 #if defined(PNG_READ_PACK_SUPPORTED) 
     3091#ifdef PNG_READ_PACK_SUPPORTED 
    31023092   if ((png_ptr->transformations & PNG_PACK) && png_ptr->bit_depth < 8) 
    31033093      max_pixel_depth = 8; 
    31043094#endif 
    31053095 
    3106 #if defined(PNG_READ_EXPAND_SUPPORTED) 
     3096#ifdef PNG_READ_EXPAND_SUPPORTED 
    31073097   if (png_ptr->transformations & PNG_EXPAND) 
    31083098   { 
     
    31323122#endif 
    31333123 
    3134 #if defined(PNG_READ_FILLER_SUPPORTED) 
     3124#ifdef PNG_READ_FILLER_SUPPORTED 
    31353125   if (png_ptr->transformations & (PNG_FILLER)) 
    31363126   { 
     
    31543144#endif 
    31553145 
    3156 #if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) 
     3146#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED 
    31573147   if (png_ptr->transformations & PNG_GRAY_TO_RGB) 
    31583148   { 
    31593149      if ( 
    3160 #if defined(PNG_READ_EXPAND_SUPPORTED) 
     3150#ifdef PNG_READ_EXPAND_SUPPORTED 
    31613151        (png_ptr->num_trans && (png_ptr->transformations & PNG_EXPAND)) || 
    31623152#endif 
    3163 #if defined(PNG_READ_FILLER_SUPPORTED) 
     3153#ifdef PNG_READ_FILLER_SUPPORTED 
    31643154        (png_ptr->transformations & (PNG_FILLER)) || 
    31653155#endif 
     
    32163206   { 
    32173207     png_free(png_ptr, png_ptr->big_row_buf); 
    3218      png_ptr->big_row_buf = (png_bytep)png_malloc(png_ptr, row_bytes + 64); 
    32193208     if (png_ptr->interlaced) 
    3220        png_memset(png_ptr->big_row_buf, 0, row_bytes + 64); 
     3209        png_ptr->big_row_buf = (png_bytep)png_calloc(png_ptr, 
     3210            row_bytes + 64); 
     3211     else 
     3212        png_ptr->big_row_buf = (png_bytep)png_malloc(png_ptr, 
     3213            row_bytes + 64); 
     3214     png_ptr->old_big_row_buf_size = row_bytes + 64; 
     3215 
     3216     /* Use 32 bytes of padding before and after row_buf. */ 
    32213217     png_ptr->row_buf = png_ptr->big_row_buf + 32; 
    32223218     png_ptr->old_big_row_buf_size = row_bytes + 64;