From 319fb6cdfff47cb8fbefb829bb2e57409f2bce87 Mon Sep 17 00:00:00 2001 From: Stefan Sperling Date: Thu, 26 Dec 2024 13:00:15 +0000 Subject: [PATCH] fix memory leaks in got-read-pack's enumeration_request() --- libexec/got-read-pack/got-read-pack.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libexec/got-read-pack/got-read-pack.c b/libexec/got-read-pack/got-read-pack.c index 45ffa944..d319aef0 100644 --- a/libexec/got-read-pack/got-read-pack.c +++ b/libexec/got-read-pack/got-read-pack.c @@ -1566,6 +1566,8 @@ enumeration_request(struct imsg *imsg, struct imsgbuf *ibuf, err = send_tree_enumeration_done(ibuf); if (err) goto done; + got_object_commit_close(commit); + commit = NULL; continue; } @@ -1585,10 +1587,14 @@ enumeration_request(struct imsg *imsg, struct imsgbuf *ibuf, if (parents) { struct got_object_qid *pid; STAILQ_FOREACH(pid, parents, entry) { - if (got_object_idset_contains(idset, &pid->id)) - continue; - if (got_object_idset_contains(queued_ids, &pid->id)) + if (got_object_idset_contains(idset, + &pid->id) || + got_object_idset_contains(queued_ids, + &pid->id)) { + got_object_commit_close(commit); + commit = NULL; continue; + } err = got_object_qid_alloc_partial(&qid); if (err) goto done; -- 2.11.4.GIT