git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git grep in .
@ 2006-06-20 16:08 Uwe Zeisberger
  2006-06-21  9:04 ` [PATCH] Fix possible out-of-bounds array access Uwe Zeisberger
  0 siblings, 1 reply; 3+ messages in thread
From: Uwe Zeisberger @ 2006-06-20 16:08 UTC (permalink / raw)
  To: git

Hello,

git grep behaves wrongly if I give it . as path to search in.

E.g.

	uzeisberger@io:~/gsrc/git$ git version
	git version 1.4.0

	uzeisberger@io:~/gsrc/git$ git grep git-grep 
	.gitignore:git-grep
	Documentation/git-grep.txt:git-grep(1)
	Documentation/git-grep.txt:git-grep - Print lines matching a pattern
	Documentation/git-grep.txt:'git-grep' [--cached]
	Documentation/git.txt:gitlink:git-grep[1]::
	Makefile:       git-grep$X git-add$X git-rm$X git-rev-list$X \
	builtin-grep.c:"git-grep <option>* <rev>* [-e] <pattern> [<path>...]";

	uzeisberger@io:~/gsrc/git$ git grep git-grep .

	uzeisberger@io:~/gsrc/git$ 

I'd expect that `git grep git-grep .` gives the same results as `git
grep git-grep`.

Best regards
Uwe

-- 
Uwe Zeisberger

exit vi, lesson II:
: w q ! <CR>

NB: write the current file

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] Fix possible out-of-bounds array access
  2006-06-20 16:08 git grep in Uwe Zeisberger
@ 2006-06-21  9:04 ` Uwe Zeisberger
  2006-06-21 11:01   ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Uwe Zeisberger @ 2006-06-21  9:04 UTC (permalink / raw)
  To: git

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 <Uwe_Zeisberger@digi.com>
---

 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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] Fix possible out-of-bounds array access
  2006-06-21  9:04 ` [PATCH] Fix possible out-of-bounds array access Uwe Zeisberger
@ 2006-06-21 11:01   ` Junio C Hamano
  0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2006-06-21 11:01 UTC (permalink / raw)
  To: Uwe Zeisberger; +Cc: git

Thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-06-21 11:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-20 16:08 git grep in Uwe Zeisberger
2006-06-21  9:04 ` [PATCH] Fix possible out-of-bounds array access Uwe Zeisberger
2006-06-21 11:01   ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).