[Qemu-devel] [PATCH] monitor: Fix tracepoint crash on JSON syntax error

Markus Armbruster posted 1 patch 7 years, 3 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180716091012.29510-1-armbru@redhat.com
Test checkpatch passed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
monitor.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Qemu-devel] [PATCH] monitor: Fix tracepoint crash on JSON syntax error
Posted by Markus Armbruster 7 years, 3 months ago
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>
---
 monitor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/monitor.c b/monitor.c
index 7af1f18d13..be29634a00 100644
--- 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);
-- 
2.17.1


Re: [Qemu-devel] [PATCH] monitor: Fix tracepoint crash on JSON syntax error
Posted by Marc-André Lureau 7 years, 3 months ago
On Mon, Jul 16, 2018 at 11:10 AM, Markus Armbruster <armbru@redhat.com> wrote:
> 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>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

> ---
>  monitor.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/monitor.c b/monitor.c
> index 7af1f18d13..be29634a00 100644
> --- 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);
> --
> 2.17.1
>
>



-- 
Marc-André Lureau

Re: [Qemu-devel] [PATCH] monitor: Fix tracepoint crash on JSON syntax error
Posted by Peter Xu 7 years, 3 months ago
On Mon, Jul 16, 2018 at 11:10:12AM +0200, Markus Armbruster wrote:
> 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>

Reviewed-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu