зеркало из https://github.com/microsoft/git.git
grep -An -Bm: fix invocation of external grep command
When building command line to invoke external grep, the arguments to -A/-B/-C options were placd in randarg[] buffer, but the code forgot that snprintf() does not count terminating NUL in its return value. This caused "git grep -A1 -B2" to invoke external grep with "-B21 -A1". Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
78e694787c
Коммит
4b87474bc9
|
@ -294,7 +294,7 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached)
|
|||
if (opt->pre_context) {
|
||||
push_arg("-B");
|
||||
len += snprintf(argptr, sizeof(randarg)-len,
|
||||
"%u", opt->pre_context);
|
||||
"%u", opt->pre_context) + 1;
|
||||
if (sizeof(randarg) <= len)
|
||||
die("maximum length of args exceeded");
|
||||
push_arg(argptr);
|
||||
|
@ -303,7 +303,7 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached)
|
|||
if (opt->post_context) {
|
||||
push_arg("-A");
|
||||
len += snprintf(argptr, sizeof(randarg)-len,
|
||||
"%u", opt->post_context);
|
||||
"%u", opt->post_context) + 1;
|
||||
if (sizeof(randarg) <= len)
|
||||
die("maximum length of args exceeded");
|
||||
push_arg(argptr);
|
||||
|
@ -313,7 +313,7 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached)
|
|||
else {
|
||||
push_arg("-C");
|
||||
len += snprintf(argptr, sizeof(randarg)-len,
|
||||
"%u", opt->post_context);
|
||||
"%u", opt->post_context) + 1;
|
||||
if (sizeof(randarg) <= len)
|
||||
die("maximum length of args exceeded");
|
||||
push_arg(argptr);
|
||||
|
|
Загрузка…
Ссылка в новой задаче