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