зеркало из https://github.com/microsoft/git.git
Merge branch 'js/regexec-buf'
Fix for potential segv introduced in v2.11.0 and later (also v2.10.2). * js/regexec-buf: pickaxe: fix segfault with '-S<...> --pickaxe-regex'
This commit is contained in:
Коммит
0efeb5ca12
|
@ -81,12 +81,15 @@ static unsigned int contains(mmfile_t *mf, regex_t *regexp, kwset_t kws)
|
|||
regmatch_t regmatch;
|
||||
int flags = 0;
|
||||
|
||||
while (*data &&
|
||||
while (sz && *data &&
|
||||
!regexec_buf(regexp, data, sz, 1, ®match, flags)) {
|
||||
flags |= REG_NOTBOL;
|
||||
data += regmatch.rm_eo;
|
||||
if (*data && regmatch.rm_so == regmatch.rm_eo)
|
||||
sz -= regmatch.rm_eo;
|
||||
if (sz && *data && regmatch.rm_so == regmatch.rm_eo) {
|
||||
data++;
|
||||
sz--;
|
||||
}
|
||||
cnt++;
|
||||
}
|
||||
|
||||
|
|
|
@ -19,4 +19,9 @@ test_expect_success '-G matches' '
|
|||
test 4096-zeroes.txt = "$(cat out)"
|
||||
'
|
||||
|
||||
test_expect_success '-S --pickaxe-regex' '
|
||||
git diff --name-only -S0 --pickaxe-regex HEAD^ >out &&
|
||||
verbose test 4096-zeroes.txt = "$(cat out)"
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче