summaryrefslogtreecommitdiffstats
path: root/qapi/qobject-input-visitor.c
diff options
context:
space:
mode:
authorPeter Maydell2017-06-01 17:39:16 +0200
committerPeter Maydell2017-06-01 17:39:16 +0200
commit43771d5d92312504305c19abe29ec5bfabd55f01 (patch)
tree9dc7719fb3b71f42f669b190126b1cf4731a1d08 /qapi/qobject-input-visitor.c
parentMerge remote-tracking branch 'remotes/riku/tags/pull-linux-user-20170531' int... (diff)
parentqapi: Reject alternates that can't work with keyval_parse() (diff)
downloadqemu-43771d5d92312504305c19abe29ec5bfabd55f01.tar.gz
qemu-43771d5d92312504305c19abe29ec5bfabd55f01.tar.xz
qemu-43771d5d92312504305c19abe29ec5bfabd55f01.zip
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2017-05-31' into staging
QAPI patches for 2017-05-31 # gpg: Signature made Wed 31 May 2017 18:06:39 BST # gpg: using RSA key 0x3870B400EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-qapi-2017-05-31: qapi: Reject alternates that can't work with keyval_parse() tests/qapi-schema: Avoid 'str' in alternate test cases qapi: Document visit_type_any() issues with keyval input qobject-input-visitor: Reject non-finite numbers with keyval Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qapi/qobject-input-visitor.c')
-rw-r--r--qapi/qobject-input-visitor.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/qapi/qobject-input-visitor.c b/qapi/qobject-input-visitor.c
index d0f0002317..eac40f618a 100644
--- a/qapi/qobject-input-visitor.c
+++ b/qapi/qobject-input-visitor.c
@@ -13,6 +13,7 @@
*/
#include "qemu/osdep.h"
+#include <math.h>
#include "qapi/error.h"
#include "qapi/qobject-input-visitor.h"
#include "qapi/visitor-impl.h"
@@ -568,7 +569,7 @@ static void qobject_input_type_number_keyval(Visitor *v, const char *name,
errno = 0;
*obj = strtod(str, &endp);
- if (errno || endp == str || *endp) {
+ if (errno || endp == str || *endp || !isfinite(*obj)) {
/* TODO report -ERANGE more nicely */
error_setg(errp, QERR_INVALID_PARAMETER_TYPE,
full_name(qiv, name), "number");