Fri, 16 Dec 2016 16:57:06 -0800
Merge
.hgtags | file | annotate | diff | comparison | revisions |
1.1 --- a/.hgtags Mon Dec 12 12:52:22 2016 -0800 1.2 +++ b/.hgtags Fri Dec 16 16:57:06 2016 -0800 1.3 @@ -931,6 +931,8 @@ 1.4 b28d012a24cab8f4ceeee0c9d3252969757423ed jdk8u112-b15 1.5 e134dc1879b72124e478be01680b0646a2fbf585 jdk8u112-b16 1.6 87440ed4e1de7753a436f957d35555d8b4e26f1d jdk8u112-b31 1.7 +ba25f5833a128b8062e597f794efda26b30f095d jdk8u112-b32 1.8 +919ffdca10c2721ee0f6f233e704709174556510 jdk8u112-b33 1.9 3b0e5f01891f5ebbf67797b1aae786196f1bb4f6 jdk8u121-b00 1.10 251a2493b1857f2ff4f11eab2dfd8b2fe8ed441b jdk8u121-b01 1.11 70c4a50f576a01ec975d0a02b3642ee33db39ed8 jdk8u121-b02
2.1 --- a/src/share/vm/classfile/systemDictionary.cpp Mon Dec 12 12:52:22 2016 -0800 2.2 +++ b/src/share/vm/classfile/systemDictionary.cpp Fri Dec 16 16:57:06 2016 -0800 2.3 @@ -1084,15 +1084,18 @@ 2.4 THREAD); 2.5 2.6 const char* pkg = "java/"; 2.7 + size_t pkglen = strlen(pkg); 2.8 if (!HAS_PENDING_EXCEPTION && 2.9 !class_loader.is_null() && 2.10 parsed_name != NULL && 2.11 - !strncmp((const char*)parsed_name->bytes(), pkg, strlen(pkg))) { 2.12 + parsed_name->utf8_length() >= (int)pkglen && 2.13 + !strncmp((const char*)parsed_name->bytes(), pkg, pkglen)) { 2.14 // It is illegal to define classes in the "java." package from 2.15 // JVM_DefineClass or jni_DefineClass unless you're the bootclassloader 2.16 ResourceMark rm(THREAD); 2.17 char* name = parsed_name->as_C_string(); 2.18 char* index = strrchr(name, '/'); 2.19 + assert(index != NULL, "must be"); 2.20 *index = '\0'; // chop to just the package name 2.21 while ((index = strchr(name, '/')) != NULL) { 2.22 *index = '.'; // replace '/' with '.' in package name