diff options
author | JF Bastien <jfb@chromium.org> | 2015-12-29 17:29:13 -0800 |
---|---|---|
committer | JF Bastien <jfb@chromium.org> | 2015-12-29 17:29:13 -0800 |
commit | 3bf113b601de6d1a55f54ed1b788037cd5514419 (patch) | |
tree | 35dc578af4c065aa4257247eacefb8026092078e /src | |
parent | e78f6ad3b4c9af4eaaec7309768525ea541d1c3e (diff) | |
download | binaryen-3bf113b601de6d1a55f54ed1b788037cd5514419.tar.gz binaryen-3bf113b601de6d1a55f54ed1b788037cd5514419.tar.bz2 binaryen-3bf113b601de6d1a55f54ed1b788037cd5514419.zip |
Add a help to avoid out-of-bounds.
Diffstat (limited to 'src')
-rw-r--r-- | src/support/command-line.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/support/command-line.cpp b/src/support/command-line.cpp index b023fcb66..3c03d48f4 100644 --- a/src/support/command-line.cpp +++ b/src/support/command-line.cpp @@ -20,6 +20,9 @@ namespace { bool optionIs(const char *arg, const char *LongOpt, const char *ShortOpt) { return strcmp(arg, LongOpt) == 0 || strcmp(arg, ShortOpt) == 0; } +bool startsWith(const char *str, const char *prefix) { + return strncmp(str, prefix, strlen(prefix)) == 0; +} } // anonymous namespace void wasm::processCommandLine(int argc, const char *argv[], Options *options, @@ -42,7 +45,7 @@ void wasm::processCommandLine(int argc, const char *argv[], Options *options, exit(EXIT_FAILURE); } options->outfile = argv[++i]; - } else if (argv[i][0] == '-' && argv[i][1] == '-') { + } else if (startsWith(argv[i], "--")) { size_t j = 2; std::string name; while (argv[i][j] && argv[i][j] != '=') { |