From: Michael Tremer Date: Sat, 19 Oct 2024 09:27:55 +0000 (+0000) Subject: httpclient: Keep better track of all sorts of references X-Git-Tag: 0.9.30~997 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c887af2358c0f0e389422479f23e74422cdcd1c9;p=pakfire.git httpclient: Keep better track of all sorts of references Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/httpclient.c b/src/libpakfire/httpclient.c index c272c3b61..4e068eba6 100644 --- a/src/libpakfire/httpclient.c +++ b/src/libpakfire/httpclient.c @@ -430,11 +430,8 @@ static void pakfire_httpclient_free(struct pakfire_httpclient* client) { struct pakfire_httpclient_xfer* e = NULL; // Free any xfers that we still hold - for (;;) { + while (!TAILQ_EMPTY(&client->xfers)) { e = TAILQ_LAST(&client->xfers, xfers); - if (!e) - break; - TAILQ_REMOVE(&client->xfers, e, nodes); pakfire_httpclient_xfer_free(e); @@ -581,6 +578,9 @@ int pakfire_httpclient_remove_xfer(struct pakfire_httpclient* client, goto ERROR; } + if (e) + TAILQ_REMOVE(&client->xfers, e, nodes); + ERROR: if (e) pakfire_httpclient_xfer_free(e);