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

Jim Graham james.graham at oracle.com
Thu Sep 29 21:28:17 UTC 2016


+1

		...jim

On 9/28/16 10:17 AM, Philip Race wrote:
> +1
>
> -phil
>
> On 9/14/16, 2:52 AM, Ajit Ghaisas wrote:
>> Hi Jim,
>>
>>      I agree upon aborting the operation in case the non-finite slope is not due to divide by 0 case.
>>      As this is the 8u backport of the fix done in 9, I will address the review comment in JDK-8166009.
>>
>>      The original backport webrev is still the same.
>>      http://cr.openjdk.java.net/~aghaisas/8158356/8u_backport/webrev.00/
>>
>>      Request you to approve this 8u backport.
>>
>> Regards,
>> Ajit
>>
>> -----Original Message-----
>> From: Jim Graham
>> Sent: Friday, September 02, 2016 1:16 AM
>> To: Ajit Ghaisas; Philip Race; 2d-dev
>> Subject: Re: [8u Backport] Fix for JDK-8158356 : SIGSEGV when attempting to rotate BufferedImage using AffineTransform
>> by NaN degrees
>>
>> Hi Ajit,
>>
>> In the cases where you "continue" on a non-finite slope, doesn't that mean that the edges will be mismatched?  If you
>> can't determine the bounding polygon, perhaps the entire operation should be aborted instead...?
>>
>> It's different from the case of dy1==dy2 which also results in a "continue" because in that case there are no edges to
>> insert in the array because that edge of the bounding box doesn't occupy any vertical space.  In the case of an
>> infinite slope, there could be edges expected to be produced (in fact there should be because we've already tested
>> that dy1 != dy2), but the loop doesn't produce any edge values and stale data is left in the array.
>>
>>             ...jim
>>
>> On 9/1/16 2:14 AM, Ajit Ghaisas wrote:
>>> Hi,
>>>
>>>
>>>
>>>     This is a review request for 8u back-port of the fix done in JDK-9.
>>>
>>>
>>>
>>> Bug :
>>>
>>>     https://bugs.openjdk.java.net/browse/JDK-8158356
>>>
>>>
>>>
>>> Root cause :
>>>
>>>     The root cause of the crash is - NaN is converted to an integer and used as array index in mlib_ImageScanPoly.c.
>>>
>>>
>>>
>>> Fix :
>>>
>>>     The native method previously did not check the validity of the
>>> input double argument. Now, I have added a check for finite double values.
>>>
>>>
>>>
>>> Webrev :
>>>
>>>
>>> http://cr.openjdk.java.net/~aghaisas/8158356/8u_backport/webrev.00/
>>>
>>>
>>>
>>> Regards,
>>>
>>> Ajit
>>>



More information about the 2d-dev mailing list