On 2/8/19 12:10 AM, Mykola Ivanets wrote: > From: Nikolay Ivanets <[email protected]>
Grammar in the subject: s/ to//
>
> nbdkit_parse_size() uses strtoumax() function to parse input strings
> which states:
>
> 1. Some more tests were added to cover described behaviour.
>
> 2. Input strings where grouped into a set which lead to
> valid/invalid/negative/overflow result.
>
> 3. Some strings with a leading '+' sign were added.
> ---
> errno = 0;
> - size = strtoumax (str, &end, 10);
> - if (errno || str == end) {
> + size = strtoimax (str, &end, 10);
> + if (str == end) {
> nbdkit_error ("could not parse size string (%s)", str);
> return -1;
> }
> + if (size < 0) {
> + nbdkit_error ("size cannot be negative (%s)", str);
> + return -1;
> + }
> + if (errno) {
> + nbdkit_error ("size (%s) exceeds maximum value", str);
> + return -1;
> + }
On underflow, strtoimax returns INTMAX_MIN and sets ERANGE; which favors
a message about negative values over a message about overflow. Swapping
the errno message first would also work, but I'm fine with your approach.
Thanks; pushed!
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
