[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 1 19:45:31 UTC 2016


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