6744783: HotSpot segfaults if given -XX options with an empty string argument
Reviewed-by: kamg, kvn
This commit is contained in:
parent
42be28cece
commit
ac161a1e17
@ -73,7 +73,7 @@ void JvmtiTrace::initialize() {
|
||||
|
||||
const char *very_end;
|
||||
const char *curr;
|
||||
if (strlen(TraceJVMTI)) {
|
||||
if (TraceJVMTI != NULL) {
|
||||
curr = TraceJVMTI;
|
||||
} else {
|
||||
curr = ""; // hack in fixed tracing here
|
||||
|
@ -355,8 +355,11 @@ bool CommandLineFlags::ccstrAtPut(char* name, size_t len, ccstr* value, FlagValu
|
||||
if (result == NULL) return false;
|
||||
if (!result->is_ccstr()) return false;
|
||||
ccstr old_value = result->get_ccstr();
|
||||
char* new_value = NEW_C_HEAP_ARRAY(char, strlen(*value)+1);
|
||||
strcpy(new_value, *value);
|
||||
char* new_value = NULL;
|
||||
if (*value != NULL) {
|
||||
new_value = NEW_C_HEAP_ARRAY(char, strlen(*value)+1);
|
||||
strcpy(new_value, *value);
|
||||
}
|
||||
result->set_ccstr(new_value);
|
||||
if (result->origin == DEFAULT && old_value != NULL) {
|
||||
// Prior value is NOT heap allocated, but was a literal constant.
|
||||
|
@ -692,7 +692,7 @@ class CommandLineFlags {
|
||||
diagnostic(bool, PrintAssembly, false, \
|
||||
"Print assembly code (using external disassembler.so)") \
|
||||
\
|
||||
diagnostic(ccstr, PrintAssemblyOptions, false, \
|
||||
diagnostic(ccstr, PrintAssemblyOptions, NULL, \
|
||||
"Options string passed to disassembler.so") \
|
||||
\
|
||||
diagnostic(bool, PrintNMethods, false, \
|
||||
@ -833,7 +833,7 @@ class CommandLineFlags {
|
||||
"Use LWP-based instead of libthread-based synchronization " \
|
||||
"(SPARC only)") \
|
||||
\
|
||||
product(ccstr, SyncKnobs, "", \
|
||||
product(ccstr, SyncKnobs, NULL, \
|
||||
"(Unstable) Various monitor synchronization tunables") \
|
||||
\
|
||||
product(intx, EmitSync, 0, \
|
||||
@ -1017,7 +1017,7 @@ class CommandLineFlags {
|
||||
notproduct(bool, TraceJVMCalls, false, \
|
||||
"Trace JVM calls") \
|
||||
\
|
||||
product(ccstr, TraceJVMTI, "", \
|
||||
product(ccstr, TraceJVMTI, NULL, \
|
||||
"Trace flags for JVMTI functions and events") \
|
||||
\
|
||||
/* This option can change an EMCP method into an obsolete method. */ \
|
||||
|
Loading…
Reference in New Issue
Block a user