# HG changeset patch # User fparain # Date 1327516349 28800 # Node ID 3b9802e6c6a2a9264ba6cca3990ede460d5dde42 # Parent 9a1958280999747c2ffd7decc3bbbd58672246db 7131346: Parsing of boolean arguments to diagnostic commands is broken Reviewed-by: dholmes, dcubed diff -r 9a1958280999 -r 3b9802e6c6a2 hotspot/src/share/vm/services/diagnosticArgument.cpp --- a/hotspot/src/share/vm/services/diagnosticArgument.cpp Wed Jan 25 01:16:03 2012 -0800 +++ b/hotspot/src/share/vm/services/diagnosticArgument.cpp Wed Jan 25 10:32:29 2012 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012 Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,12 +59,13 @@ template <> void DCmdArgument::parse_value(const char* str, size_t len, TRAPS) { + // len is the length of the current token starting at str 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(), diff -r 9a1958280999 -r 3b9802e6c6a2 hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp --- a/hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp Wed Jan 25 01:16:03 2012 -0800 +++ b/hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp Wed Jan 25 10:32:29 2012 -0800 @@ -130,6 +130,9 @@ //---------------------------------------------------------------------------------------------------- // Non-standard stdlib-like stuff: inline int strcasecmp(const char *s1, const char *s2) { return _stricmp(s1,s2); } +inline int strncasecmp(const char *s1, const char *s2, size_t n) { + return _strnicmp(s1,s2,n); +} //----------------------------------------------------------------------------------------------------