[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 09/18] qcow: convert QCow to use QCryptoBlock
From: |
Alberto Garcia |
Subject: |
Re: [Qemu-devel] [PATCH v5 09/18] qcow: convert QCow to use QCryptoBlock for encryption |
Date: |
Tue, 21 Feb 2017 14:19:46 +0100 |
User-agent: |
Notmuch/0.18.2 (http://notmuchmail.org) Emacs/24.4.1 (i586-pc-linux-gnu) |
On Tue 21 Feb 2017 12:55:03 PM CET, Daniel P. Berrange wrote:
> @@ -175,8 +185,31 @@ static int qcow_open(BlockDriverState *bs, QDict
> *options, int flags,
> ret = -ENOSYS;
> goto fail;
> }
> + if (s->crypt_method_header == QCOW_CRYPT_AES) {
> + crypto_opts = block_crypto_open_opts_init(
> + Q_CRYPTO_BLOCK_FORMAT_QCOW, opts, "aes-", &local_err);
> + if (local_err) {
> + error_propagate(errp, local_err);
> + ret = -EINVAL;
> + goto fail;
> + }
>
> + if (flags & BDRV_O_NO_IO) {
> + cflags |= QCRYPTO_BLOCK_OPEN_NO_IO;
> + }
> + s->crypto = qcrypto_block_open(crypto_opts, NULL, NULL,
> + cflags, errp);
You don't call qcrypto_block_free() if qcow_open() eventually fails.
Although qcow_close() takes care of that, a failure to open the image
sets bs->drv = NULL in bdrv_open_common(), preventing qcow_close() from
being called.
> @@ -260,14 +293,17 @@ static int qcow_open(BlockDriverState *bs, QDict
> *options, int flags,
> goto fail;
> }
>
> + qapi_free_QCryptoBlockOpenOptions(crypto_opts);
> qemu_co_mutex_init(&s->lock);
> return 0;
>
> fail:
> + qemu_opts_del(opts);
You need to delete opts as well if this function succeeds, don't you?
Berto
- [Qemu-devel] [PATCH v5 00/18] Convert QCow[2] to QCryptoBlock & add LUKS support, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 01/18] block: expose crypto option names / defs to other drivers, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 02/18] block: add ability to set a prefix for opt names, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 03/18] qcow: document another weakness of qcow AES encryption, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 05/18] iotests: skip 042 with qcow which dosn't support zero sized images, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 04/18] qcow: require image size to be > 1 for new images, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 06/18] iotests: skip 048 with qcow which doesn't support resize, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 07/18] iotests: fix 097 when run with qcow, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 08/18] qcow: make encrypt_sectors encrypt in place, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 09/18] qcow: convert QCow to use QCryptoBlock for encryption, Daniel P. Berrange, 2017/02/21
- Re: [Qemu-devel] [PATCH v5 09/18] qcow: convert QCow to use QCryptoBlock for encryption,
Alberto Garcia <=
- [Qemu-devel] [PATCH v5 10/18] qcow2: make qcow2_encrypt_sectors encrypt in place, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 12/18] qcow2: extend specification to cover LUKS encryption, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 15/18] iotests: enable tests 134 and 158 to work with qcow (v1), Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 14/18] qcow2: add iotests to cover LUKS encryption support, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 11/18] qcow2: convert QCow2 to use QCryptoBlock for encryption, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 16/18] block: rip out all traces of password prompting, Daniel P. Berrange, 2017/02/21
- [Qemu-devel] [PATCH v5 17/18] block: remove all encryption handling APIs, Daniel P. Berrange, 2017/02/21