[OpenJDK 2D-Dev] [9]Fix for JDK-8158356 : SIGSEGV when attempting to rotate BufferedImage using AffineTransform by NaN degrees

Jim Graham james.graham at oracle.com
Wed Aug 10 21:47:53 UTC 2016


This does address the specific test case directly, but I'd be happier if we dug down and figured out where it went wrong 
in trying to transform the image and put in a fix that addressed the root problem whether it comes from the inputs being 
NaN or from some other similar condition that could also trigger the same poorly written transform code...

			...jim

On 8/10/16 2:22 PM, Phil Race wrote:
> 1) The spec for the constructors needs to be updated to include this
> reason for throwing ImagingOpException. A CCC request will be needed.
>
> 2) The C usage of "isnan()" may be problematic in some compilation environments.
> For example I believe this will not compile with VS2010, and many folks still use that.
> Instead you could use matrix[j] != matrix[j] as the two values should not compare
> equal if it is NaN.
>
> -phil.
>
> On 08/10/2016 04:15 AM, Ajit Ghaisas wrote:
>> Hi,
>>
>>      Bug : https://bugs.openjdk.java.net/browse/JDK-8158356
>>
>>      Issue : AffineTransform using NaN value as input parameter results in SIGSEGV.
>>
>>      Fix : Transformation matrix is checked for NaN values in AffineTransformOp.validateTransform().
>>               Also, at native level a separate check is made to return error in case of NaN values.
>>
>>      Webrev : http://cr.openjdk.java.net/~aghaisas/8158356/webrev.00/
>>
>>      Request you to review.
>>
>> Regards,
>> Ajit
>>
>



More information about the 2d-dev mailing list