[Qemu-devel] [PATCH v6 04/11] hmp: disable monitor in preconfig state

Igor Mammedov posted 11 patches 7 years, 6 months ago
There is a newer version of this series
[Qemu-devel] [PATCH v6 04/11] hmp: disable monitor in preconfig state
Posted by Igor Mammedov 7 years, 6 months ago
Ban it for now, if someone would need it to work early,
one would have to implement checks if HMP command is valid
at preconfig state.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
v5:
  * add 'use QMP instead" to error message, suggesting user
    the right interface to use
v4:
  * v3 was only printing error but not preventing command execution,
    Fix it by returning after printing error message.
    ("Dr. David Alan Gilbert" <dgilbert@redhat.com>)
---
 monitor.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/monitor.c b/monitor.c
index 39f8ee1..0ffdf1d 100644
--- a/monitor.c
+++ b/monitor.c
@@ -3374,6 +3374,12 @@ static void handle_hmp_command(Monitor *mon, const char *cmdline)
 
     trace_handle_hmp_command(mon, cmdline);
 
+    if (runstate_check(RUN_STATE_PRECONFIG)) {
+        monitor_printf(mon, "HMP not available in preconfig state, "
+                            "use QMP instead\n");
+        return;
+    }
+
     cmd = monitor_parse_command(mon, cmdline, &cmdline, mon->cmd_table);
     if (!cmd) {
         return;
-- 
2.7.4


Re: [Qemu-devel] [PATCH v6 04/11] hmp: disable monitor in preconfig state
Posted by Eric Blake 7 years, 6 months ago
On 04/27/2018 10:05 AM, Igor Mammedov wrote:
> Ban it for now, if someone would need it to work early,
> one would have to implement checks if HMP command is valid
> at preconfig state.
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---

Reviewed-by: Eric Blake <eblake@redhat.com>

There's a bisection window between when RUN_STATE_PRECONFIG is added and
this patch where HMP can be used to screw things up, but I'm less
worried about that being triggered in practice.  If you want to avoid
that window, then introduce RUN_STATE_PRECONFIG in one patch, then this
patch, then add command line --preconfig in a later patch (thus, NOTHING
can get into preconfig state, even though the code is starting to be
modified to honor it, until --preconfig is enabled on the command line).

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org