30.03.2019 18:07, Eric Blake wrote:
> Disk sizes close to INT64_MAX cause overflow, for some pretty
> ridiculous output:
> 
>    $ ./nbdkit -U - memory size=$((2**63 - 512)) --run 'qemu-img info $nbd'
>    image: nbd+unix://?socket=/tmp/nbdkitHSAzNz/socket
>    file format: raw
>    virtual size: -8388607T (9223372036854775296 bytes)
>    disk size: unavailable
> 
> But there's no reason to have two separate implementations of integer
> to human-readable abbreviation, where one has overflow and stops at
> 'T', while the other avoids overflow and goes all the way to 'E'. With
> this patch, the output now claims 8EiB instead of -8388607T, which
> really is the correct rounding of largest file size supported by qemu
> (we could go 511 bytes larger if we used byte-accurate sizing instead
> of rounding up to the next sector boundary, but that wouldn't change
> the human-readable result).
> 
> Reported-by: Richard W.M. Jones <rjo...@redhat.com>
> Signed-off-by: Eric Blake <ebl...@redhat.com>

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com>


-- 
Best regards,
Vladimir

Reply via email to