]> git.ipfire.org Git - thirdparty/git.git/commit
builtin/bundle: have unbundle check for repo before opening its bundle
authorPatrick Steinhardt <ps@pks.im>
Tue, 13 Aug 2024 09:18:08 +0000 (11:18 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 13 Aug 2024 17:26:20 +0000 (10:26 -0700)
commit7298bcc573f8e022854b1811a9a7413281da05ea
tree9d67ca8ad7e3f805ee6fff87b6afb48e8b31713c
parent39bf06adf96da25b87c9aa7d35a32ef3683eb4a4
builtin/bundle: have unbundle check for repo before opening its bundle

The `git bundle unbundle` subcommand requires a repository to unbundle
the contents into. As thus, the subcommand checks whether we have a
startup repository in the first place, and if not it dies.

This check happens after we have already opened the bundle though. This
causes a segfault when running outside of a repository starting with
c8aed5e8da (repository: stop setting SHA1 as the default object hash,
2024-05-07) because we have no hash function set up, but we do try to
parse refs advertised by the bundle's header.

The next commit will fix that underlying issue by defaulting to the SHA1
object format for bundles, which will also fix the described segfault here.
But as we know that we will die anyway, we can do better than that and
avoid some vain work by moving the check for a repository before we try
to open the bundle.

Reported-by: ArcticLampyrid <ArcticLampyrid@outlook.com>
Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/bundle.c
t/t6020-bundle-misc.sh