diff --git a/ANNOUNCE b/ANNOUNCE index 83650d5b2..9db9dbfee 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -49,6 +49,13 @@ Version 1.6.19beta02 [August 17, 2015] Fixed some bad links in the man page. Changed "n bit" to "n-bit" in comments. Changed 0xnnnn constants to 0xnnnnUL. + Added signed/unsigned 16-bit safety net. This removes the dubious + 0x8000 flag definitions on 16-bit systems. They aren't supported + yet the defs *probably* work, however it seems much safer to do this + and be advised if anyone, contrary to advice, is building libpng 1.6 + on a 16-bit system. It also adds back various switch default clauses + for GCC; GCC errors out if they are not present (with an appropriately + high level of warnings). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index ca44ba264..7593cac3c 100644 --- a/CHANGES +++ b/CHANGES @@ -5328,6 +5328,13 @@ Version 1.6.19beta02 [August 17, 2015] Fixed some bad links in the man page. Changed "n bit" to "n-bit" in comments. Changed 0xnnnn constants to 0xnnnnUL. + Added signed/unsigned 16-bit safety net. This removes the dubious + 0x8000 flag definitions on 16-bit systems. They aren't supported + yet the defs *probably* work, however it seems much safer to do this + and be advised if anyone, contrary to advice, is building libpng 1.6 + on a 16-bit system. It also adds back various switch default clauses + for GCC; GCC errors out if they are not present (with an appropriately + high level of warnings). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/png.h b/png.h index 8c2004e1e..106db7340 100644 --- a/png.h +++ b/png.h @@ -895,7 +895,9 @@ typedef png_unknown_chunk * * png_unknown_chunkpp; #define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ #define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ #define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ +#if INT_MAX >= 0x8000 /* else this might break */ #define PNG_INFO_IDAT 0x8000 /* ESR, 1.0.6 */ +#endif /* This is used for the transformation routines, as some of them * change these values for the row. It also should enable using @@ -999,7 +1001,9 @@ PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef); #define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ /* Added to libpng-1.5.4 */ #define PNG_TRANSFORM_EXPAND_16 0x4000 /* read only */ +#if INT_MAX >= 0x8000 /* else this might break */ #define PNG_TRANSFORM_SCALE_16 0x8000 /* read only */ +#endif /* Flags for MNG supported features */ #define PNG_FLAG_MNG_EMPTY_PLTE 0x01 diff --git a/pngread.c b/pngread.c index 22054e1c9..1366140e7 100644 --- a/pngread.c +++ b/pngread.c @@ -1683,7 +1683,7 @@ decode_gamma(png_image_read_control *display, png_uint_32 value, int encoding) value *= 257; break; -#ifdef PNG_DEBUG +#ifdef __GNUC__ default: png_error(display->image->opaque->png_ptr, "unexpected encoding (internal error)"); @@ -2858,7 +2858,7 @@ png_image_read_colormap(png_voidp argument) png_set_scale_16(png_ptr); break; -#ifdef PNG_DEBUG +#ifdef __GNUC__ default: png_error(png_ptr, "bad data option (internal error)"); #endif @@ -3630,7 +3630,7 @@ png_image_read_background(png_voidp argument) } break; -#ifdef PNG_DEBUG +#ifdef __GNUC__ default: png_error(png_ptr, "unexpected bit depth"); #endif