QemuOpts has its own code to convert strings to numbers, and being QemuOpts, it gets it wrong. util/cutils is less wrong. Fix it up some, and reuse it for QemuOpts.
Markus Armbruster (24): tests/test-qemu-opts: Cover qemu_opts_parse() QemuOpts: Assert value string isn't null tests/test-cutils: Add missing qemu_strtol()... endptr checks tests/test-cutils: Clean up qemu_strtoul() result checks util/cutils: Rewrite documentation of qemu_strtol() & friends util/cutils: Rename qemu_strtoll(), qemu_strtoull() util/cutils: Clean up variable names around qemu_strtol() util/cutils: Clean up control flow around qemu_strtol() a bit QemuOpts: Fix to reject numbers that overflow uint64_t tests/test-cutils: Add missing qemu_strtosz()... endptr checks tests/test-cutils: Cover qemu_strtosz() invalid input tests/test-cutils: Cover qemu_strtosz() with trailing crap tests/test-cutils: Cover qemu_strtosz() around range limits util/cutils: New qemu_strtosz_metric() util/cutils: Rename qemu_strtosz() to qemu_strtosz_mebi() util/cutils: New qemu_strtosz() util/cutils: Drop QEMU_STRTOSZ_DEFSUFFIX_* macros tests/test-cutils: Use qemu_strtosz() more often tests/test-cutils: Drop suffix from test_qemu_strtosz_simple() qemu-img: Wrap cvtnum() around qemu_strtosz() util/cutils: Let qemu_strtosz*() optionally reject trailing crap util/cutils: Return qemu_strtosz*() error and value separately util/cutils: Change qemu_strtosz*() from int64_t to uint64_t QemuOpts: Fix checking of sizes for overflow and trailing crap hmp.c | 11 +- hw/misc/ivshmem.c | 9 +- include/qemu/cutils.h | 29 +-- monitor.c | 7 +- qapi/opts-visitor.c | 11 +- qemu-img.c | 62 ++--- qemu-io-cmds.c | 16 +- qobject/qdict.c | 2 +- qtest.c | 34 +-- target/i386/cpu.c | 9 +- tests/test-cutils.c | 642 ++++++++++++++++++++++++++++++++----------------- tests/test-qemu-opts.c | 289 +++++++++++++++++++++- util/cutils.c | 239 +++++++++--------- util/log.c | 4 +- util/qemu-option.c | 87 +++---- 15 files changed, 959 insertions(+), 492 deletions(-) -- 2.7.4