From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=38859 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PPc0t-00034P-Uw for qemu-devel@nongnu.org; Mon, 06 Dec 2010 09:26:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PPc0s-0000Nd-7b for qemu-devel@nongnu.org; Mon, 06 Dec 2010 09:25:59 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46677) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PPc0r-0000NW-Ud for qemu-devel@nongnu.org; Mon, 06 Dec 2010 09:25:58 -0500 From: Jes.Sorensen@redhat.com Date: Mon, 6 Dec 2010 15:25:36 +0100 Message-Id: <1291645540-9784-4-git-send-email-Jes.Sorensen@redhat.com> In-Reply-To: <1291645540-9784-1-git-send-email-Jes.Sorensen@redhat.com> References: <1291645540-9784-1-git-send-email-Jes.Sorensen@redhat.com> Subject: [Qemu-devel] [PATCH 3/7] img_convert(): Only try to free bs[] entries if bs is valid. List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: kwolf@redhat.com Cc: stefanha@linux.vnet.ibm.com, qemu-devel@nongnu.org From: Jes Sorensen This allows for jumping to 'out:' consistently for error exit. Signed-off-by: Jes Sorensen --- qemu-img.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/qemu-img.c b/qemu-img.c index eca99c4..aded72d 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -696,7 +696,8 @@ static int img_convert(int argc, char **argv) if (bs_n > 1 && out_baseimg) { error("-B makes no sense when concatenating multiple input images"); - return 1; + ret = -1; + goto out; } bs = qemu_mallocz(bs_n * sizeof(BlockDriverState *)); @@ -974,12 +975,14 @@ out: if (out_bs) { bdrv_delete(out_bs); } - for (bs_i = 0; bs_i < bs_n; bs_i++) { - if (bs[bs_i]) { - bdrv_delete(bs[bs_i]); + if (bs) { + for (bs_i = 0; bs_i < bs_n; bs_i++) { + if (bs[bs_i]) { + bdrv_delete(bs[bs_i]); + } } + qemu_free(bs); } - qemu_free(bs); if (ret) { return 1; } -- 1.7.3.2