client: Do not leak buffer tree node on exit.
[paraslash.git] / client_common.c
index 865a1797bd81bbd7e6308278c08249890c1bf241..eb9f9e1fcda2a49ba960582ba67be9c882897a20 100644 (file)
@@ -44,6 +44,7 @@ void client_close(struct client_task *ct)
        free(ct->user);
        free(ct->config_file);
        free(ct->key_file);
        free(ct->user);
        free(ct->config_file);
        free(ct->key_file);
+       btr_free_node(ct->btrn);
        client_cmdline_parser_free(&ct->conf);
        free(ct);
 }
        client_cmdline_parser_free(&ct->conf);
        free(ct);
 }
@@ -418,7 +419,6 @@ out:
        if (ret < 0) {
                PARA_ERROR_LOG("%s\n", para_strerror(-ret));
                btr_remove_node(ct->btrn);
        if (ret < 0) {
                PARA_ERROR_LOG("%s\n", para_strerror(-ret));
                btr_remove_node(ct->btrn);
-               btr_free_node(ct->btrn);
                client_close(ct);
                *ct_ptr = NULL;
        }
                client_close(ct);
                *ct_ptr = NULL;
        }