]> git.ipfire.org Git - thirdparty/git.git/commit
builtin/clone: fix leaking repo state when cloning with bundle URIs
authorPatrick Steinhardt <ps@pks.im>
Mon, 30 Sep 2024 09:13:35 +0000 (11:13 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 30 Sep 2024 18:23:04 +0000 (11:23 -0700)
commit6361dea6e8f4476b495319a9d3eeed2e2e694f8a
tree455b7eb20856e1354d138a8d48f4bea4aa82a030
parenta0f2a2f5813596053cf785302b2bbfa76cbd9783
builtin/clone: fix leaking repo state when cloning with bundle URIs

When cloning with bundle URIs we re-initialize `the_repository` after
having fetched the bundle. This causes a bunch of memory leaks though
because we do not release its previous state.

These leaks can be plugged by calling `repo_clear()` before we call
`repo_init()`. But this causes another issue because the remote that we
used is tied to the lifetime of the repository's remote state, which
would also get released. We thus have to make sure that it does not get
free'd under our feet.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/clone.c
t/t5730-protocol-v2-bundle-uri-file.sh
t/t5731-protocol-v2-bundle-uri-git.sh
t/t5732-protocol-v2-bundle-uri-http.sh