diff --git a/contrib/testpngs/badpal/small-palette-1.png b/contrib/testpngs/badpal/small-palette-1.png new file mode 100644 index 000000000..7e9dbfd09 Binary files /dev/null and b/contrib/testpngs/badpal/small-palette-1.png differ diff --git a/contrib/testpngs/badpal/small-palette-2.png b/contrib/testpngs/badpal/small-palette-2.png new file mode 100644 index 000000000..6629164d7 Binary files /dev/null and b/contrib/testpngs/badpal/small-palette-2.png differ diff --git a/contrib/testpngs/badpal/small-palette-4.png b/contrib/testpngs/badpal/small-palette-4.png new file mode 100644 index 000000000..7401dc70b Binary files /dev/null and b/contrib/testpngs/badpal/small-palette-4.png differ diff --git a/contrib/testpngs/badpal/small-palette-8.png b/contrib/testpngs/badpal/small-palette-8.png new file mode 100644 index 000000000..a45338713 Binary files /dev/null and b/contrib/testpngs/badpal/small-palette-8.png differ diff --git a/contrib/testpngs/badpal/test-palette-1.png b/contrib/testpngs/badpal/test-palette-1.png new file mode 100644 index 000000000..614fd97bb Binary files /dev/null and b/contrib/testpngs/badpal/test-palette-1.png differ diff --git a/contrib/testpngs/badpal/test-palette-2.png b/contrib/testpngs/badpal/test-palette-2.png new file mode 100644 index 000000000..a7e996464 Binary files /dev/null and b/contrib/testpngs/badpal/test-palette-2.png differ diff --git a/contrib/testpngs/badpal/test-palette-4.png b/contrib/testpngs/badpal/test-palette-4.png new file mode 100644 index 000000000..39853bfce Binary files /dev/null and b/contrib/testpngs/badpal/test-palette-4.png differ diff --git a/contrib/testpngs/badpal/test-palette-8.png b/contrib/testpngs/badpal/test-palette-8.png new file mode 100644 index 000000000..20f0b5268 Binary files /dev/null and b/contrib/testpngs/badpal/test-palette-8.png differ diff --git a/pngread.c b/pngread.c index 96996ced5..dc62df098 100644 --- a/pngread.c +++ b/pngread.c @@ -568,7 +568,7 @@ png_read_row(png_structrp png_ptr, png_bytep row, png_bytep dsp_row) #endif #ifdef PNG_READ_TRANSFORMS_SUPPORTED - if (png_ptr->transformations) + if (png_ptr->transformations || png_ptr->num_palette_max >= 0) png_do_read_transformations(png_ptr, &row_info); #endif @@ -785,7 +785,7 @@ png_read_end(png_structrp png_ptr, png_inforp info_ptr) #ifdef PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED /* Report invalid palette index; added at libng-1.5.10 */ if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE && - png_ptr->num_palette_max > png_ptr->num_palette) + png_ptr->num_palette_max >= png_ptr->num_palette) png_benign_error(png_ptr, "Read palette index exceeding num_palette"); #endif