From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=47819 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PPdQa-0001hf-2D for qemu-devel@nongnu.org; Mon, 06 Dec 2010 10:56:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PPdQY-0005U5-I3 for qemu-devel@nongnu.org; Mon, 06 Dec 2010 10:56:35 -0500 Received: from mx1.redhat.com ([209.132.183.28]:53551) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PPdQY-0005Tn-5t for qemu-devel@nongnu.org; Mon, 06 Dec 2010 10:56:34 -0500 Message-ID: <4CFD07F1.1040108@redhat.com> Date: Mon, 06 Dec 2010 16:57:37 +0100 From: Kevin Wolf MIME-Version: 1.0 References: <1291650325-10968-1-git-send-email-Jes.Sorensen@redhat.com> In-Reply-To: <1291650325-10968-1-git-send-email-Jes.Sorensen@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 4/7] 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: Jes.Sorensen@redhat.com Cc: stefanha@linux.vnet.ibm.com, qemu-devel@nongnu.org Am 06.12.2010 16:45, schrieb Jes.Sorensen@redhat.com: > From: Jes Sorensen > > Signed-off-by: Jes Sorensen > --- > qemu-img.c | 14 +++++++++----- > 1 files changed, 9 insertions(+), 5 deletions(-) > @@ -1432,7 +1434,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[] = { > { > @@ -1483,14 +1485,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) { bdrv_delete doesn't check for NULL, so this still isn't enough. Try something like "qemu-img resize -f vmdx foo +0" and you'll get a segfault. Kevin