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

Philip Race philip.race at oracle.com
Wed Aug 10 21:52:10 UTC 2016


Agreed, I had previously asked for that too (off-line).
ie. root cause why a NaN would cause a crash ..

-phil.

On 8/10/16, 2:47 PM, Jim Graham wrote:
> 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