From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=44632 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PQeNC-0006Hy-4P for qemu-devel@nongnu.org; Thu, 09 Dec 2010 06:09:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PQeNB-0000HY-1N for qemu-devel@nongnu.org; Thu, 09 Dec 2010 06:09:17 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41850) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PQeNA-0000HQ-Qe for qemu-devel@nongnu.org; Thu, 09 Dec 2010 06:09:16 -0500 From: Kevin Wolf Date: Thu, 9 Dec 2010 12:10:04 +0100 Message-Id: <1291893010-29223-9-git-send-email-kwolf@redhat.com> In-Reply-To: <1291893010-29223-1-git-send-email-kwolf@redhat.com> References: <1291893010-29223-1-git-send-email-kwolf@redhat.com> Subject: [Qemu-devel] [PATCH 08/14] Make error handling more consistent in img_create() and img_resize() List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: anthony@codemonkey.ws Cc: kwolf@redhat.com, qemu-devel@nongnu.org From: Jes Sorensen Signed-off-by: Jes Sorensen Signed-off-by: Kevin Wolf --- qemu-img.c | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-) diff --git a/qemu-img.c b/qemu-img.c index 6fd52e9..5b6e648 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -349,13 +349,15 @@ static int img_create(int argc, char **argv) drv = bdrv_find_format(fmt); if (!drv) { error("Unknown file format '%s'", fmt); - return 1; + ret = -1; + goto out; } proto_drv = bdrv_find_protocol(filename); if (!proto_drv) { error("Unknown protocol '%s'", filename); - return 1; + ret = -1; + goto out; } create_options = append_option_parameters(create_options, @@ -1492,7 +1494,7 @@ static int img_resize(int argc, char **argv) int c, ret, relative; const char *filename, *fmt, *size; int64_t n, total_size; - BlockDriverState *bs; + BlockDriverState *bs = NULL; QEMUOptionParameter *param; QEMUOptionParameter resize_options[] = { { @@ -1544,14 +1546,16 @@ static int img_resize(int argc, char **argv) param = parse_option_parameters("", resize_options, NULL); if (set_option_parameter(param, BLOCK_OPT_SIZE, size)) { /* Error message already printed when size parsing fails */ - exit(1); + ret = -1; + goto out; } n = get_option_parameter(param, BLOCK_OPT_SIZE)->value.n; free_option_parameters(param); bs = bdrv_new_open(filename, fmt, BDRV_O_FLAGS | BDRV_O_RDWR); if (!bs) { - return 1; + ret = -1; + goto out; } if (relative) { @@ -1581,7 +1585,9 @@ static int img_resize(int argc, char **argv) break; } out: - bdrv_delete(bs); + if (bs) { + bdrv_delete(bs); + } if (ret) { return 1; } -- 1.7.2.3