]> granicus.if.org Git - clang/commitdiff
Fix invalid reads by memcmp.
authorBenjamin Kramer <benny.kra@googlemail.com>
Wed, 3 Oct 2012 20:58:09 +0000 (20:58 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Wed, 3 Oct 2012 20:58:09 +0000 (20:58 +0000)
Str may be smaller than Start->Name here. Use strncmp to avoid scanning past the
end. Found by valgrind.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165157 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/OptTable.cpp

index 680ea9938fed62f26edd45d223620a7d1667ab55..257f3537a172213ae6d17be8bf9213daf6640d8e 100644 (file)
@@ -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;