From 57d3635e42752289388b0a178fd636acbf3b90fa Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Mon, 5 Oct 2020 17:58:46 +0200 Subject: qmp: Assert that no other monitor is active monitor_qmp_dispatch() is never supposed to be called in the context of another monitor, so assert that monitor_cur() is NULL instead of saving and restoring it. Signed-off-by: Kevin Wolf Message-Id: <20201005155855.256490-6-kwolf@redhat.com> Reviewed-by: Markus Armbruster Reviewed-by: Stefan Hajnoczi Signed-off-by: Markus Armbruster --- monitor/qmp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/monitor/qmp.c b/monitor/qmp.c index bb2d9d0cc7..8469970c69 100644 --- a/monitor/qmp.c +++ b/monitor/qmp.c @@ -140,8 +140,11 @@ static void monitor_qmp_dispatch(MonitorQMP *mon, QObject *req) QDict *error; old_mon = monitor_set_cur(&mon->common); + assert(old_mon == NULL); + rsp = qmp_dispatch(mon->commands, req, qmp_oob_enabled(mon)); - monitor_set_cur(old_mon); + + monitor_set_cur(NULL); if (mon->commands == &qmp_cap_negotiation_commands) { error = qdict_get_qdict(rsp, "error"); -- cgit v1.2.3