提交 5fb48cd6 编写于 作者: D dav

7029832: Buffer overrun at awt_LoadLibrary.c (and java_props_md.c)

Reviewed-by: anthony, art
上级 3d0cb0cb
...@@ -128,12 +128,12 @@ AWT_OnLoad(JavaVM *vm, void *reserved) ...@@ -128,12 +128,12 @@ AWT_OnLoad(JavaVM *vm, void *reserved)
} }
} }
/* Calculate toolkit name, kind of toolkit (XAWT, Motif) and library to load */ /* Calculate library name to load */
if (AWTIsHeadless()) { if (AWTIsHeadless()) {
strcpy(p, "/headless/libmawt"); strncpy(p, "/headless/libmawt.so", MAXPATHLEN-len-1);
} else { } else {
/* Default AWT Toolkit on Linux and Solaris is XAWT. */ /* Default AWT Toolkit on Linux and Solaris is XAWT. */
strcpy(p, "/xawt/libmawt"); strncpy(p, "/xawt/libmawt.so", MAXPATHLEN-len-1);
} }
if (toolkit) { if (toolkit) {
...@@ -143,23 +143,12 @@ AWT_OnLoad(JavaVM *vm, void *reserved) ...@@ -143,23 +143,12 @@ AWT_OnLoad(JavaVM *vm, void *reserved)
(*env)->DeleteLocalRef(env, propname); (*env)->DeleteLocalRef(env, propname);
} }
strcat(p, ".so");
JNU_CallStaticMethodByName(env, NULL, "java/lang/System", "load", JNU_CallStaticMethodByName(env, NULL, "java/lang/System", "load",
"(Ljava/lang/String;)V", "(Ljava/lang/String;)V",
JNU_NewStringPlatform(env, buf)); JNU_NewStringPlatform(env, buf));
awtHandle = dlopen(buf, RTLD_LAZY | RTLD_GLOBAL); awtHandle = dlopen(buf, RTLD_LAZY | RTLD_GLOBAL);
/*
if (dlsym(awtHandle, "AWTCharRBearing") == NULL) {
printf("========= AWTCharRBearing not found\n"); fflush(stdout);
}
else {
printf("========= AWTCharRBearing was found\n"); fflush(stdout);
}
*/
return JNI_VERSION_1_2; return JNI_VERSION_1_2;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册