From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:60672) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TlLjo-0005W3-08 for qemu-devel@nongnu.org; Wed, 19 Dec 2012 10:39:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TlLjl-0002O3-5y for qemu-devel@nongnu.org; Wed, 19 Dec 2012 10:39:15 -0500 Received: from mx1.redhat.com ([209.132.183.28]:5460) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TlLjk-0002Nv-V4 for qemu-devel@nongnu.org; Wed, 19 Dec 2012 10:39:13 -0500 From: Stefan Hajnoczi Date: Wed, 19 Dec 2012 16:38:16 +0100 Message-Id: <1355931499-7912-16-git-send-email-stefanha@redhat.com> In-Reply-To: <1355931499-7912-1-git-send-email-stefanha@redhat.com> References: <1355931499-7912-1-git-send-email-stefanha@redhat.com> Subject: [Qemu-devel] [PATCH 15/18] qemu-img: report size overflow error message List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Anthony Liguori From: liguang qemu-img will complain when qcow or qcow2 size overflow for 64 bits, report the right message in this condition. $./qemu-img create -f qcow2 /tmp/foo 0x10000000000000000 before change: qemu-img: Invalid image size specified! You may use k, M, G or T suffixes for qemu-img: kilobytes, megabytes, gigabytes and terabytes. after change: qemu-img: Image size must be less than 8 EiB! [Resolved conflict with a9300911 goto removal -- Stefan] Signed-off-by: liguang Signed-off-by: Stefan Hajnoczi --- qemu-img.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/qemu-img.c b/qemu-img.c index c989a52..da44685 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -348,9 +348,13 @@ static int img_create(int argc, char **argv) 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."); + if (sval == -ERANGE) { + error_report("Image size must be less than 8 EiB!"); + } else { + error_report("Invalid image size specified! You may use k, M, " + "G or T suffixes for "); + error_report("kilobytes, megabytes, gigabytes and terabytes."); + } return 1; } img_size = (uint64_t)sval; -- 1.8.0.2