RFR (XS) : 7131346 Parsing of boolean arguments to diagnostic commands is broken
Frederic Parain
frederic.parain at oracle.com
Thu Jan 19 01:59:57 PST 2012
This is a small fix (2 lines) to fix an issue with the
parsing of boolean arguments by diagnostic commands
CR is not available on bugs.sun.com yet, but the description
says that the string comparisons to identify "true" or "false"
values doesn't take into account the length of the argument
being parse.
The suggested fix is:
--- old/src/share/vm/services/diagnosticArgument.cpp Thu Jan 19
10:36:10 2012
+++ new/src/share/vm/services/diagnosticArgument.cpp Thu Jan 19
10:36:10 2012
@@ -62,9 +62,9 @@
if (len == 0) {
set_value(true);
} else {
- if (strcasecmp(str, "true") == 0) {
+ if (len == strlen("true") && strncasecmp(str, "true", len) == 0) {
set_value(true);
- } else if (strcasecmp(str, "false") == 0) {
+ } else if (len == strlen("false") && strncasecmp(str, "false", len)
== 0) {
set_value(false);
} else {
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
Webrev:
http://cr.openjdk.java.net/~fparain/7131346/webrev.00/
Thanks,
Fred
--
Frederic Parain - Oracle
Grenoble Engineering Center - France
Phone: +33 4 76 18 81 17
Email: Frederic.Parain at Oracle.com
More information about the serviceability-dev
mailing list