para_client: Fix a memory leak.
authorAndre Noll <maan@systemlinux.org>
Sun, 22 Jan 2012 21:45:21 +0000 (22:45 +0100)
committerAndre Noll <maan@systemlinux.org>
Sun, 22 Jan 2012 21:45:21 +0000 (22:45 +0100)
The main function of para_client first calls client_parse_config()
to decide whether to start an interactive session, run in completion
mode or execute the given command. In the third case case we call
client_open() which calls client_parse_config() again, thereby
leaking the client_task structure which was returned by the first
call to client_parse_config().

Fix this leak by calling client_connect() instead of client_open().

client.c

index 2242d40e3589fd7211eae249e04b53869c102fd7..0ae015139fc915d5446cbb58b6eacf78d2d9eb2a 100644 (file)
--- a/client.c
+++ b/client.c
@@ -601,7 +601,7 @@ int main(int argc, char *argv[])
         */
        sit.btrn = btr_new_node(&(struct btr_node_description)
                EMBRACE(.name = "stdin"));
-       ret = client_open(argc, argv, &ct, &client_loglevel, sit.btrn, NULL, &sched);
+       ret = client_connect(ct, &sched, sit.btrn, NULL);
        if (ret < 0)
                goto out;
        sot.btrn = btr_new_node(&(struct btr_node_description)