mirror of
https://github.com/git/git.git
synced 2026-08-10 01:49:12 +00:00
bisect: handle NULL commit in bisect_successful()
When `lookup_commit_reference_by_name()` is called to find the first bad commit, the result is passed to `repo_format_commit_message()` immediately, which dereferences commit without checking for NULL. However, the commit could be NULL, even though in practice this is unlikely because `bisect_successful()` is only called after a successful bisect run has identified the bad commit, but the ref could still become dangling due to a concurrent gc or repository corruption. Pointed out by Coverity. Assisted-by: Claude Opus 4.6 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
775f1f2b19
commit
74fb18824c
@@ -663,6 +663,11 @@ static int bisect_successful(struct bisect_terms *terms)
|
||||
|
||||
refs_read_ref(get_main_ref_store(the_repository), bad_ref, &oid);
|
||||
commit = lookup_commit_reference_by_name(bad_ref);
|
||||
if (!commit) {
|
||||
error(_("could not find commit for '%s'"), bad_ref);
|
||||
free(bad_ref);
|
||||
return BISECT_FAILED;
|
||||
}
|
||||
repo_format_commit_message(the_repository, commit, "%s", &commit_name,
|
||||
&pp);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user