diff -r 2948d734293d -r b538b71fb429 jdk/src/solaris/native/sun/awt/awt_Robot.c --- a/jdk/src/solaris/native/sun/awt/awt_Robot.c Tue Apr 16 21:19:02 2013 +0400 +++ b/jdk/src/solaris/native/sun/awt/awt_Robot.c Thu Apr 18 13:52:38 2013 +0100 @@ -39,6 +39,7 @@ #include #include #include +#include #include "robot_common.h" #include "canvas.h" #include "wsutils.h" @@ -174,7 +175,7 @@ num_buttons = numberOfButtons; tmp = (*env)->GetIntArrayElements(env, buttonDownMasks, JNI_FALSE); - masks = (jint *)malloc(sizeof(jint) * num_buttons); + masks = (jint *)SAFE_SIZE_ARRAY_ALLOC(malloc, sizeof(jint), num_buttons); if (masks == (jint *) NULL) { JNU_ThrowOutOfMemoryError((JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2), NULL); (*env)->ReleaseIntArrayElements(env, buttonDownMasks, tmp, 0); @@ -231,8 +232,9 @@ image = getWindowImage(awt_display, rootWindow, x, y, width, height); /* Array to use to crunch around the pixel values */ - ary = (jint *) malloc(width * height * sizeof (jint)); - if (ary == NULL) { + if (!IS_SAFE_SIZE_MUL(width, height) || + !(ary = (jint *) SAFE_SIZE_ARRAY_ALLOC(malloc, width * height, sizeof (jint)))) + { JNU_ThrowOutOfMemoryError(env, "OutOfMemoryError"); XDestroyImage(image); AWT_UNLOCK();