shallow: fix memory leak when registering shallow roots

When registering shallow roots, we unset the list of parents of the
to-be-registered commit if it's already been parsed. This causes us to
leak memory though because we never free this list. Fix this.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt 2023-11-06 11:45:57 +01:00 коммит произвёл Junio C Hamano
Родитель 40e9136ff6
Коммит 568cc818cc
3 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -38,8 +38,10 @@ int register_shallow(struct repository *r, const struct object_id *oid)
oidcpy(&graft->oid, oid);
graft->nr_parent = -1;
if (commit && commit->object.parsed)
if (commit && commit->object.parsed) {
free_commit_list(commit->parents);
commit->parents = NULL;
}
return register_commit_graft(r, graft, 0);
}

Просмотреть файл

@ -1,6 +1,8 @@
#!/bin/sh
test_description='check bitmap operation with shallow repositories'
TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
# We want to create a situation where the shallow, grafted

Просмотреть файл

@ -2,6 +2,7 @@
test_description='errors in upload-pack'
TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
D=$(pwd)