From 2df1bd44319a60a9beb26511d6e2997a3f4f67ff Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Wed, 3 Oct 2012 20:58:09 +0000 Subject: [PATCH] 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 --- lib/Driver/OptTable.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; -- 2.40.0