From: Uwe Zeisberger Date: Wed, 21 Jun 2006 09:04:12 GMT Subject: [PATCH] Fix possible out-of-bounds array access Message-ID: <20060621090412.GA9267@informatik.uni-freiburg.de> In-Reply-To: <20060620160836.GA20153@informatik.uni-freiburg.de> If match is "", match[-1] is accessed. Let pathspec_matches return 1 in that case indicating that "" matches everything. Incidently this fixes git-grep'ing in ".". Signed-off-by: Uwe Zeisberger --- builtin-grep.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/builtin-grep.c b/builtin-grep.c index 9806499..f7767bb 100644 --- a/builtin-grep.c +++ b/builtin-grep.c @@ -29,10 +29,11 @@ static int pathspec_matches(const char * int matchlen = strlen(match); const char *cp, *meta; - if ((matchlen <= namelen) && - !strncmp(name, match, matchlen) && - (match[matchlen-1] == '/' || - name[matchlen] == '\0' || name[matchlen] == '/')) + if (!matchlen || + ((matchlen <= namelen) && + !strncmp(name, match, matchlen) && + (match[matchlen-1] == '/' || + name[matchlen] == '\0' || name[matchlen] == '/'))) return 1; if (!fnmatch(match, name, 0)) return 1; -- 1.4.0 -- Uwe Zeisberger http://www.google.com/search?q=12+mol+in+dozen