[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 16/17] vmdk: Fix local_err in vmdk_create
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 16/17] vmdk: Fix local_err in vmdk_create |
Date: |
Mon, 2 Jun 2014 15:56:47 +0200 |
From: Fam Zheng <address@hidden>
In vmdk_create and vmdk_create_extent, initialize local_err before using
it, and don't leak it on error.
Reported-by: Markus Armbruster <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
block/vmdk.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/block/vmdk.c b/block/vmdk.c
index 480ea37..2b38f61 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -1534,7 +1534,7 @@ static int vmdk_create_extent(const char *filename,
int64_t filesize,
int ret, i;
BlockDriverState *bs = NULL;
VMDK4Header header;
- Error *local_err;
+ Error *local_err = NULL;
uint32_t tmp, magic, grains, gd_sectors, gt_size, gt_count;
uint32_t *gd_buf = NULL;
int gd_buf_size;
@@ -1700,7 +1700,7 @@ static int vmdk_create(const char *filename,
QEMUOptionParameter *options,
{
int idx = 0;
BlockDriverState *new_bs = NULL;
- Error *local_err;
+ Error *local_err = NULL;
char *desc = NULL;
int64_t total_size = 0, filesize;
const char *adapter_type = NULL;
@@ -1881,7 +1881,7 @@ static int vmdk_create(const char *filename,
QEMUOptionParameter *options,
} else {
ret = bdrv_create_file(filename, options, &local_err);
if (ret < 0) {
- error_setg_errno(errp, -ret, "Could not create image file");
+ error_propagate(errp, local_err);
goto exit;
}
}
@@ -1889,7 +1889,7 @@ static int vmdk_create(const char *filename,
QEMUOptionParameter *options,
ret = bdrv_open(&new_bs, filename, NULL, NULL,
BDRV_O_RDWR | BDRV_O_PROTOCOL, NULL, &local_err);
if (ret < 0) {
- error_setg_errno(errp, -ret, "Could not write description");
+ error_propagate(errp, local_err);
goto exit;
}
ret = bdrv_pwrite(new_bs, desc_offset, desc, desc_len);
--
1.8.3.1
- [Qemu-devel] [PULL 06/17] qemu-io: Plug memory leak in open command, (continued)
- [Qemu-devel] [PULL 06/17] qemu-io: Plug memory leak in open command, Kevin Wolf, 2014/06/02
- [Qemu-devel] [PULL 08/17] blockdev: Plug memory leak in blockdev_init(), Kevin Wolf, 2014/06/02
- [Qemu-devel] [PULL 07/17] qemu-io: Don't print NULL when open without non-option arg fails, Kevin Wolf, 2014/06/02
- [Qemu-devel] [PULL 10/17] block/qapi: Plug memory leak in dump_qobject() case QTYPE_QERROR, Kevin Wolf, 2014/06/02
- [Qemu-devel] [PULL 11/17] block/vvfat: Plug memory leak in check_directory_consistency(), Kevin Wolf, 2014/06/02
- [Qemu-devel] [PULL 09/17] blockdev: Plug memory leak in drive_init(), Kevin Wolf, 2014/06/02
- [Qemu-devel] [PULL 12/17] block/vvfat: Plug memory leak in read_directory(), Kevin Wolf, 2014/06/02
- [Qemu-devel] [PULL 13/17] block/sheepdog: Plug memory leak in sd_snapshot_create(), Kevin Wolf, 2014/06/02
- [Qemu-devel] [PULL 14/17] qemu-img: Plug memory leak in convert command, Kevin Wolf, 2014/06/02
- [Qemu-devel] [PULL 15/17] block/raw-posix.c: Avoid nonstandard LONG_LONG_MAX, Kevin Wolf, 2014/06/02
- [Qemu-devel] [PULL 16/17] vmdk: Fix local_err in vmdk_create,
Kevin Wolf <=
- [Qemu-devel] [PULL 17/17] qemu-img: Report error even with --oformat=json, Kevin Wolf, 2014/06/02
- Re: [Qemu-devel] [PULL 00/17] Block patches, Peter Maydell, 2014/06/02