]> git.proxmox.com Git - mirror_qemu.git/commit - tests/test-qobject-input-visitor.c
qobject-input-visitor: Reject non-finite numbers with keyval
authorMarkus Armbruster <armbru@redhat.com>
Mon, 22 May 2017 16:42:12 +0000 (18:42 +0200)
committerMarkus Armbruster <armbru@redhat.com>
Wed, 31 May 2017 14:04:05 +0000 (16:04 +0200)
commit5891c388bbdd48ba0440d2738155f364589a432a
treef2d4a1c7de646d6caf312761e4fc8a0834ab288d
parent0748b3526e8cb78b9cd64208426bfc3d54a72b04
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>
qapi/qobject-input-visitor.c
tests/test-qobject-input-visitor.c