submodule: fix latent check_has_commit() bug
commit5fff35d880df2bb4cfce032c54a95abadce3f881
authorGlen Choo <chooglen@google.com>
Tue, 8 Mar 2022 00:14:33 +0000 (7 16:14 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 16 Mar 2022 23:08:59 +0000 (16 16:08 -0700)
tree5b031c27857f5fb0468a7d05e6f6546aba56de1b
parentb90d9f7632d380d3f16197ae657ab57075acd1eb
submodule: fix latent check_has_commit() bug

When check_has_commit() is called on a missing submodule, initialization
of the struct repository fails, but it attempts to clear the struct
anyway (which is a fatal error). This bug is masked by its only caller,
submodule_has_commits(), first calling add_submodule_odb(). The latter
fails if the submodule does not exist, making submodule_has_commits()
exit early and not invoke check_has_commit().

Fix this bug, and because calling add_submodule_odb() is no longer
necessary as of 13a2f620b2 (submodule: pass repo to
check_has_commit(), 2021-10-08), remove that call too.

This is the last caller of add_submodule_odb(), so remove that
function. (Submodule ODBs are still added as alternates via
add_submodule_odb_by_path().)

Signed-off-by: Glen Choo <chooglen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
submodule.c
submodule.h