| Index: third_party/libpng/pngrutil.c
|
| diff --git a/third_party/libpng/pngrutil.c b/third_party/libpng/pngrutil.c
|
| index 9fd48be97ef6c13bddbb1f623654e18d5be093ab..a2b39cc26076b445f7f084ec89d6624af55dc971 100644
|
| --- a/third_party/libpng/pngrutil.c
|
| +++ b/third_party/libpng/pngrutil.c
|
| @@ -1,8 +1,8 @@
|
|
|
| /* pngrutil.c - utilities to read a PNG file
|
| *
|
| - * Last changed in libpng 1.2.43 [February 25, 2010]
|
| - * Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
| + * Last changed in libpng 1.2.44 [June 26, 2010]
|
| + * Copyright (c) 1998-2010 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.)
|
| *
|
| @@ -271,12 +271,14 @@ png_inflate(png_structp png_ptr, const png_byte *data, png_size_t size,
|
| * buffer if available.
|
| */
|
| {
|
| - char *msg, umsg[52];
|
| + PNG_CONST char *msg;
|
| if (png_ptr->zstream.msg != 0)
|
| msg = png_ptr->zstream.msg;
|
| else
|
| {
|
| #if defined(PNG_STDIO_SUPPORTED) && !defined(_WIN32_WCE)
|
| + char umsg[52];
|
| +
|
| switch (ret)
|
| {
|
| case Z_BUF_ERROR:
|
| @@ -341,9 +343,11 @@ png_decompress_chunk(png_structp png_ptr, int comp_type,
|
| if (png_ptr->user_chunk_malloc_max &&
|
| (prefix_size + expanded_size >= png_ptr->user_chunk_malloc_max - 1))
|
| #else
|
| +#ifdef PNG_USER_CHUNK_MALLOC_MAX
|
| if ((PNG_USER_CHUNK_MALLOC_MAX > 0) &&
|
| prefix_size + expanded_size >= PNG_USER_CHUNK_MALLOC_MAX - 1)
|
| #endif
|
| +#endif
|
| png_warning(png_ptr, "Exceeded size limit while expanding chunk");
|
|
|
| /* If the size is zero either there was an error and a message
|
| @@ -351,7 +355,11 @@ png_decompress_chunk(png_structp png_ptr, int comp_type,
|
| * and we have nothing to do - the code will exit through the
|
| * error case below.
|
| */
|
| - else if (expanded_size > 0)
|
| +#if defined(PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED) || \
|
| + defined(PNG_USER_CHUNK_MALLOC_MAX)
|
| + else
|
| +#endif
|
| + if (expanded_size > 0
|
| {
|
| /* Success (maybe) - really uncompress the chunk. */
|
| png_size_t new_size = 0;
|
| @@ -385,10 +393,11 @@ png_decompress_chunk(png_structp png_ptr, int comp_type,
|
|
|
| else /* if (comp_type != PNG_COMPRESSION_TYPE_BASE) */
|
| {
|
| +#if defined(PNG_STDIO_SUPPORTED) && !defined(_WIN32_WCE)
|
| char umsg[50];
|
|
|
| -#if defined(PNG_STDIO_SUPPORTED) && !defined(_WIN32_WCE)
|
| - png_snprintf(umsg, sizeof umsg, "Unknown zTXt compression type %d", comp_type);
|
| + png_snprintf(umsg, sizeof umsg, "Unknown zTXt compression type %d",
|
| + comp_type);
|
| png_warning(png_ptr, umsg);
|
| #else
|
| png_warning(png_ptr, "Unknown zTXt compression type");
|
| @@ -907,9 +916,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
| green_x, green_y, blue_x, blue_y);
|
| #else
|
| fprintf(stderr, "wx=%ld, wy=%ld, rx=%ld, ry=%ld\n",
|
| - int_x_white, int_y_white, int_x_red, int_y_red);
|
| + (long)int_x_white, (long)int_y_white,
|
| + (long)int_x_red, (long)int_y_red);
|
| fprintf(stderr, "gx=%ld, gy=%ld, bx=%ld, by=%ld\n",
|
| - int_x_green, int_y_green, int_x_blue, int_y_blue);
|
| + (long)int_x_green, (long)int_y_green,
|
| + (long)int_x_blue, (long)int_y_blue);
|
| #endif
|
| #endif /* PNG_CONSOLE_IO_SUPPORTED */
|
| }
|
| @@ -1807,6 +1818,7 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
| if (png_ptr->chunkdata == NULL)
|
| {
|
| png_warning(png_ptr, "Out of memory while processing sCAL chunk");
|
| + png_crc_finish(png_ptr, length);
|
| return;
|
| }
|
| slength = (png_size_t)length;
|
| @@ -1828,6 +1840,8 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
| if (*vp)
|
| {
|
| png_warning(png_ptr, "malformed width string in sCAL chunk");
|
| + png_free(png_ptr, png_ptr->chunkdata);
|
| + png_ptr->chunkdata = NULL;
|
| return;
|
| }
|
| #else
|
| @@ -1849,8 +1863,7 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
| if (png_ptr->chunkdata + slength < ep)
|
| {
|
| png_warning(png_ptr, "Truncated sCAL chunk");
|
| -#if defined(PNG_FIXED_POINT_SUPPORTED) && \
|
| - !defined(PNG_FLOATING_POINT_SUPPORTED)
|
| +#if defined(PNG_FIXED_POINT_SUPPORTED) && !defined(PNG_FLOATING_POINT_SUPPORTED)
|
| png_free(png_ptr, swidth);
|
| #endif
|
| png_free(png_ptr, png_ptr->chunkdata);
|
| @@ -1863,6 +1876,11 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
| if (*vp)
|
| {
|
| png_warning(png_ptr, "malformed height string in sCAL chunk");
|
| + png_free(png_ptr, png_ptr->chunkdata);
|
| + png_ptr->chunkdata = NULL;
|
| +#if defined(PNG_FIXED_POINT_SUPPORTED) && !defined(PNG_FLOATING_POINT_SUPPORTED)
|
| + png_free(png_ptr, swidth);
|
| +#endif
|
| return;
|
| }
|
| #else
|
| @@ -1871,6 +1889,11 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
| if (sheight == NULL)
|
| {
|
| png_warning(png_ptr, "Out of memory while processing sCAL chunk height");
|
| + png_free(png_ptr, png_ptr->chunkdata);
|
| + png_ptr->chunkdata = NULL;
|
| +#if defined(PNG_FIXED_POINT_SUPPORTED) && !defined(PNG_FLOATING_POINT_SUPPORTED)
|
| + png_free(png_ptr, swidth);
|
| +#endif
|
| return;
|
| }
|
| png_memcpy(sheight, ep, (png_size_t)png_strlen(ep));
|
|
|