fix pack file creation in the presence of tagged tag objects
commit28a5e8a2773338dd831d61aeafa5d279417be5b6
authorStefan Sperling <stsp@stsp.name>
Fri, 27 Sep 2024 14:45:52 +0000 (27 14:45 +0000)
committerThomas Adam <thomas@xteddy.org>
Tue, 1 Oct 2024 23:00:28 +0000 (2 00:00 +0100)
treec91a9bb461c3fef6ab87ddfd8792cffa8e5eef3f
parent3e6e13b22e6744ac9ba40feadac972d441b7e6c5
fix pack file creation in the presence of tagged tag objects

If a repository contains a tag that tags another tag we could fail
with a "bad object data" error while creating pack files because
the packed-object-enumeration code assumed that only commits get
tagged, trying to parse the tagged tag object as if it were a commit.

This issue affected 'got send' and 'gotadmin pack'.

There is probably more work to do here because other weird cases are
known to exist in the wild, such as git.git's refs/tags/junio-gpg-pub
which tags a blob.

Problem with 'got send' reported by jrick@
libexec/got-read-pack/got-read-pack.c
regress/cmdline/pack.sh