Re: [Qemu-devel] [PATCH v2] monitor: report entirety of hmp command on error
* Collin Walling (wall...@linux.ibm.com) wrote: > When a user incorrectly provides an hmp command, an error response will be > printed that prompts the user to try "help ". However, when > the command contains multiple parts e.g. "info uuid xyz", only the last > whitespace delimited string will be reported (in this example "info" will > be dropped and the message will read "Try "help uuid" for more information", > which is incorrect). > > Let's correct this by capturing the entirety of the command from the command > line -- excluding any extraneous characters. > > Reported-by: Mikhail Fokin > Signed-off-by: Collin Walling Queued > --- > monitor.c | 8 ++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/monitor.c b/monitor.c > index 39f8ee1..38736b3 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -3371,6 +3371,7 @@ static void handle_hmp_command(Monitor *mon, const char > *cmdline) > { > QDict *qdict; > const mon_cmd_t *cmd; > +const char *cmd_start = cmdline; > > trace_handle_hmp_command(mon, cmdline); > > @@ -3381,8 +3382,11 @@ static void handle_hmp_command(Monitor *mon, const > char *cmdline) > > qdict = monitor_parse_arguments(mon, &cmdline, cmd); > if (!qdict) { > -monitor_printf(mon, "Try \"help %s\" for more information\n", > - cmd->name); > +while (cmdline > cmd_start && qemu_isspace(cmdline[-1])) { > +cmdline--; > +} > +monitor_printf(mon, "Try \"help %.*s\" for more information\n", > + (int)(cmdline - cmd_start), cmd_start); > return; > } > > -- > 2.7.4 > > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
Re: [Qemu-devel] [PATCH v2] monitor: report entirety of hmp command on error
On 06/21/2018 07:19 AM, Dr. David Alan Gilbert wrote: > * Collin Walling (wall...@linux.ibm.com) wrote: >> When a user incorrectly provides an hmp command, an error response will be >> printed that prompts the user to try "help ". However, when >> the command contains multiple parts e.g. "info uuid xyz", only the last >> whitespace delimited string will be reported (in this example "info" will >> be dropped and the message will read "Try "help uuid" for more information", >> which is incorrect). >> >> Let's correct this by capturing the entirety of the command from the command >> line -- excluding any extraneous characters. >> >> Reported-by: Mikhail Fokin >> Signed-off-by: Collin Walling > > Queued Thank you! > >> --- >> monitor.c | 8 ++-- >> 1 file changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/monitor.c b/monitor.c >> index 39f8ee1..38736b3 100644 >> --- a/monitor.c >> +++ b/monitor.c >> @@ -3371,6 +3371,7 @@ static void handle_hmp_command(Monitor *mon, const >> char *cmdline) >> { >> QDict *qdict; >> const mon_cmd_t *cmd; >> +const char *cmd_start = cmdline; >> >> trace_handle_hmp_command(mon, cmdline); >> >> @@ -3381,8 +3382,11 @@ static void handle_hmp_command(Monitor *mon, const >> char *cmdline) >> >> qdict = monitor_parse_arguments(mon, &cmdline, cmd); >> if (!qdict) { >> -monitor_printf(mon, "Try \"help %s\" for more information\n", >> - cmd->name); >> +while (cmdline > cmd_start && qemu_isspace(cmdline[-1])) { >> +cmdline--; >> +} >> +monitor_printf(mon, "Try \"help %.*s\" for more information\n", >> + (int)(cmdline - cmd_start), cmd_start); >> return; >> } >> >> -- >> 2.7.4 >> >> > -- > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK > -- Respectfully, - Collin Walling
Re: [Qemu-devel] [PATCH v2] monitor: report entirety of hmp command on error
When a user incorrectly provides an hmp command, an error response will be printed that prompts the user to try "help ". However, when the command contains multiple parts e.g. "info uuid xyz", only the last whitespace delimited string will be reported (in this example "info" will be dropped and the message will read "Try "help uuid" for more information", which is incorrect). Let's correct this by capturing the entirety of the command from the command line -- excluding any extraneous characters. Reported-by: Mikhail Fokin Signed-off-by: Collin Walling --- monitor.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/monitor.c b/monitor.c index 39f8ee1..38736b3 100644 --- a/monitor.c +++ b/monitor.c @@ -3371,6 +3371,7 @@ static void handle_hmp_command(Monitor *mon, const char *cmdline) { QDict *qdict; const mon_cmd_t *cmd; +const char *cmd_start = cmdline; trace_handle_hmp_command(mon, cmdline); @@ -3381,8 +3382,11 @@ static void handle_hmp_command(Monitor *mon, const char *cmdline) qdict = monitor_parse_arguments(mon, &cmdline, cmd); if (!qdict) { -monitor_printf(mon, "Try \"help %s\" for more information\n", - cmd->name); +while (cmdline > cmd_start && qemu_isspace(cmdline[-1])) { +cmdline--; +} +monitor_printf(mon, "Try \"help %.*s\" for more information\n", + (int)(cmdline - cmd_start), cmd_start); return; } -- 2.7.4
Re: [Qemu-devel] [PATCH v2] monitor: report entirety of hmp command on error
On 05/07/2018 09:30 AM, Collin Walling wrote: When a user incorrectly provides an hmp command, an error response will be printed that prompts the user to try "help ". However, when the command contains multiple parts e.g. "info uuid xyz", only the last whitespace delimited string will be reported (in this example "info" will be dropped and the message will read "Try "help uuid" for more information", which is incorrect). Let's correct this by capturing the entirety of the command from the command line -- excluding any extraneous characters. It's better to post a v2 patch as a new top-level thread instead of in-reply to an earlier version, as some of our automated tooling is more likely to see it. Reported-by: Mikhail Fokin Signed-off-by: Collin Walling --- monitor.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) Reviewed-by: Eric Blake -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
Re: [Qemu-devel] [PATCH v2] monitor: report entirety of hmp command on error
On 05/07/2018 12:44 PM, Eric Blake wrote: > On 05/07/2018 09:30 AM, Collin Walling wrote: >> When a user incorrectly provides an hmp command, an error response will be >> printed that prompts the user to try "help ". However, when >> the command contains multiple parts e.g. "info uuid xyz", only the last >> whitespace delimited string will be reported (in this example "info" will >> be dropped and the message will read "Try "help uuid" for more information", >> which is incorrect). >> >> Let's correct this by capturing the entirety of the command from the command >> line -- excluding any extraneous characters. >> > > It's better to post a v2 patch as a new top-level thread instead of in-reply > to an earlier version, as some of our automated tooling is more likely to see > it. > >> Reported-by: Mikhail Fokin >> Signed-off-by: Collin Walling >> --- >> monitor.c | 8 ++-- >> 1 file changed, 6 insertions(+), 2 deletions(-) > > Reviewed-by: Eric Blake > Noted. And thank you for the r-b. -- Respectfully, - Collin Walling
Re: [Qemu-devel] [PATCH v2] monitor: report entirety of hmp command on error
David, looks like your turf. Collin Walling writes: > When a user incorrectly provides an hmp command, an error response will be > printed that prompts the user to try "help ". However, when > the command contains multiple parts e.g. "info uuid xyz", only the last > whitespace delimited string will be reported (in this example "info" will > be dropped and the message will read "Try "help uuid" for more information", > which is incorrect). > > Let's correct this by capturing the entirety of the command from the command > line -- excluding any extraneous characters. > > Reported-by: Mikhail Fokin > Signed-off-by: Collin Walling > --- > monitor.c | 8 ++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/monitor.c b/monitor.c > index 39f8ee1..38736b3 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -3371,6 +3371,7 @@ static void handle_hmp_command(Monitor *mon, const char > *cmdline) > { > QDict *qdict; > const mon_cmd_t *cmd; > +const char *cmd_start = cmdline; > > trace_handle_hmp_command(mon, cmdline); > > @@ -3381,8 +3382,11 @@ static void handle_hmp_command(Monitor *mon, const > char *cmdline) > > qdict = monitor_parse_arguments(mon, &cmdline, cmd); > if (!qdict) { > -monitor_printf(mon, "Try \"help %s\" for more information\n", > - cmd->name); > +while (cmdline > cmd_start && qemu_isspace(cmdline[-1])) { > +cmdline--; > +} > +monitor_printf(mon, "Try \"help %.*s\" for more information\n", > + (int)(cmdline - cmd_start), cmd_start); > return; > }
Re: [Qemu-devel] [PATCH v2] monitor: report entirety of hmp command on error
* Markus Armbruster (arm...@redhat.com) wrote: > David, looks like your turf. Yep, I've got it on my list to take. Dave > Collin Walling writes: > > > When a user incorrectly provides an hmp command, an error response will be > > printed that prompts the user to try "help ". However, when > > the command contains multiple parts e.g. "info uuid xyz", only the last > > whitespace delimited string will be reported (in this example "info" will > > be dropped and the message will read "Try "help uuid" for more information", > > which is incorrect). > > > > Let's correct this by capturing the entirety of the command from the command > > line -- excluding any extraneous characters. > > > > Reported-by: Mikhail Fokin > > Signed-off-by: Collin Walling > > --- > > monitor.c | 8 ++-- > > 1 file changed, 6 insertions(+), 2 deletions(-) > > > > diff --git a/monitor.c b/monitor.c > > index 39f8ee1..38736b3 100644 > > --- a/monitor.c > > +++ b/monitor.c > > @@ -3371,6 +3371,7 @@ static void handle_hmp_command(Monitor *mon, const > > char *cmdline) > > { > > QDict *qdict; > > const mon_cmd_t *cmd; > > +const char *cmd_start = cmdline; > > > > trace_handle_hmp_command(mon, cmdline); > > > > @@ -3381,8 +3382,11 @@ static void handle_hmp_command(Monitor *mon, const > > char *cmdline) > > > > qdict = monitor_parse_arguments(mon, &cmdline, cmd); > > if (!qdict) { > > -monitor_printf(mon, "Try \"help %s\" for more information\n", > > - cmd->name); > > +while (cmdline > cmd_start && qemu_isspace(cmdline[-1])) { > > +cmdline--; > > +} > > +monitor_printf(mon, "Try \"help %.*s\" for more information\n", > > + (int)(cmdline - cmd_start), cmd_start); > > return; > > } -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK