# HG changeset patch # User fparain # Date 1327538017 28800 # Node ID 24ec1a6d6ef3045b6e75872b6c848d3c3a1df1fb # Parent d708a8cdd022d0bb2145f2217af43350447d0195# Parent 520830f632e73e57a8ba0ae2e4a4c3633fa877ab Merge diff -r d708a8cdd022 -r 24ec1a6d6ef3 src/share/vm/services/diagnosticArgument.cpp --- a/src/share/vm/services/diagnosticArgument.cpp Wed Jan 25 10:08:40 2012 -0500 +++ b/src/share/vm/services/diagnosticArgument.cpp Wed Jan 25 16:33:37 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 d708a8cdd022 -r 24ec1a6d6ef3 src/share/vm/utilities/globalDefinitions_visCPP.hpp --- a/src/share/vm/utilities/globalDefinitions_visCPP.hpp Wed Jan 25 10:08:40 2012 -0500 +++ b/src/share/vm/utilities/globalDefinitions_visCPP.hpp Wed Jan 25 16:33:37 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); +} //----------------------------------------------------------------------------------------------------