Skip to content

Commit

Permalink
monitor.c: Fix infinite loop in monitor's auto-complete
Browse files Browse the repository at this point in the history
The QEMU monitor enters an infinite loop when trying to auto-complete commands
that accept only optional parameters. The commands currently affected by this
issue are 'info registers' and 'info mtree'.

Reported-by: Dimitris Karagkasidis <[email protected]>
Fixes: 48fe86f
Signed-off-by: Dr. David Alan Gilbert <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Dr. David Alan Gilbert <[email protected]>
  • Loading branch information
dagrh committed Feb 16, 2018
1 parent 149da2f commit bf67f1c
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions monitor.c
Original file line number Diff line number Diff line change
Expand Up @@ -3696,7 +3696,7 @@ static void monitor_find_completion_by_table(Monitor *mon,
{
const char *cmdname;
int i;
const char *ptype, *str, *name;
const char *ptype, *old_ptype, *str, *name;
const mon_cmd_t *cmd;
BlockBackend *blk = NULL;

Expand Down Expand Up @@ -3741,7 +3741,9 @@ static void monitor_find_completion_by_table(Monitor *mon,
}
}
str = args[nb_args - 1];
while (*ptype == '-' && ptype[1] != '\0') {
old_ptype = NULL;
while (*ptype == '-' && old_ptype != ptype) {
old_ptype = ptype;
ptype = next_arg_type(ptype);
}
switch(*ptype) {
Expand Down

0 comments on commit bf67f1c

Please sign in to comment.