From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55679) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WFOVA-0000mX-EI for qemu-devel@nongnu.org; Mon, 17 Feb 2014 08:45:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WFOV1-00014B-UV for qemu-devel@nongnu.org; Mon, 17 Feb 2014 08:44:52 -0500 Received: from mail-qg0-x232.google.com ([2607:f8b0:400d:c04::232]:62255) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WFOV1-000147-QI for qemu-devel@nongnu.org; Mon, 17 Feb 2014 08:44:43 -0500 Received: by mail-qg0-f50.google.com with SMTP id z60so4950702qgd.9 for ; Mon, 17 Feb 2014 05:44:43 -0800 (PST) Sender: Paolo Bonzini From: Paolo Bonzini Date: Mon, 17 Feb 2014 14:43:58 +0100 Message-Id: <1392644647-9897-12-git-send-email-pbonzini@redhat.com> In-Reply-To: <1392644647-9897-1-git-send-email-pbonzini@redhat.com> References: <1392644647-9897-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH v3 11/20] qcow: correctly propagate errors List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, jcody@redhat.com, famz@redhat.com, stefanha@redhat.com Signed-off-by: Paolo Bonzini --- block/qcow.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/block/qcow.c b/block/qcow.c index 948b0c5..a915bc3 100644 --- a/block/qcow.c +++ b/block/qcow.c @@ -119,17 +119,19 @@ static int qcow_open(BlockDriverState *bs, QDict *options, int flags, if (header.version != QCOW_VERSION) { char version[64]; snprintf(version, sizeof(version), "QCOW version %d", header.version); - qerror_report(QERR_UNKNOWN_BLOCK_FORMAT_FEATURE, - bs->device_name, "qcow", version); + error_set(errp, QERR_UNKNOWN_BLOCK_FORMAT_FEATURE, + bs->device_name, "qcow", version); ret = -ENOTSUP; goto fail; } if (header.size <= 1 || header.cluster_bits < 9) { + error_setg(errp, "invalid value in qcow header"); ret = -EINVAL; goto fail; } if (header.crypt_method > QCOW_CRYPT_AES) { + error_setg(errp, "invalid encryption method in qcow header"); ret = -EINVAL; goto fail; } @@ -686,16 +688,14 @@ static int qcow_create(const char *filename, QEMUOptionParameter *options, ret = bdrv_create_file(filename, options, &local_err); if (ret < 0) { - qerror_report_err(local_err); - error_free(local_err); + error_propagate(errp, local_err); return ret; } ret = bdrv_file_open(&qcow_bs, filename, NULL, NULL, BDRV_O_RDWR, &local_err); if (ret < 0) { - qerror_report_err(local_err); - error_free(local_err); + error_propagate(errp, local_err); return ret; } -- 1.8.5.3