]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
monitor: Fix tracepoint crash on JSON syntax error
authorMarkus Armbruster <armbru@redhat.com>
Mon, 16 Jul 2018 09:10:12 +0000 (11:10 +0200)
committerMarkus Armbruster <armbru@redhat.com>
Mon, 16 Jul 2018 13:46:57 +0000 (15:46 +0200)
When tracepoint handle_qmp_command is enabled, we crash on JSON syntax
errors.  Broken in commit 1cc37471525.  Fix by skipping the tracepoint
on JSON syntax error.  Before the flawed commit, we skipped it by
returning early.

Fixes: CID 1394216
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20180716091012.29510-1-armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
monitor.c

index 7af1f18d13d39a7621e35276c69e2953602433ac..be29634a00887de331ec1e19f9ad7c0ce835a36a 100644 (file)
--- a/monitor.c
+++ b/monitor.c
@@ -4224,7 +4224,7 @@ static void handle_qmp_command(JSONMessageParser *parser, GQueue *tokens)
         qdict_del(qdict, "id");
     } /* else will fail qmp_dispatch() */
 
-    if (trace_event_get_state_backends(TRACE_HANDLE_QMP_COMMAND)) {
+    if (req && trace_event_get_state_backends(TRACE_HANDLE_QMP_COMMAND)) {
         QString *req_json = qobject_to_json(req);
         trace_handle_qmp_command(mon, qstring_get_str(req_json));
         qobject_unref(req_json);