[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 17/19] cutils: Use parse_uint in qemu_strtosz for negative
|
From: |
Eric Blake |
|
Subject: |
Re: [PATCH v2 17/19] cutils: Use parse_uint in qemu_strtosz for negative rejection |
|
Date: |
Fri, 12 May 2023 14:34:50 -0500 |
|
User-agent: |
NeoMutt/20230512 |
On Thu, May 11, 2023 at 09:10:31PM -0500, Eric Blake wrote:
>
> Rather than open-coding two different ways to check for an unwanted
> negative sign, reuse the same code in both functions. That way, if we
> decide down the road to accept "-0" instead of rejecting it, we have
> fewer places to change. Also, it means we now get ERANGE instead of
> EINVAL for negative values in qemu_strtosz, which is reasonable for
> what it represents.
>
> Signed-off-by: Eric Blake <eblake@redhat.com>
> ---
> tests/unit/test-cutils.c | 7 +++----
> util/cutils.c | 8 ++------
> 2 files changed, 5 insertions(+), 10 deletions(-)
Returning ERANGE instead of EINVAL changes the expected output for
iotests 49 and 178; this needs to be squashed in:
diff --git i/tests/qemu-iotests/049.out w/tests/qemu-iotests/049.out
index 8719c91b483..34e1b452e6e 100644
--- i/tests/qemu-iotests/049.out
+++ w/tests/qemu-iotests/049.out
@@ -92,13 +92,10 @@ Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536
extended_l2=off comp
== 3. Invalid sizes ==
qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- -1024
-qemu-img: Invalid image size specified. You may use k, M, G, T, P or E
suffixes for
-qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabytes.
+qemu-img: Invalid image size specified. Must be between 0 and
9223372036854775807.
qemu-img create -f qcow2 -o size=-1024 TEST_DIR/t.qcow2
-qemu-img: TEST_DIR/t.qcow2: Parameter 'size' expects a non-negative number
below 2^64
-Optional suffix k, M, G, T, P or E means kilo-, mega-, giga-, tera-, peta-
-and exabytes, respectively.
+qemu-img: TEST_DIR/t.qcow2: Value '-1024' is out of range for parameter 'size'
qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- -1k
qemu-img: Invalid image size specified. You may use k, M, G, T, P or E
suffixes for
diff --git i/tests/qemu-iotests/178.out.qcow2 w/tests/qemu-iotests/178.out.qcow2
index 0d51fe401ec..fe193fd5f4f 100644
--- i/tests/qemu-iotests/178.out.qcow2
+++ w/tests/qemu-iotests/178.out.qcow2
@@ -13,8 +13,7 @@ qemu-img: Invalid option list: ,
qemu-img: Invalid parameter 'snapshot.foo'
qemu-img: Failed in parsing snapshot param 'snapshot.foo=bar'
qemu-img: --output must be used with human or json as argument.
-qemu-img: Invalid image size specified. You may use k, M, G, T, P or E
suffixes for
-qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabytes.
+qemu-img: Invalid image size specified. Must be between 0 and
9223372036854775807.
qemu-img: Unknown file format 'foo'
== Size calculation for a new file (human) ==
diff --git i/tests/qemu-iotests/178.out.raw w/tests/qemu-iotests/178.out.raw
index 116241ddef2..445e460fad9 100644
--- i/tests/qemu-iotests/178.out.raw
+++ w/tests/qemu-iotests/178.out.raw
@@ -13,8 +13,7 @@ qemu-img: Invalid option list: ,
qemu-img: Invalid parameter 'snapshot.foo'
qemu-img: Failed in parsing snapshot param 'snapshot.foo=bar'
qemu-img: --output must be used with human or json as argument.
-qemu-img: Invalid image size specified. You may use k, M, G, T, P or E
suffixes for
-qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabytes.
+qemu-img: Invalid image size specified. Must be between 0 and
9223372036854775807.
qemu-img: Unknown file format 'foo'
== Size calculation for a new file (human) ==
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
- [PATCH v2 15/19] cutils: Set value in all qemu_strtosz* error paths, (continued)
- [PATCH v2 15/19] cutils: Set value in all qemu_strtosz* error paths, Eric Blake, 2023/05/11
- [PATCH v2 06/19] cutils: Document differences between parse_uint and qemu_strtou64, Eric Blake, 2023/05/11
- [PATCH v2 13/19] numa: Check for qemu_strtosz_MiB error, Eric Blake, 2023/05/11
- [PATCH v2 18/19] cutils: Improve qemu_strtod* error paths, Eric Blake, 2023/05/11
- [PATCH v2 19/19] cutils: Improve qemu_strtosz handling of fractions, Eric Blake, 2023/05/11
- [PATCH v2 17/19] cutils: Use parse_uint in qemu_strtosz for negative rejection, Eric Blake, 2023/05/11
- Re: [PATCH v2 17/19] cutils: Use parse_uint in qemu_strtosz for negative rejection,
Eric Blake <=
- Re: [PATCH v2 00/19] Fix qemu_strtosz() read-out-of-bounds, Eric Blake, 2023/05/12