{"thread":{"id":"4591","subject":"git grep in .","startedAt":"2006-06-20T16:08:36Z","lastAt":"2006-06-21T11:01:24Z","messageCount":3,"participants":["Uwe Zeisberger","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"22147","messageId":"20060620160836.GA20153@informatik.uni-freiburg.de","threadId":"4591","inReplyTo":null,"subject":"git grep in .","fromName":"Uwe Zeisberger","fromEmail":"zeisberg@informatik.uni-freiburg.de","sentAt":"2006-06-20T16:08:36Z","receivedAt":"2006-06-20T16:08:36Z","isPatch":false,"sender":{"key":"u.kleine-koenig@pengutronix.de","avatar":"https://gravatar.com/avatar/354b5e3ceb2806a2f1e1e382ac29ddbdad18288654da62b61eb13583a857eee7?d=mp&s=160"},"body":"Hello,\n\ngit grep behaves wrongly if I give it . as path to search in.\n\nE.g.\n\n\tuzeisberger@io:~/gsrc/git$ git version\n\tgit version 1.4.0\n\n\tuzeisberger@io:~/gsrc/git$ git grep git-grep \n\t.gitignore:git-grep\n\tDocumentation/git-grep.txt:git-grep(1)\n\tDocumentation/git-grep.txt:git-grep - Print lines matching a pattern\n\tDocumentation/git-grep.txt:'git-grep' [--cached]\n\tDocumentation/git.txt:gitlink:git-grep[1]::\n\tMakefile:       git-grep$X git-add$X git-rm$X git-rev-list$X \\\n\tbuiltin-grep.c:\"git-grep <option>* <rev>* [-e] <pattern> [<path>...]\";\n\n\tuzeisberger@io:~/gsrc/git$ git grep git-grep .\n\n\tuzeisberger@io:~/gsrc/git$ \n\nI'd expect that `git grep git-grep .` gives the same results as `git\ngrep git-grep`.\n\nBest regards\nUwe\n\n-- \nUwe Zeisberger\n\nexit vi, lesson II:\n: w q ! <CR>\n\nNB: write the current file\n"},{"id":"22179","messageId":"20060621090412.GA9267@informatik.uni-freiburg.de","threadId":"4591","inReplyTo":"20060620160836.GA20153@informatik.uni-freiburg.de","subject":"[PATCH] Fix possible out-of-bounds array access","fromName":"Uwe Zeisberger","fromEmail":"zeisberg@informatik.uni-freiburg.de","sentAt":"2006-06-21T09:04:12Z","receivedAt":"2006-06-21T09:04:12Z","isPatch":true,"sender":{"key":"u.kleine-koenig@pengutronix.de","avatar":"https://gravatar.com/avatar/354b5e3ceb2806a2f1e1e382ac29ddbdad18288654da62b61eb13583a857eee7?d=mp&s=160"},"body":"If match is \"\", match[-1] is accessed.  Let pathspec_matches return 1 in that\ncase indicating that \"\" matches everything.\n\nIncidently this fixes git-grep'ing in \".\".\n\nSigned-off-by: Uwe Zeisberger <Uwe_Zeisberger@digi.com>\n---\n\n builtin-grep.c |    9 +++++----\n 1 files changed, 5 insertions(+), 4 deletions(-)\n\ndiff --git a/builtin-grep.c b/builtin-grep.c\nindex 9806499..f7767bb 100644\n--- a/builtin-grep.c\n+++ b/builtin-grep.c\n@@ -29,10 +29,11 @@ static int pathspec_matches(const char *\n \t\tint matchlen = strlen(match);\n \t\tconst char *cp, *meta;\n \n-\t\tif ((matchlen <= namelen) &&\n-\t\t    !strncmp(name, match, matchlen) &&\n-\t\t    (match[matchlen-1] == '/' ||\n-\t\t     name[matchlen] == '\\0' || name[matchlen] == '/'))\n+\t\tif (!matchlen ||\n+\t\t    ((matchlen <= namelen) &&\n+\t\t     !strncmp(name, match, matchlen) &&\n+\t\t     (match[matchlen-1] == '/' ||\n+\t\t      name[matchlen] == '\\0' || name[matchlen] == '/')))\n \t\t\treturn 1;\n \t\tif (!fnmatch(match, name, 0))\n \t\t\treturn 1;\n-- \n1.4.0\n\n-- \nUwe Zeisberger\n\nhttp://www.google.com/search?q=12+mol+in+dozen\n"},{"id":"22195","messageId":"7vfyhy22nv.fsf@assigned-by-dhcp.cox.net","threadId":"4591","inReplyTo":"20060621090412.GA9267@informatik.uni-freiburg.de","subject":"Re: [PATCH] Fix possible out-of-bounds array access","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-06-21T11:01:24Z","receivedAt":"2006-06-21T11:01:24Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Thanks.\n"}]}