提交 bf67f1c0 编写于 作者: D Dr. David Alan Gilbert

monitor.c: Fix infinite loop in monitor's auto-complete

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: NDimitris Karagkasidis <t.pagef.lt@gmail.com>
Fixes: 48fe86f6Signed-off-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20180213125143.23488-1-dgilbert@redhat.com>
Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
上级 149da2f0
......@@ -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;
......@@ -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) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册