From: Benjamin Kramer Date: Wed, 3 Oct 2012 20:58:09 +0000 (+0000) Subject: Fix invalid reads by memcmp. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2df1bd44319a60a9beb26511d6e2997a3f4f67ff;p=clang Fix invalid reads by memcmp. 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 --- diff --git a/lib/Driver/OptTable.cpp b/lib/Driver/OptTable.cpp index 680ea9938f..257f3537a1 100644 --- a/lib/Driver/OptTable.cpp +++ b/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;