summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJF Bastien <jfb@chromium.org>2015-12-29 17:29:13 -0800
committerJF Bastien <jfb@chromium.org>2015-12-29 17:29:13 -0800
commit3bf113b601de6d1a55f54ed1b788037cd5514419 (patch)
tree35dc578af4c065aa4257247eacefb8026092078e /src
parente78f6ad3b4c9af4eaaec7309768525ea541d1c3e (diff)
downloadbinaryen-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.cpp5
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] != '=') {