[OpenJDK 2D-Dev]  RFR JDK-8190512: PngReader incorrectly throws IllegalArgumentException for malformed images with negative dimensions
Prahalad Kumar Narayanan
prahalad.kumar.narayanan at oracle.com
Wed Nov 8 09:46:21 UTC 2017
The code change looks good to me.
However, I 'm not sure if we could include the test-case here.
The test case contains the Base64 encoded image in a String.
To my knowledge, we cannot import images into JDK (even encoded in String) unless we are sure of the copyrights.
Have a good day
----- Original Message -----
From: Jayathirth D V
Sent: Wednesday, November 08, 2017 2:23 PM
Subject: [OpenJDK 2D-Dev]  RFR JDK-8190512: PngReader incorrectly throws IllegalArgumentException for malformed images with negative dimensions
Please review the following fix in JDK10 :
Bug : https://bugs.openjdk.java.net/browse/JDK-8190512
Webrev : http://cr.openjdk.java.net/~jdv/8190512/webrev.00/
Issue : PNGImageReader throws "java.lang.IllegalArgumentException: Empty region!" when the IHDR width/height value in the header is negative.
Root cause : In PNGImageReader.readHeader() we only check whether the IHDR width/height is not equal to 0(which is compliant with PNG specification), we don't check whether the value is negative or not.
Solution : Although PNG specification mentions only 0 as invalid value for IHDR width/height we should also not allow IHDR width/height with negative values. Extend the check present in PNGImageReader.readHeader() to verify negative values for IHDR width and height.
More information about the 2d-dev