Revision 03a63484
b/monitor.c | ||
---|---|---|
3882 | 3882 |
next arg */ |
3883 | 3883 |
len = strlen(cmdline); |
3884 | 3884 |
if (len > 0 && qemu_isspace(cmdline[len - 1])) { |
3885 |
if (nb_args >= MAX_ARGS) |
|
3886 |
return; |
|
3885 |
if (nb_args >= MAX_ARGS) { |
|
3886 |
goto cleanup; |
|
3887 |
} |
|
3887 | 3888 |
args[nb_args++] = qemu_strdup(""); |
3888 | 3889 |
} |
3889 | 3890 |
if (nb_args <= 1) { |
... | ... | |
3898 | 3899 |
} |
3899 | 3900 |
} else { |
3900 | 3901 |
/* find the command */ |
3901 |
for(cmd = mon_cmds; cmd->name != NULL; cmd++) { |
|
3902 |
if (compare_cmd(args[0], cmd->name)) |
|
3903 |
goto found; |
|
3902 |
for (cmd = mon_cmds; cmd->name != NULL; cmd++) { |
|
3903 |
if (compare_cmd(args[0], cmd->name)) { |
|
3904 |
break; |
|
3905 |
} |
|
3904 | 3906 |
} |
3905 |
return; |
|
3906 |
found: |
|
3907 |
if (!cmd->name) { |
|
3908 |
goto cleanup; |
|
3909 |
} |
|
3910 |
|
|
3907 | 3911 |
ptype = next_arg_type(cmd->args_type); |
3908 | 3912 |
for(i = 0; i < nb_args - 2; i++) { |
3909 | 3913 |
if (*ptype != '\0') { |
... | ... | |
3953 | 3957 |
break; |
3954 | 3958 |
} |
3955 | 3959 |
} |
3956 |
for(i = 0; i < nb_args; i++) |
|
3960 |
|
|
3961 |
cleanup: |
|
3962 |
for (i = 0; i < nb_args; i++) { |
|
3957 | 3963 |
qemu_free(args[i]); |
3964 |
} |
|
3958 | 3965 |
} |
3959 | 3966 |
|
3960 | 3967 |
static int monitor_can_read(void *opaque) |
Also available in: Unified diff