[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