< prev index next >

src/share/vm/runtime/arguments.cpp

Print this page

        

*** 835,855 **** arg_len = strlen(argname); } else { arg_len = equal_sign - argname; } // Construct a string which consists only of the argument name without '+', '-', or '='. ! char stripped_argname[256]; strncpy(stripped_argname, argname, arg_len); ! stripped_argname[arg_len] = '\0'; //strncpy doesn't null terminate. if (is_newly_obsolete(stripped_argname, &since)) { char version[256]; since.to_string(version, sizeof(version)); warning("ignoring option %s; support was removed in %s", stripped_argname, version); return true; } // For locked flags, report a custom error message if available. // Otherwise, report the standard unrecognized VM option. Flag* found_flag = Flag::find_flag((const char*)argname, arg_len, true, true); if (found_flag != NULL) { --- 835,858 ---- arg_len = strlen(argname); } else { arg_len = equal_sign - argname; } + // Only make the obsolete check for valid arguments. + if (arg_len <= BUFLEN) { // Construct a string which consists only of the argument name without '+', '-', or '='. ! char stripped_argname[BUFLEN+1]; strncpy(stripped_argname, argname, arg_len); ! stripped_argname[arg_len] = '\0'; // strncpy may not null terminate. if (is_newly_obsolete(stripped_argname, &since)) { char version[256]; since.to_string(version, sizeof(version)); warning("ignoring option %s; support was removed in %s", stripped_argname, version); return true; } + } // For locked flags, report a custom error message if available. // Otherwise, report the standard unrecognized VM option. Flag* found_flag = Flag::find_flag((const char*)argname, arg_len, true, true); if (found_flag != NULL) {
< prev index next >