From: Hanna Czenczek <hreitz@redhat.com>
To: Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org
Cc: armbru@redhat.com, richard.henderson@linaro.org
Subject: Re: [PATCH v2 17/19] cutils: Use parse_uint in qemu_strtosz for negative rejection
Date: Fri, 19 May 2023 17:32:25 +0200 [thread overview]
Message-ID: <9fbc12f3-f2a1-cd9f-be2c-903d367b5f4d@redhat.com> (raw)
In-Reply-To: <7rcpd5t42niowmel4cxzs2xb7qxw42jmumr4e2r6y2tsmf3r5w@dhkruvghfjlx>
On 12.05.23 21:34, Eric Blake wrote:
> 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) ==
With that squashed in:
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
next prev parent reply other threads:[~2023-05-19 15:33 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-12 2:10 [PATCH v2 00/19] Fix qemu_strtosz() read-out-of-bounds Eric Blake
2023-05-12 2:10 ` [PATCH v2 01/19] test-cutils: Avoid g_assert in unit tests Eric Blake
2023-05-12 3:20 ` Philippe Mathieu-Daudé
2023-05-12 12:11 ` Eric Blake
2023-05-12 2:10 ` [PATCH v2 02/19] test-cutils: Use g_assert_cmpuint where appropriate Eric Blake
2023-05-12 2:10 ` [PATCH v2 03/19] test-cutils: Test integral qemu_strto* value on failures Eric Blake
2023-05-12 2:10 ` [PATCH v2 04/19] test-cutils: Test more integer corner cases Eric Blake
2023-05-19 14:27 ` Hanna Czenczek
2023-05-19 15:17 ` Eric Blake
2023-05-12 2:10 ` [PATCH v2 05/19] cutils: Fix wraparound parsing in qemu_strtoui Eric Blake
2023-05-18 13:34 ` Eric Blake
2023-05-19 14:42 ` Hanna Czenczek
2023-05-19 16:31 ` Eric Blake
2023-05-12 2:10 ` [PATCH v2 06/19] cutils: Document differences between parse_uint and qemu_strtou64 Eric Blake
2023-05-19 14:44 ` Hanna Czenczek
2023-05-12 2:10 ` [PATCH v2 07/19] cutils: Adjust signature of parse_uint[_full] Eric Blake
2023-05-12 16:25 ` Eric Blake
2023-05-19 14:51 ` Hanna Czenczek
2023-05-12 2:10 ` [PATCH v2 08/19] cutils: Allow NULL endptr in parse_uint() Eric Blake
2023-05-12 16:44 ` Eric Blake
2023-05-19 14:54 ` Hanna Czenczek
2023-05-12 2:10 ` [PATCH v2 09/19] test-cutils: Add coverage of qemu_strtod Eric Blake
2023-05-19 15:05 ` Hanna Czenczek
2023-05-19 17:52 ` Eric Blake
2023-05-22 10:56 ` Hanna Czenczek
2023-05-22 12:59 ` Eric Blake
2023-05-12 2:10 ` [PATCH v2 10/19] test-cutils: Prepare for upcoming semantic change in qemu_strtosz Eric Blake
2023-05-12 2:10 ` [PATCH v2 11/19] test-cutils: Refactor qemu_strtosz tests for less boilerplate Eric Blake
2023-05-19 15:13 ` Hanna Czenczek
2023-05-19 17:54 ` Eric Blake
2023-05-12 2:10 ` [PATCH v2 12/19] cutils: Allow NULL str in qemu_strtosz Eric Blake
2023-05-12 3:25 ` Philippe Mathieu-Daudé
2023-05-19 15:15 ` Hanna Czenczek
2023-05-12 2:10 ` [PATCH v2 13/19] numa: Check for qemu_strtosz_MiB error Eric Blake
2023-05-12 2:10 ` [PATCH v2 14/19] test-cutils: Add more coverage to qemu_strtosz11; rgb:1e1e/1e1e/1e1e Eric Blake
2023-05-19 15:26 ` [PATCH v2 14/19] test-cutils: Add more coverage to qemu_strtosz11;rgb:1e1e/1e1e/1e1e Hanna Czenczek
2023-05-19 18:02 ` Eric Blake
2023-05-12 2:10 ` [PATCH v2 15/19] cutils: Set value in all qemu_strtosz* error paths Eric Blake
2023-05-19 15:29 ` Hanna Czenczek
2023-05-12 2:10 ` [PATCH v2 16/19] cutils: Set value in all integral qemu_strto* " Eric Blake
2023-05-12 2:10 ` [PATCH v2 17/19] cutils: Use parse_uint in qemu_strtosz for negative rejection Eric Blake
2023-05-12 19:34 ` Eric Blake
2023-05-19 15:32 ` Hanna Czenczek [this message]
2023-05-12 2:10 ` [PATCH v2 18/19] cutils: Improve qemu_strtod* error paths Eric Blake
2023-05-18 13:47 ` Eric Blake
2023-05-12 2:10 ` [PATCH v2 19/19] cutils: Improve qemu_strtosz handling of fractions Eric Blake
2023-05-19 15:36 ` Hanna Czenczek
2023-05-12 12:24 ` [PATCH v2 00/19] Fix qemu_strtosz() read-out-of-bounds Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9fbc12f3-f2a1-cd9f-be2c-903d367b5f4d@redhat.com \
--to=hreitz@redhat.com \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).