--- a/jdk/src/share/native/sun/management/Flag.c Sat Feb 06 09:26:57 2010 -0800
+++ b/jdk/src/share/native/sun/management/Flag.c Mon Feb 08 23:02:28 2010 -0800
@@ -84,6 +84,7 @@
jint num_flags, i, index;
jmmVMGlobal* globals;
+ size_t gsize;
const char* class_name = "sun/management/Flag";
const char* signature = "(Ljava/lang/String;Ljava/lang/Object;ZZLcom/sun/management/VMOption$Origin;)V";
jobject origin;
@@ -100,12 +101,14 @@
return 0;
}
- globals = (jmmVMGlobal*) malloc(count * sizeof(jmmVMGlobal));
+ gsize = count * sizeof(jmmVMGlobal);
+ globals = (jmmVMGlobal*) malloc(gsize);
if (globals == NULL) {
JNU_ThrowOutOfMemoryError(env, 0);
return 0;
}
+ memset(globals, 0, gsize);
num_flags = jmm_interface->GetVMGlobals(env, names, globals, count);
if (num_flags == 0) {
free(globals);