[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 09/23] monitor: Fix leakage during completion pro
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH v4 09/23] monitor: Fix leakage during completion processing |
Date: |
Wed, 16 Jun 2010 00:38:33 +0200 |
From: Jan Kiszka <address@hidden>
Given too many arguments or an invalid command, we were leaking the
duplicated argument strings.
Signed-off-by: Jan Kiszka <address@hidden>
---
monitor.c | 23 +++++++++++++++--------
1 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/monitor.c b/monitor.c
index 05a7ed1..242aee6 100644
--- a/monitor.c
+++ b/monitor.c
@@ -3877,8 +3877,9 @@ static void monitor_find_completion(const char *cmdline)
next arg */
len = strlen(cmdline);
if (len > 0 && qemu_isspace(cmdline[len - 1])) {
- if (nb_args >= MAX_ARGS)
- return;
+ if (nb_args >= MAX_ARGS) {
+ goto cleanup;
+ }
args[nb_args++] = qemu_strdup("");
}
if (nb_args <= 1) {
@@ -3893,12 +3894,15 @@ static void monitor_find_completion(const char *cmdline)
}
} else {
/* find the command */
- for(cmd = mon_cmds; cmd->name != NULL; cmd++) {
- if (compare_cmd(args[0], cmd->name))
- goto found;
+ for (cmd = mon_cmds; cmd->name != NULL; cmd++) {
+ if (compare_cmd(args[0], cmd->name)) {
+ break;
+ }
}
- return;
- found:
+ if (!cmd->name) {
+ goto cleanup;
+ }
+
ptype = next_arg_type(cmd->args_type);
for(i = 0; i < nb_args - 2; i++) {
if (*ptype != '\0') {
@@ -3948,8 +3952,11 @@ static void monitor_find_completion(const char *cmdline)
break;
}
}
- for(i = 0; i < nb_args; i++)
+
+cleanup:
+ for (i = 0; i < nb_args; i++) {
qemu_free(args[i]);
+ }
}
static int monitor_can_read(void *opaque)
--
1.6.0.2
- [Qemu-devel] [PATCH v4 06/23] qdev: Push QMP mode checks into qbus_list_bus/dev, (continued)
- [Qemu-devel] [PATCH v4 08/23] qdev: Introduce qdev_iterate_recursive, Jan Kiszka, 2010/06/15
- [Qemu-devel] [PATCH v4 07/23] qdev: Allow device specification by qtree path for device_del, Jan Kiszka, 2010/06/15
- [Qemu-devel] [PATCH v4 09/23] monitor: Fix leakage during completion processing,
Jan Kiszka <=
- [Qemu-devel] [PATCH v4 10/23] monitor: Fix command completion vs. boolean switches, Jan Kiszka, 2010/06/15
- [Qemu-devel] [PATCH v4 13/23] monitor: Allow to specify HMP-specifc command arguments, Jan Kiszka, 2010/06/15
- [Qemu-devel] [PATCH v4 11/23] monitor: Add completion support for option lists, Jan Kiszka, 2010/06/15
- Re: [Qemu-devel] [PATCH v4 11/23] monitor: Add completion support for option lists, Markus Armbruster, 2010/06/23
- Re: [Qemu-devel] [PATCH v4 11/23] monitor: Add completion support for option lists, Jan Kiszka, 2010/06/23
- Re: [Qemu-devel] [PATCH v4 11/23] monitor: Add completion support for option lists, Markus Armbruster, 2010/06/23
- Re: [Qemu-devel] [PATCH v4 11/23] monitor: Add completion support for option lists, Luiz Capitulino, 2010/06/28
- Re: [Qemu-devel] [PATCH v4 11/23] monitor: Add completion support for option lists, Jan Kiszka, 2010/06/28
- Re: [Qemu-devel] [PATCH v4 11/23] monitor: Add completion support for option lists, Luiz Capitulino, 2010/06/28