| OLD | NEW |
| 1 | 1 |
| 2 /* png.c - location for general purpose libpng functions | 2 /* png.c - location for general purpose libpng functions |
| 3 * | 3 * |
| 4 * Last changed in libpng 1.2.51 [February 6, 2014] | 4 * Last changed in libpng 1.2.54 [November 12, 2015] |
| 5 * Copyright (c) 1998-2014 Glenn Randers-Pehrson | 5 * Copyright (c) 1998-2015 Glenn Randers-Pehrson |
| 6 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | 6 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) |
| 7 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | 7 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) |
| 8 * | 8 * |
| 9 * This code is released under the libpng license. | 9 * This code is released under the libpng license. |
| 10 * For conditions of distribution and use, see the disclaimer | 10 * For conditions of distribution and use, see the disclaimer |
| 11 * and license in png.h | 11 * and license in png.h |
| 12 */ | 12 */ |
| 13 | 13 |
| 14 #define PNG_INTERNAL | 14 #define PNG_INTERNAL |
| 15 #define PNG_NO_EXTERN | 15 #define PNG_NO_EXTERN |
| 16 #define PNG_NO_PEDANTIC_WARNINGS | 16 #define PNG_NO_PEDANTIC_WARNINGS |
| 17 #include "png.h" | 17 #include "png.h" |
| 18 | 18 |
| 19 /* Generate a compiler error if there is an old png.h in the search path. */ | 19 /* Generate a compiler error if there is an old png.h in the search path. */ |
| 20 typedef version_1_2_52 Your_png_h_is_not_version_1_2_52; | 20 typedef version_1_2_54 Your_png_h_is_not_version_1_2_54; |
| 21 | 21 |
| 22 /* Version information for C files. This had better match the version | 22 /* Version information for C files. This had better match the version |
| 23 * string defined in png.h. | 23 * string defined in png.h. |
| 24 */ | 24 */ |
| 25 | 25 |
| 26 #ifdef PNG_USE_GLOBAL_ARRAYS | 26 #ifdef PNG_USE_GLOBAL_ARRAYS |
| 27 /* png_libpng_ver was changed to a function in version 1.0.5c */ | 27 /* png_libpng_ver was changed to a function in version 1.0.5c */ |
| 28 PNG_CONST char png_libpng_ver[18] = PNG_LIBPNG_VER_STRING; | 28 PNG_CONST char png_libpng_ver[18] = PNG_LIBPNG_VER_STRING; |
| 29 | 29 |
| 30 #ifdef PNG_READ_SUPPORTED | 30 #ifdef PNG_READ_SUPPORTED |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) | 151 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) |
| 152 /* Function to allocate memory for zlib and clear it to 0. */ | 152 /* Function to allocate memory for zlib and clear it to 0. */ |
| 153 #ifdef PNG_1_0_X | 153 #ifdef PNG_1_0_X |
| 154 voidpf PNGAPI | 154 voidpf PNGAPI |
| 155 #else | 155 #else |
| 156 voidpf /* PRIVATE */ | 156 voidpf /* PRIVATE */ |
| 157 #endif | 157 #endif |
| 158 png_zalloc(voidpf png_ptr, uInt items, uInt size) | 158 png_zalloc(voidpf png_ptr, uInt items, uInt size) |
| 159 { | 159 { |
| 160 png_voidp ptr; | 160 png_voidp ptr; |
| 161 png_structp p=(png_structp)png_ptr; | 161 png_structp p; |
| 162 png_uint_32 save_flags=p->flags; | 162 png_uint_32 save_flags; |
| 163 png_uint_32 num_bytes; | 163 png_uint_32 num_bytes; |
| 164 | 164 |
| 165 if (png_ptr == NULL) | 165 if (png_ptr == NULL) |
| 166 return (NULL); | 166 return (NULL); |
| 167 |
| 168 p=(png_structp)png_ptr; |
| 169 save_flags=p->flags; |
| 170 |
| 167 if (items > PNG_UINT_32_MAX/size) | 171 if (items > PNG_UINT_32_MAX/size) |
| 168 { | 172 { |
| 169 png_warning (p, "Potential overflow in png_zalloc()"); | 173 png_warning (p, "Potential overflow in png_zalloc()"); |
| 170 return (NULL); | 174 return (NULL); |
| 171 } | 175 } |
| 172 num_bytes = (png_uint_32)items * size; | 176 num_bytes = (png_uint_32)items * size; |
| 173 | 177 |
| 174 p->flags|=PNG_FLAG_MALLOC_NULL_MEM_OK; | 178 p->flags|=PNG_FLAG_MALLOC_NULL_MEM_OK; |
| 175 ptr = (png_voidp)png_malloc((png_structp)png_ptr, num_bytes); | 179 ptr = (png_voidp)png_malloc((png_structp)png_ptr, num_bytes); |
| 176 p->flags=save_flags; | 180 p->flags=save_flags; |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 png_debug(1, "in png_info_init_3"); | 325 png_debug(1, "in png_info_init_3"); |
| 322 | 326 |
| 323 if (info_ptr == NULL) | 327 if (info_ptr == NULL) |
| 324 return; | 328 return; |
| 325 | 329 |
| 326 if (png_sizeof(png_info) > png_info_struct_size) | 330 if (png_sizeof(png_info) > png_info_struct_size) |
| 327 { | 331 { |
| 328 png_destroy_struct(info_ptr); | 332 png_destroy_struct(info_ptr); |
| 329 info_ptr = (png_infop)png_create_struct(PNG_STRUCT_INFO); | 333 info_ptr = (png_infop)png_create_struct(PNG_STRUCT_INFO); |
| 330 *ptr_ptr = info_ptr; | 334 *ptr_ptr = info_ptr; |
| 335 if (info_ptr == NULL) |
| 336 return; |
| 331 } | 337 } |
| 332 | 338 |
| 333 /* Set everything to 0 */ | 339 /* Set everything to 0 */ |
| 334 png_memset(info_ptr, 0, png_sizeof(png_info)); | 340 png_memset(info_ptr, 0, png_sizeof(png_info)); |
| 335 } | 341 } |
| 336 | 342 |
| 337 #ifdef PNG_FREE_ME_SUPPORTED | 343 #ifdef PNG_FREE_ME_SUPPORTED |
| 338 void PNGAPI | 344 void PNGAPI |
| 339 png_data_freer(png_structp png_ptr, png_infop info_ptr, | 345 png_data_freer(png_structp png_ptr, png_infop info_ptr, |
| 340 int freer, png_uint_32 mask) | 346 int freer, png_uint_32 mask) |
| (...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 668 */ | 674 */ |
| 669 png_charp PNGAPI | 675 png_charp PNGAPI |
| 670 png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime) | 676 png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime) |
| 671 { | 677 { |
| 672 static PNG_CONST char short_months[12][4] = | 678 static PNG_CONST char short_months[12][4] = |
| 673 {"Jan", "Feb", "Mar", "Apr", "May", "Jun", | 679 {"Jan", "Feb", "Mar", "Apr", "May", "Jun", |
| 674 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; | 680 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; |
| 675 | 681 |
| 676 if (png_ptr == NULL) | 682 if (png_ptr == NULL) |
| 677 return (NULL); | 683 return (NULL); |
| 684 |
| 678 if (png_ptr->time_buffer == NULL) | 685 if (png_ptr->time_buffer == NULL) |
| 679 { | 686 { |
| 680 png_ptr->time_buffer = (png_charp)png_malloc(png_ptr, (png_uint_32)(29* | 687 png_ptr->time_buffer = (png_charp)png_malloc(png_ptr, (png_uint_32)(29* |
| 681 png_sizeof(char))); | 688 png_sizeof(char))); |
| 682 } | 689 } |
| 683 | 690 |
| 684 #ifdef _WIN32_WCE | 691 #ifdef _WIN32_WCE |
| 685 { | 692 { |
| 686 wchar_t time_buf[29]; | 693 wchar_t time_buf[29]; |
| 687 wsprintf(time_buf, TEXT("%d %S %d %02d:%02d:%02d +0000"), | 694 wsprintf(time_buf, TEXT("%d %S %d %02d:%02d:%02d +0000"), |
| 688 ptime->day % 32, short_months[(ptime->month - 1) % 12], | 695 ptime->day % 32, short_months[(ptime->month - 1U) % 12], |
| 689 ptime->year, ptime->hour % 24, ptime->minute % 60, | 696 ptime->year, ptime->hour % 24, ptime->minute % 60, |
| 690 ptime->second % 61); | 697 ptime->second % 61); |
| 691 WideCharToMultiByte(CP_ACP, 0, time_buf, -1, png_ptr->time_buffer, | 698 WideCharToMultiByte(CP_ACP, 0, time_buf, -1, png_ptr->time_buffer, |
| 692 29, NULL, NULL); | 699 29, NULL, NULL); |
| 693 } | 700 } |
| 694 #else | 701 #else |
| 695 #ifdef USE_FAR_KEYWORD | 702 #ifdef USE_FAR_KEYWORD |
| 696 { | 703 { |
| 697 char near_time_buf[29]; | 704 char near_time_buf[29]; |
| 698 png_snprintf6(near_time_buf, 29, "%d %s %d %02d:%02d:%02d +0000", | 705 png_snprintf6(near_time_buf, 29, "%d %s %d %02d:%02d:%02d +0000", |
| 699 ptime->day % 32, short_months[(ptime->month - 1) % 12], | 706 ptime->day % 32, short_months[(ptime->month - 1U) % 12], |
| 700 ptime->year, ptime->hour % 24, ptime->minute % 60, | 707 ptime->year, ptime->hour % 24, ptime->minute % 60, |
| 701 ptime->second % 61); | 708 ptime->second % 61); |
| 702 png_memcpy(png_ptr->time_buffer, near_time_buf, | 709 png_memcpy(png_ptr->time_buffer, near_time_buf, |
| 703 29*png_sizeof(char)); | 710 29*png_sizeof(char)); |
| 704 } | 711 } |
| 705 #else | 712 #else |
| 706 png_snprintf6(png_ptr->time_buffer, 29, "%d %s %d %02d:%02d:%02d +0000", | 713 png_snprintf6(png_ptr->time_buffer, 29, "%d %s %d %02d:%02d:%02d +0000", |
| 707 ptime->day % 32, short_months[(ptime->month - 1) % 12], | 714 ptime->day % 32, short_months[(ptime->month - 1U) % 12], |
| 708 ptime->year, ptime->hour % 24, ptime->minute % 60, | 715 ptime->year, ptime->hour % 24, ptime->minute % 60, |
| 709 ptime->second % 61); | 716 ptime->second % 61); |
| 710 #endif | 717 #endif |
| 711 #endif /* _WIN32_WCE */ | 718 #endif /* _WIN32_WCE */ |
| 712 return ((png_charp)png_ptr->time_buffer); | 719 return ((png_charp)png_ptr->time_buffer); |
| 713 } | 720 } |
| 714 #endif /* PNG_TIME_RFC1123_SUPPORTED */ | 721 #endif /* PNG_TIME_RFC1123_SUPPORTED */ |
| 715 | 722 |
| 716 #endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */ | 723 #endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */ |
| 717 | 724 |
| 718 png_charp PNGAPI | 725 png_charp PNGAPI |
| 719 png_get_copyright(png_structp png_ptr) | 726 png_get_copyright(png_structp png_ptr) |
| 720 { | 727 { |
| 721 PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */ | 728 PNG_UNUSED(png_ptr) /* Silence compiler warning about unused png_ptr */ |
| 722 #ifdef PNG_STRING_COPYRIGHT | 729 #ifdef PNG_STRING_COPYRIGHT |
| 723 return PNG_STRING_COPYRIGHT | 730 return PNG_STRING_COPYRIGHT |
| 724 #else | 731 #else |
| 725 #ifdef __STDC__ | 732 #ifdef __STDC__ |
| 726 return ((png_charp) PNG_STRING_NEWLINE \ | 733 return ((png_charp) PNG_STRING_NEWLINE \ |
| 727 "libpng version 1.2.52 - November 20, 2014" PNG_STRING_NEWLINE \ | 734 "libpng version 1.2.54 - November 12, 2015" PNG_STRING_NEWLINE \ |
| 728 "Copyright (c) 1998-2014 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \ | 735 "Copyright (c) 1998-2015 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \ |
| 729 "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ | 736 "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ |
| 730 "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ | 737 "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ |
| 731 PNG_STRING_NEWLINE); | 738 PNG_STRING_NEWLINE); |
| 732 #else | 739 #else |
| 733 return ((png_charp) "libpng version 1.2.52 - November 20, 2014\ | 740 return ((png_charp) "libpng version 1.2.54 - November 12, 2015\ |
| 734 Copyright (c) 1998-2014 Glenn Randers-Pehrson\ | 741 Copyright (c) 1998-2015 Glenn Randers-Pehrson\ |
| 735 Copyright (c) 1996-1997 Andreas Dilger\ | 742 Copyright (c) 1996-1997 Andreas Dilger\ |
| 736 Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."); | 743 Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."); |
| 737 #endif | 744 #endif |
| 738 #endif | 745 #endif |
| 739 } | 746 } |
| 740 | 747 |
| 741 /* The following return the library version as a short string in the | 748 /* The following return the library version as a short string in the |
| 742 * format 1.0.0 through 99.99.99zz. To get the version of *.h files | 749 * format 1.0.0 through 99.99.99zz. To get the version of *.h files |
| 743 * used with your application, print out PNG_LIBPNG_VER_STRING, which | 750 * used with your application, print out PNG_LIBPNG_VER_STRING, which |
| 744 * is defined in png.h. | 751 * is defined in png.h. |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1083 { | 1090 { |
| 1084 png_warning(png_ptr, "Unknown filter method in IHDR"); | 1091 png_warning(png_ptr, "Unknown filter method in IHDR"); |
| 1085 error = 1; | 1092 error = 1; |
| 1086 } | 1093 } |
| 1087 #endif | 1094 #endif |
| 1088 | 1095 |
| 1089 if (error == 1) | 1096 if (error == 1) |
| 1090 png_error(png_ptr, "Invalid IHDR data"); | 1097 png_error(png_ptr, "Invalid IHDR data"); |
| 1091 } | 1098 } |
| 1092 #endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */ | 1099 #endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */ |
| OLD | NEW |