aboutsummaryrefslogtreecommitdiff
path: root/builtin-grep.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2010-01-18 22:55:07 +0100
committerJunio C Hamano <gitster@pobox.com>2010-01-18 17:01:29 -0800
commit34f3999206e8ea41b9e4cf48e30ab1149e01d8a5 (patch)
treecad6e7beba3cac964a29f43a28fa38b63b0a4376 /builtin-grep.c
parent527b9d704d929a2fff2f9bf1c5e2856725c1416d (diff)
downloadgit-34f3999206e8ea41b9e4cf48e30ab1149e01d8a5.tar.gz
git-34f3999206e8ea41b9e4cf48e30ab1149e01d8a5.tar.xz
grep: NUL terminate input from a file
Internally "git grep" runs regexec(3) that expects its input string to be NUL terminated. When searching inside blob data, read_sha1_file() automatically gives such a buffer, but builtin-grep.c forgot to put the NUL at the end, even though it allocated enough space for it. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-grep.c')
-rw-r--r--builtin-grep.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/builtin-grep.c b/builtin-grep.c
index d79a6260a..63dc31c45 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -207,6 +207,7 @@ static int grep_file(struct grep_opt *opt, const char *filename)
return 0;
}
close(i);
+ data[sz] = 0;
if (opt->relative && opt->prefix_length)
filename = quote_path_relative(filename, -1, &buf, opt->prefix);
i = grep_buffer(opt, filename, data, sz);