From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Reported-by: Dimitris Karagkasidis <t.pagef.lt@gmail.com>
Fixes: 48fe86f6400574165979e0db6f5937ad487b6888
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
monitor.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/monitor.c b/monitor.c
index 0c0faec0a4..bec484440f 100644
--- a/monitor.c
+++ b/monitor.c
@@ -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) {
--
2.14.3
On Tue, Feb 13, 2018 at 12:51:43PM +0000, Dr. David Alan Gilbert (git) wrote: > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > Please include the details of how to trigger this bug. This helps justify the patch as well as aiding anyone investigating/backporting the same issue in the future. Aside from that: Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
* Stefan Hajnoczi (stefanha@gmail.com) wrote: > On Tue, Feb 13, 2018 at 12:51:43PM +0000, Dr. David Alan Gilbert (git) wrote: > > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > > > Please include the details of how to trigger this bug. This helps > justify the patch as well as aiding anyone investigating/backporting the > same issue in the future. OK, I'll include Dimitris's: 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'. > Aside from that: > Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Thanks! Dave -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
* Dr. David Alan Gilbert (git) (dgilbert@redhat.com) wrote: > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > Reported-by: Dimitris Karagkasidis <t.pagef.lt@gmail.com> > Fixes: 48fe86f6400574165979e0db6f5937ad487b6888 > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Queued. > --- > monitor.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/monitor.c b/monitor.c > index 0c0faec0a4..bec484440f 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -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) { > -- > 2.14.3 > > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
© 2016 - 2024 Red Hat, Inc.