提交 2e9fdc79 编写于 作者: Æ Ævar Arnfjörð Bjarmason 提交者: Junio C Hamano

bisect: fix a regression causing a segfault

In 7c117184 ("bisect: fix off-by-one error in
`best_bisection_sorted()`", 2017-11-05) the more careful logic dealing
with freeing p->next in 50e62a8e ("rev-list: implement
--bisect-all", 2007-10-22) was removed.

Restore the more careful check to avoid segfaulting. Ideally this
would come with a test case, but we don't have steps to reproduce
this, only a backtrace from gdb pointing to this being the issue.
Reported-by: NYasushi SHOJI <yasushi.shoji@gmail.com>
Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Acked-by: NMartin Ågren <martin.agren@gmail.com>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 f4e45cb3
......@@ -229,8 +229,10 @@ static struct commit_list *best_bisection_sorted(struct commit_list *list, int n
if (i < cnt - 1)
p = p->next;
}
free_commit_list(p->next);
p->next = NULL;
if (p) {
free_commit_list(p->next);
p->next = NULL;
}
strbuf_release(&buf);
free(array);
return list;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册