Message ID | 1487363905-9480-14-git-send-email-armbru@redhat.com |
---|---|
State | New |
Headers | show |
On 02/17/2017 02:38 PM, Markus Armbruster wrote: > Leave checking qobject_type(req) to qmp_check_input_obj(). Rework > handling of json_parser_parse_err() failing without setting an error. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > monitor.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > Reviewed-by: Eric Blake <eblake@redhat.com>
diff --git a/monitor.c b/monitor.c index 493bed9..1e352a6 100644 --- a/monitor.c +++ b/monitor.c @@ -3735,10 +3735,11 @@ static void handle_qmp_command(JSONMessageParser *parser, GQueue *tokens) Error *err = NULL; req = json_parser_parse_err(tokens, NULL, &err); - if (err || !req || qobject_type(req) != QTYPE_QDICT) { - if (!err) { - error_setg(&err, QERR_JSON_PARSING); - } + if (!req && !err) { + /* json_parser_parse_err() sucks: can fail without setting @err */ + error_setg(&err, QERR_JSON_PARSING); + } + if (err) { goto err_out; }
Leave checking qobject_type(req) to qmp_check_input_obj(). Rework handling of json_parser_parse_err() failing without setting an error. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- monitor.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)