< prev index next >
src/share/native/sun/awt/medialib/awt_ImagingLib.c
Print this page
*** 1,7 ****
/*
! * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 770,779 ****
--- 770,780 ----
jint interpType)
{
mlib_image *src;
mlib_image *dst;
int i;
+ int j = 0;
int retStatus = 1;
mlib_status status;
double *matrix;
mlib_d64 mtx[6];
void *sdata;
*** 822,831 ****
--- 823,841 ----
if (matrix == NULL) {
/* out of memory error already thrown */
return 0;
}
+ /* Check for invalid double value in transformation matrix */
+ for (j = 0; j < 6; j++) {
+
+ if (!(IS_FINITE(matrix[j]))) {
+ (*env)->ReleasePrimitiveArrayCritical(env, jmatrix, matrix, JNI_ABORT);
+ return 0;
+ }
+ }
+
if (s_printIt) {
printf("matrix is %g %g %g %g %g %g\n", matrix[0], matrix[1],
matrix[2], matrix[3], matrix[4], matrix[5]);
}
*** 978,987 ****
--- 988,998 ----
jint interpType)
{
mlib_image *src;
mlib_image *dst;
int i;
+ int j = 0;
int retStatus = 1;
mlib_status status;
double *matrix;
mlib_d64 mtx[6];
void *sdata;
*** 1042,1051 ****
--- 1053,1073 ----
free(srcRasterP);
free(dstRasterP);
return 0;
}
+ /* Check for invalid double value in transformation matrix */
+ for (j = 0; j < 6; j++) {
+
+ if (!(IS_FINITE(matrix[j]))) {
+ (*env)->ReleasePrimitiveArrayCritical(env, jmatrix, matrix, JNI_ABORT);
+ free(srcRasterP);
+ free(dstRasterP);
+ return 0;
+ }
+ }
+
if (s_printIt) {
printf("matrix is %g %g %g %g %g %g\n", matrix[0], matrix[1],
matrix[2], matrix[3], matrix[4], matrix[5]);
}
< prev index next >