From patchwork Thu May 6 18:53:47 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Weil X-Patchwork-Id: 51865 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 45807B7D1A for ; Fri, 7 May 2010 04:55:26 +1000 (EST) Received: from localhost ([127.0.0.1]:57583 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OA6EE-0001Xc-HE for incoming@patchwork.ozlabs.org; Thu, 06 May 2010 14:55:22 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1OA6D7-0001V1-8U for qemu-devel@nongnu.org; Thu, 06 May 2010 14:54:13 -0400 Received: from [140.186.70.92] (port=55984 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OA6D1-0001Oc-Lp for qemu-devel@nongnu.org; Thu, 06 May 2010 14:54:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OA6Cw-0004EN-0S for qemu-devel@nongnu.org; Thu, 06 May 2010 14:54:07 -0400 Received: from moutng.kundenserver.de ([212.227.126.186]:49371) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OA6Cv-0004EB-Lr for qemu-devel@nongnu.org; Thu, 06 May 2010 14:54:01 -0400 Received: from flocke.weilnetz.de (p54ADC2A5.dip.t-dialin.net [84.173.194.165]) by mrelayeu.kundenserver.de (node=mreu1) with ESMTP (Nemesis) id 0MaG3Y-1NumH71OnI-00KUmV; Thu, 06 May 2010 20:53:49 +0200 Received: from stefan by flocke.weilnetz.de with local (Exim 4.71) (envelope-from ) id 1OA6Ci-0005QL-Eq; Thu, 06 May 2010 20:53:48 +0200 From: Stefan Weil To: QEMU Developers Date: Thu, 6 May 2010 20:53:47 +0200 Message-Id: <1273172027-20819-1-git-send-email-weil@mail.berlios.de> X-Mailer: git-send-email 1.7.0 X-Provags-ID: V01U2FsdGVkX18htxNpoGcN0f4vPUzwtaVjSjd2Zb69QAnZc2C tkNk0iJjZn3gF8tGFb/b2FQnX9USbYkEhxVjfdIx8bfweFSYJ5 BwYfG2V2QRWMwpG/d9GtmR46bqUfFrg4//CJ5bvVCN42dhvQZR vTg== X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. Cc: Kevin Wolf Subject: [Qemu-devel] [PATCH] block/vdi: Allow disk images of size 0 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Even it is not very useful, users may create images of size 0. Without the special option CONFIG_ZERO_MALLOC, qemu_mallocz aborts execution when it is told to allocate 0 bytes, so avoid this kind of call. Cc: Kevin Wolf Signed-off-by: Stefan Weil --- block/vdi.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/block/vdi.c b/block/vdi.c index 2213819..02b9fea 100644 --- a/block/vdi.c +++ b/block/vdi.c @@ -435,7 +435,9 @@ static int vdi_open(BlockDriverState *bs, int flags) bmap_size = header.blocks_in_image * sizeof(uint32_t); bmap_size = (bmap_size + SECTOR_SIZE - 1) / SECTOR_SIZE; - s->bmap = qemu_malloc(bmap_size * SECTOR_SIZE); + if (bmap_size > 0) { + s->bmap = qemu_malloc(bmap_size * SECTOR_SIZE); + } if (bdrv_read(bs->file, s->bmap_sector, (uint8_t *)s->bmap, bmap_size) < 0) { goto fail_free_bmap; } @@ -860,7 +862,10 @@ static int vdi_create(const char *filename, QEMUOptionParameter *options) result = -errno; } - bmap = (uint32_t *)qemu_mallocz(bmap_size); + bmap = NULL; + if (bmap_size > 0) { + bmap = (uint32_t *)qemu_mallocz(bmap_size); + } for (i = 0; i < blocks; i++) { if (image_type == VDI_TYPE_STATIC) { bmap[i] = i;