]> git.ipfire.org Git - pakfire.git/commitdiff
httpclient: Keep better track of all sorts of references
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 19 Oct 2024 09:27:55 +0000 (09:27 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 19 Oct 2024 09:27:55 +0000 (09:27 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/httpclient.c

index c272c3b611235df48284b016e5633a823ffcd2a9..4e068eba65ac250c9de5e994590da6f754a5b263 100644 (file)
@@ -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);