From: Daniel Henrique Barboza <danielhb413@gmail.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, Daniel Henrique Barboza <danielhb413@gmail.com>,
qemu-block@nongnu.org, mreitz@redhat.com
Subject: [PATCH v9 0/4] delete created files when block_crypto_co_create_opts_luks fails
Date: Thu, 30 Jan 2020 18:39:03 -0300 [thread overview]
Message-ID: <20200130213907.2830642-1-danielhb413@gmail.com> (raw)
The version 8 of this patch series got buried and it's now
conflicting with master. Rebase and re-sending it.
Also, I contemplated the idea of moving/copying the password
verification in qcrypto_block_luks_create() all the way back to the
start of block_crypto_co_create_opts_luks(), failing early before the
bdrv_create_file(), avoiding the problem altogether without the
need of a delete_file API I'm trying to push here (see patch 03
commit message for detailed info about the bug).
This idea was dropped after I saw that:
- We would need to store the resulting password, now being retrieved
early in block_crypto_co_create_opts_luks(), in a new
QCryptoBlockCreateOptions string to be used inside
qcrypto_block_luks_create() as intended. An alternative would be to
call qcrypto_secret_lookup_as_utf8() twice, discarding the first
string;
- There are a lot of ways to fail in qcrypto_block_luks_create()
other than a non-UTF8 password that would trigger the same problem.
A more appropiate way of doing what I intended, instead of
copying/hacking code around to fail before bdrv_create(), is some sort
of bdrv_validate() API that would encapsulate everything that is
related to user input validation for the security drivers. This
API could then be called before the file creation (maybe inside
bdrv_create itself) and fail early if needed. This is too overkill
for what I'm trying to fix here, and I'm not sure if it would be
a net gain compared to the delete_file API.
All that said, I believe that this patch series presents a sane
solution with the code we have ATM.
changes in this version:
- rebase with current master at 204aa60b37
- previous version:
https://lists.gnu.org/archive/html/qemu-devel/2019-11/msg01551.html
Daniel Henrique Barboza (4):
block: introducing 'bdrv_co_delete_file' interface
block.c: adding bdrv_co_delete_file
crypto.c: cleanup created file when block_crypto_co_create_opts_luks
fails
qemu-iotests: adding LUKS cleanup for non-UTF8 secret error
block.c | 26 +++++++++++++++
block/crypto.c | 18 ++++++++++
block/file-posix.c | 23 +++++++++++++
include/block/block.h | 1 +
include/block/block_int.h | 4 +++
tests/qemu-iotests/282 | 67 ++++++++++++++++++++++++++++++++++++++
tests/qemu-iotests/282.out | 11 +++++++
tests/qemu-iotests/group | 1 +
8 files changed, 151 insertions(+)
create mode 100755 tests/qemu-iotests/282
create mode 100644 tests/qemu-iotests/282.out
--
2.24.1
next reply other threads:[~2020-01-30 21:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-30 21:39 Daniel Henrique Barboza [this message]
2020-01-30 21:39 ` [PATCH v9 1/4] block: introducing 'bdrv_co_delete_file' interface Daniel Henrique Barboza
2020-01-30 21:39 ` [PATCH v9 2/4] block.c: adding bdrv_co_delete_file Daniel Henrique Barboza
2020-01-30 21:39 ` [PATCH v9 3/4] crypto.c: cleanup created file when block_crypto_co_create_opts_luks fails Daniel Henrique Barboza
2020-01-30 21:39 ` [PATCH v9 4/4] qemu-iotests: adding LUKS cleanup for non-UTF8 secret error Daniel Henrique Barboza
2020-01-30 23:01 ` [PATCH v9 0/4] delete created files when block_crypto_co_create_opts_luks fails no-reply
2020-03-04 14:36 ` Daniel Henrique Barboza
2020-03-10 17:23 ` Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200130213907.2830642-1-danielhb413@gmail.com \
--to=danielhb413@gmail.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.