aboutsummaryrefslogtreecommitdiff
path: root/qapi/opts-visitor.c
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2023-06-02 14:57:22 -0700
committerRichard Henderson <richard.henderson@linaro.org>2023-06-02 14:57:22 -0700
commit24bc242c91ae1d4db8de33b65de8c6666f975ad2 (patch)
tree0597195d11f544191db2012599eff6e969e72c6c /qapi/opts-visitor.c
parenta86d7b9ec0adb2f1efce8ab30d9ed2b72db0236e (diff)
parent42cc08d13ab8e68f76882b216da0b28d06f29e11 (diff)
downloadqemu-24bc242c91ae1d4db8de33b65de8c6666f975ad2.zip
qemu-24bc242c91ae1d4db8de33b65de8c6666f975ad2.tar.gz
qemu-24bc242c91ae1d4db8de33b65de8c6666f975ad2.tar.bz2
Merge tag 'pull-nbd-2023-06-01-v2' of https://repo.or.cz/qemu/ericb into staging
nbd and misc patches for 2023-06-01 - Eric Blake: Fix iotest 104 for NBD - Eric Blake: Improve qcow2 spec on padding bytes - Eric Blake: Fix read-beyond-bounds bug in qemu_strtosz # -----BEGIN PGP SIGNATURE----- # # iQEzBAABCAAdFiEEccLMIrHEYCkn0vOqp6FrSiUnQ2oFAmR6JzEACgkQp6FrSiUn # Q2oGwgf+PIaN8iedQo5KR08OEf9YxJXab7nL5Oh12+ZvrPOt8XoJcd585KblQ1YI # 3bGC4CO1l4QO3xmKltVHi7hnlX+3/8WMEvh0jBQBG1AjjPCi5Y1A/gGTEJFX60Ux # /ffEpo8+1vaHQ8srkxBMWIvpF/dYRaMXSm/CP5SNqTllTalTR46YHKL9odXTzIeN # 0Zu9UQw/Jwp5A9/8KB+0M9SYXA6zOEmEqEyOwVESEAU2Lm7titwqdBny6GZc6DH6 # Sa2lKO0qQA/e9ya6jHm2c9ycoNCtQ/2VR8QuCd6WCf9DX8q/9RhdiJir+EK5gqp6 # 3JRUFtx783d0BwPnUDUqPawi4txFtw== # =Cg4e # -----END PGP SIGNATURE----- # gpg: Signature made Fri 02 Jun 2023 10:30:25 AM PDT # gpg: using RSA key 71C2CC22B1C4602927D2F3AAA7A16B4A2527436A # gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full] # gpg: aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full] # gpg: aka "[jpeg image of size 6874]" [full] * tag 'pull-nbd-2023-06-01-v2' of https://repo.or.cz/qemu/ericb: (21 commits) cutils: Improve qemu_strtosz handling of fractions cutils: Improve qemu_strtod* error paths cutils: Use parse_uint in qemu_strtosz for negative rejection cutils: Set value in all integral qemu_strto* error paths cutils: Set value in all qemu_strtosz* error paths test-cutils: Add more coverage to qemu_strtosz numa: Check for qemu_strtosz_MiB error cutils: Allow NULL str in qemu_strtosz test-cutils: Refactor qemu_strtosz tests for less boilerplate test-cutils: Prepare for upcoming semantic change in qemu_strtosz test-cutils: Add coverage of qemu_strtod cutils: Allow NULL endptr in parse_uint() cutils: Adjust signature of parse_uint[_full] cutils: Document differences between parse_uint and qemu_strtou64 cutils: Fix wraparound parsing in qemu_strtoui test-cutils: Test more integer corner cases test-cutils: Test integral qemu_strto* value on failures test-cutils: Use g_assert_cmpuint where appropriate test-cutils: Avoid g_assert in unit tests qcow2: Explicit mention of padding bytes ... Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'qapi/opts-visitor.c')
-rw-r--r--qapi/opts-visitor.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/qapi/opts-visitor.c b/qapi/opts-visitor.c
index 587f31b..8f1efab 100644
--- a/qapi/opts-visitor.c
+++ b/qapi/opts-visitor.c
@@ -454,8 +454,8 @@ opts_type_uint64(Visitor *v, const char *name, uint64_t *obj, Error **errp)
OptsVisitor *ov = to_ov(v);
const QemuOpt *opt;
const char *str;
- unsigned long long val;
- char *endptr;
+ uint64_t val;
+ const char *endptr;
if (ov->list_mode == LM_UNSIGNED_INTERVAL) {
*obj = ov->range_next.u;
@@ -471,18 +471,18 @@ opts_type_uint64(Visitor *v, const char *name, uint64_t *obj, Error **errp)
/* we've gotten past lookup_scalar() */
assert(ov->list_mode == LM_NONE || ov->list_mode == LM_IN_PROGRESS);
- if (parse_uint(str, &val, &endptr, 0) == 0 && val <= UINT64_MAX) {
+ if (parse_uint(str, &endptr, 0, &val) == 0) {
if (*endptr == '\0') {
*obj = val;
processed(ov, name);
return true;
}
if (*endptr == '-' && ov->list_mode == LM_IN_PROGRESS) {
- unsigned long long val2;
+ uint64_t val2;
str = endptr + 1;
- if (parse_uint_full(str, &val2, 0) == 0 &&
- val2 <= UINT64_MAX && val <= val2 &&
+ if (parse_uint_full(str, 0, &val2) == 0 &&
+ val <= val2 &&
val2 - val < OPTS_VISITOR_RANGE_MAX) {
ov->range_next.u = val;
ov->range_limit.u = val2;