summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2012-12-15 16:56:06 +0100
committerMarcel Holtmann <marcel@holtmann.org>2012-12-15 16:56:06 +0100
commit721f2c3b29d8107d511930f44e60c82115016fc3 (patch)
treec6167bfe7a3059875243a4d96eee043457408b6d /client
parentb4847cb5fbf2f818dbca6844d097fbc3eff44923 (diff)
client: Fix memory leak from readline input callback
Diffstat (limited to 'client')
-rw-r--r--client/main.c11
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,