[8u] RFR for JDK-8157548: JVM crashes sometimes while starting

Shafi Ahmad shafi.s.ahmad at oracle.com
Mon Sep 19 05:14:28 UTC 2016


Please review the small code change for bug: "JDK-8157548: JVM crashes sometimes while starting" on jdk8u-dev

int strncmp(const char *s1, const char *s2, size_t n);

s1 = "abcdefgh" // Assume this is not null terminated string.
s2 = "abcdefghijk"
n = 10

In case if s1 is not null terminated then for above input strncmp may crash.  

In expression marked as (B) parsed_name->bytes() returns base address of non-null terminated string buffer. 

+  size_t pkglen = strlen(pkg);
       !class_loader.is_null() &&
       parsed_name != NULL &&
-      !strncmp((const char*)parsed_name->bytes(), pkg, strlen(pkg))) {
+      parsed_name->utf8_length() >= (int)pkglen &&                             // ------------------------------ (A)
+      !strncmp((const char*)parsed_name->bytes(), pkg, pkglen)) { //------------------------------ (B)

Adding expression marked as (A) avoid the above similar input  scenario.

Webrev: http://cr.openjdk.java.net/~shshahma/8157548/webrev.00/
Jdk8 bug: https://bugs.openjdk.java.net/browse/JDK-8157548

Test:  Run jprt

Note: Thanks to Ioi for providing the code change.


More information about the hotspot-dev mailing list