[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC 2/6] qapi: use qemu_strtod() in string-input
From: |
David Hildenbrand |
Subject: |
Re: [Qemu-devel] [PATCH RFC 2/6] qapi: use qemu_strtod() in string-input-visitor |
Date: |
Thu, 15 Nov 2018 12:09:19 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 |
On 14.11.18 17:09, Markus Armbruster wrote:
> David Hildenbrand <address@hidden> writes:
>
>> Let's use the new function.
>>
>> Signed-off-by: David Hildenbrand <address@hidden>
>> ---
>> 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
[Qemu-devel] [PATCH RFC 4/6] test-string-input-visitor: use virtual walk, David Hildenbrand, 2018/11/09
[Qemu-devel] [PATCH RFC 6/6] test-string-input-visitor: add range overflow tests, David Hildenbrand, 2018/11/09
[Qemu-devel] [PATCH RFC 5/6] test-string-input-visitor: split off uint64 list tests, David Hildenbrand, 2018/11/09
[Qemu-devel] [PATCH RFC 1/6] cutils: add qemu_strtod(), David Hildenbrand, 2018/11/09