On 14.11.18 17:09, Markus Armbruster wrote: > David Hildenbrand <da...@redhat.com> writes: > >> Let's use the new function. >> >> Signed-off-by: David Hildenbrand <da...@redhat.com> >> --- >> qapi/string-input-visitor.c | 6 ++---- >> 1 file changed, 2 insertions(+), 4 deletions(-) >> >> diff --git a/qapi/string-input-visitor.c b/qapi/string-input-visitor.c >> index b3fdd0827d..dee708d384 100644 >> --- a/qapi/string-input-visitor.c >> +++ b/qapi/string-input-visitor.c >> @@ -20,6 +20,7 @@ >> #include "qemu/option.h" >> #include "qemu/queue.h" >> #include "qemu/range.h" >> +#include "qemu/cutils.h" >> >> >> struct StringInputVisitor >> @@ -313,12 +314,9 @@ static void parse_type_number(Visitor *v, const char >> *name, double *obj, >> Error **errp) >> { >> StringInputVisitor *siv = to_siv(v); >> - char *endp = (char *) siv->string; >> double val; >> >> - errno = 0; >> - val = strtod(siv->string, &endp); >> - if (errno || endp == siv->string || *endp) { >> + if (qemu_strtod(siv->string, NULL, &val)) { >> error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", >> "number"); >> return; > > Three more: in qobject-input-visitor.c's > qobject_input_type_number_keyval(),
This one is interesting, as it properly bails out when parsing "inf" (via isFinite()). - should we do the same for the string input visitor? Especially, should we forbid "inf" and "NaN" in both scenarios? cutil.c's do_strtosz(), and > json-parser.c's parse_literal(). > > The latter doesn't check for errors since the lexer ensures the input is > sane. Overflow can still happen, and is silently ignored. Feel free > not to convert this one. > I'll do the conversion of all (allowing -ERANGE where it used to be allow), we can then discuss with the patches at hand if it makes sense. -- Thanks, David / dhildenb