qemu/qapi
Markus Armbruster 5891c388bb qobject-input-visitor: Reject non-finite numbers with keyval
The QObject input visitor can produce only finite numbers when its
input comes out of the JSON parser, because the the JSON parser
implements RFC 7159, which provides no syntax for infinity and NaN.

However, it can produce infinity and NaN when its input comes out of
keyval_parse(), because we parse with strtod() then.

The keyval variant should not be able to express things the JSON
variant can't.  Rejecting non-finite numbers there is the conservative
fix.  It's also minimally invasive.

We could instead extend our JSON dialect to provide for infinity and
NaN.  Not today.

Note that the JSON formatter can emit non-finite numbers (marked FIXME
in commit 6e8e5cb).

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <1495471335-23707-2-git-send-email-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2017-05-31 16:04:05 +02:00
..
block-core.json block: curl: Allow passing cookies via QCryptoSecret 2017-05-16 10:31:08 -04:00
block.json sockets: Rename SocketAddress to SocketAddressLegacy 2017-05-09 09:14:40 +02:00
common.json qmp-commands: move 'query-commands' doc to schema 2017-01-16 09:19:47 +01:00
crypto.json qapi: The #optional tag is redundant, drop 2017-03-16 07:13:02 +01:00
event.json shutdown: Expose bool cause in SHUTDOWN and RESET events 2017-05-23 13:28:17 +02:00
introspect.json qapi: The #optional tag is redundant, drop 2017-03-16 07:13:02 +01:00
Makefile.objs qapi: rename *qmp-*-visitor* to *qobject-*-visitor* 2016-10-25 16:25:48 +02:00
opts-visitor.c qapi: Fix QemuOpts visitor regression on unvisited input 2017-03-22 19:24:34 +01:00
qapi-clone-visitor.c qapi: New QAPI_CLONE_MEMBERS() 2017-05-09 09:14:40 +02:00
qapi-dealloc-visitor.c qapi: Add new visit_free() function 2016-07-06 10:52:04 +02:00
qapi-util.c qapi: New parse_qapi_name() 2017-03-07 16:07:47 +01:00
qapi-visit-core.c qapi: Make input visitors detect unvisited list tails 2017-03-05 09:14:20 +01:00
qmp-dispatch.c qmp: Improve QMP dispatch error messages 2017-05-09 09:14:40 +02:00
qmp-event.c qobject: Use simpler QDict/QList scalar insertion macros 2017-05-09 09:13:51 +02:00
qmp-registry.c qapi: Support multiple command registries per program 2017-03-05 09:12:25 +01:00
qobject-input-visitor.c qobject-input-visitor: Reject non-finite numbers with keyval 2017-05-31 16:04:05 +02:00
qobject-output-visitor.c qapi: rename QmpOutputVisitor to QObjectOutputVisitor 2016-10-25 16:25:54 +02:00
rocker.json qapi: The #optional tag is redundant, drop 2017-03-16 07:13:02 +01:00
string-input-visitor.c qapi: Fix string input visitor regression for empty lists 2017-03-21 10:43:01 +01:00
string-output-visitor.c utils: provide size_to_str() 2017-05-17 17:30:45 +01:00
trace-events qapi: Make input visitors detect unvisited list tails 2017-03-05 09:14:20 +01:00
trace.json qapi: The #optional tag is redundant, drop 2017-03-16 07:13:02 +01:00