diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-10-03 20:58:09 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-10-03 20:58:09 +0000 |
commit | bf56beab7eb64a62f0482a3b964720e51f5a4e4e (patch) | |
tree | db95ca255b4c8282ed5c3e622430b5a355da2300 /clang/lib/Driver/OptTable.cpp | |
parent | b15b97ef9ad80ae57dbd22414ef677888dd4e430 (diff) | |
download | bcm5719-llvm-bf56beab7eb64a62f0482a3b964720e51f5a4e4e.tar.gz bcm5719-llvm-bf56beab7eb64a62f0482a3b964720e51f5a4e4e.zip |
Fix invalid reads by memcmp.
Str may be smaller than Start->Name here. Use strncmp to avoid scanning past the
end. Found by valgrind.
llvm-svn: 165157
Diffstat (limited to 'clang/lib/Driver/OptTable.cpp')
-rw-r--r-- | clang/lib/Driver/OptTable.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Driver/OptTable.cpp b/clang/lib/Driver/OptTable.cpp index 680ea9938fe..257f3537a17 100644 --- a/clang/lib/Driver/OptTable.cpp +++ b/clang/lib/Driver/OptTable.cpp @@ -162,7 +162,7 @@ Arg *OptTable::ParseOneArg(const ArgList &Args, unsigned &Index) const { for (; Start != End; ++Start) { // Scan for first option which is a proper prefix. for (; Start != End; ++Start) - if (memcmp(Str, Start->Name, strlen(Start->Name)) == 0) + if (strncmp(Str, Start->Name, strlen(Start->Name)) == 0) break; if (Start == End) break; |