summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/OptTable.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-10-03 20:58:09 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-10-03 20:58:09 +0000
commitbf56beab7eb64a62f0482a3b964720e51f5a4e4e (patch)
treedb95ca255b4c8282ed5c3e622430b5a355da2300 /clang/lib/Driver/OptTable.cpp
parentb15b97ef9ad80ae57dbd22414ef677888dd4e430 (diff)
downloadbcm5719-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.cpp2
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;
OpenPOWER on IntegriCloud