Mercurial > hg > graal-jvmci-8
diff src/share/vm/runtime/thread.cpp @ 6966:6cb0d32b828b
8001185: parsing of sun.boot.library.path in os::dll_build_name somewhat broken
Summary: dll_dir can contain multiple paths, need to parse them correctly when loading agents
Reviewed-by: dholmes, dlong
Contributed-by: bill.pittore@oracle.com
author | bpittore |
---|---|
date | Wed, 07 Nov 2012 17:53:02 -0500 |
parents | a1b8cf9cf970 |
children | d9a84e246cce |
line wrap: on
line diff
--- a/src/share/vm/runtime/thread.cpp Mon Nov 05 19:33:44 2012 -0500 +++ b/src/share/vm/runtime/thread.cpp Wed Nov 07 17:53:02 2012 -0500 @@ -3706,8 +3706,10 @@ } } else { // Try to load the agent from the standard dll directory - os::dll_build_name(buffer, sizeof(buffer), Arguments::get_dll_dir(), name); - library = os::dll_load(buffer, ebuf, sizeof ebuf); + if (os::dll_build_name(buffer, sizeof(buffer), Arguments::get_dll_dir(), + name)) { + library = os::dll_load(buffer, ebuf, sizeof ebuf); + } #ifdef KERNEL // Download instrument dll if (library == NULL && strcmp(name, "instrument") == 0) { @@ -3732,8 +3734,9 @@ #endif // KERNEL if (library == NULL) { // Try the local directory char ns[1] = {0}; - os::dll_build_name(buffer, sizeof(buffer), ns, name); - library = os::dll_load(buffer, ebuf, sizeof ebuf); + if (os::dll_build_name(buffer, sizeof(buffer), ns, name)) { + library = os::dll_load(buffer, ebuf, sizeof ebuf); + } if (library == NULL) { const char *sub_msg = " on the library path, with error: "; size_t len = strlen(msg) + strlen(name) + strlen(sub_msg) + strlen(ebuf) + 1;