diff --git a/qemu/qapi/qobject-input-visitor.c b/qemu/qapi/qobject-input-visitor.c index 68dd3a4e..d0ab70b4 100644 --- a/qemu/qapi/qobject-input-visitor.c +++ b/qemu/qapi/qobject-input-visitor.c @@ -441,13 +441,13 @@ static void qobject_input_type_number(Visitor *v, const char *name, double *obj, } qfloat = qobject_to_qfloat(qobj); - if (qfloat) { - *obj = qfloat_get_double(qobject_to_qfloat(qobj)); + if (!qfloat) { + error_setg(errp, QERR_INVALID_PARAMETER_TYPE, + full_name(qiv, name), "number"); return; } - error_setg(errp, QERR_INVALID_PARAMETER_TYPE, - full_name(qiv, name), "number"); + *obj = qfloat_get_double(qobject_to_qfloat(qobj)); } static void qobject_input_type_any(Visitor *v, const char *name, QObject **obj,