diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-12-15 16:56:06 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-12-15 16:56:06 +0100 |
commit | 721f2c3b29d8107d511930f44e60c82115016fc3 (patch) | |
tree | c6167bfe7a3059875243a4d96eee043457408b6d /client | |
parent | b4847cb5fbf2f818dbca6844d097fbc3eff44923 (diff) |
client: Fix memory leak from readline input callback
Diffstat (limited to 'client')
-rw-r--r-- | client/main.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/client/main.c b/client/main.c index 95d237f59..762595e99 100644 --- a/client/main.c +++ b/client/main.c @@ -754,13 +754,13 @@ static void rl_handler(char *input) } if (!strlen(input)) - return; + goto done; add_history(input); cmd = strtok_r(input, " ", &arg); if (!cmd) - return; + goto done; if (arg) { int len = strlen(arg); @@ -774,13 +774,13 @@ static void rl_handler(char *input) if (cmd_table[i].func) { cmd_table[i].func(arg); - return; + goto done; } } if (strcmp(cmd, "help")) { printf("Invalid command\n"); - return; + goto done; } printf("Available commands:\n"); @@ -791,6 +791,9 @@ static void rl_handler(char *input) cmd_table[i].arg ? : " ", cmd_table[i].desc); } + +done: + free(input); } static gboolean input_handler(GIOChannel *channel, GIOCondition condition, |