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
>

Reply via email to