diff options
author | Jim Meyering <jim@meyering.net> | 2010-01-18 22:55:07 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-18 17:01:29 -0800 |
commit | 34f3999206e8ea41b9e4cf48e30ab1149e01d8a5 (patch) | |
tree | cad6e7beba3cac964a29f43a28fa38b63b0a4376 /builtin-grep.c | |
parent | Git 1.6.5.7 (diff) | |
download | tgif-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.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/builtin-grep.c b/builtin-grep.c index d79a6260a4..63dc31c45c 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); |