diff options
author | Markus Armbruster | 2018-08-23 18:40:14 +0200 |
---|---|---|
committer | Markus Armbruster | 2018-08-24 20:26:37 +0200 |
commit | dd98e8481992741a6b5ec0bdfcee05c1c8f602d6 (patch) | |
tree | 8d75ba8eb3fa29da29bb243efff2fc65488add72 /include/qapi/qmp/json-streamer.h | |
parent | json: Assert json_parser_parse() consumes all tokens on success (diff) | |
download | qemu-dd98e8481992741a6b5ec0bdfcee05c1c8f602d6.tar.gz qemu-dd98e8481992741a6b5ec0bdfcee05c1c8f602d6.tar.xz qemu-dd98e8481992741a6b5ec0bdfcee05c1c8f602d6.zip |
qjson: Have qobject_from_json() & friends reject empty and blank
The last case where qobject_from_json() & friends return null without
setting an error is empty or blank input. Callers:
* block.c's parse_json_protocol() reports "Could not parse the JSON
options". It's marked as a work-around, because it also covered
actual bugs, but they got fixed in the previous few commits.
* qobject_input_visitor_new_str() reports "JSON parse error". Also
marked as work-around. The recent fixes have made this unreachable,
because it currently gets called only for input starting with '{'.
* check-qjson.c's empty_input() and blank_input() demonstrate the
behavior.
* The other callers are not affected since they only pass input with
exactly one JSON value or, in the case of negative tests, one error.
Fail with "Expecting a JSON value" instead of returning null, and
simplify callers.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20180823164025.12553-48-armbru@redhat.com>
Diffstat (limited to 'include/qapi/qmp/json-streamer.h')
0 files changed, 0 insertions, 0 deletions