qemu-img will complain when qcow or qcow2 size overflow for 64 bits, report the right message in this condition.
Signed-off-by: liguang <lig.f...@cn.fujitsu.com> --- qemu-img.c | 21 +++++++++++++-------- 1 files changed, 13 insertions(+), 8 deletions(-) diff --git a/qemu-img.c b/qemu-img.c index f17f187..a81f45b 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -343,16 +343,21 @@ static int img_create(int argc, char **argv) /* Get image size, if specified */ if (optind < argc) { - int64_t sval; + int64_t sval = 0; char *end; sval = strtosz_suffix(argv[optind++], &end, STRTOSZ_DEFSUFFIX_B); - if (sval < 0 || *end) { - error_report("Invalid image size specified! You may use k, M, G or " - "T suffixes for "); - error_report("kilobytes, megabytes, gigabytes and terabytes."); - ret = -1; - goto out; - } + if (sval < 0) { + error_report("image size is too large!\n"); + ret = -1; + goto out; + } + if (*end) { + error_report("Invalid image size specified! You may use k, M, G or " + "T suffixes for "); + error_report("kilobytes, megabytes, gigabytes and terabytes."); + ret = -1; + goto out; + } img_size = (uint64_t)sval; } -- 1.7.1