On Fri, Sep 19, 2025 at 11:38:10AM +0100, Daniel P. Berrangé wrote: > The code for creating LUKS devices references a 'detached-header' > option in the QemuOpts data, but does not consume (remove) the > option. > > Thus when the code later tries to convert the remaining unused > QemuOpts into a QCryptoBlockCreateOptions struct, an error is > reported by the QAPI code that 'detached-header' is not a valid > field. > > This fixes a regression caused by > > commit e818c01ae6e7c54c7019baaf307be59d99ce80b9 > Author: Daniel P. Berrangé <[email protected]> > Date: Mon Feb 19 15:12:59 2024 +0000 > > qapi: drop unused QCryptoBlockCreateOptionsLUKS.detached-header > > which identified that the QAPI field was unused, but failed to > realize the QemuOpts -> QCryptoBlockCreateOptions conversion > was seeing the left-over 'detached-header' optino which had not
option > been removed from QemuOpts. > > This problem was identified by the 'luks-detached-header' I/O > test, but unfortunate I/O tests are not run regularly for the > LUKS format. > > Fixes: e818c01ae6e7c54c7019baaf307be59d99ce80b9 > Reported-by: Thomas Huth <[email protected]> > Signed-off-by: Daniel P. Berrangé <[email protected]> > --- > block/crypto.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Eric Blake <[email protected]> > > diff --git a/block/crypto.c b/block/crypto.c > index d4226cc68a..17b4749a1e 100644 > --- a/block/crypto.c > +++ b/block/crypto.c > @@ -792,7 +792,7 @@ block_crypto_co_create_opts_luks(BlockDriver *drv, const > char *filename, > char *buf = NULL; > int64_t size; > bool detached_hdr = > - qemu_opt_get_bool(opts, "detached-header", false); > + qemu_opt_get_bool_del(opts, "detached-header", false); > unsigned int cflags = 0; > int ret; > Error *local_err = NULL; > -- > 2.50.1 > > -- Eric Blake, Principal Software Engineer Red Hat, Inc. Virtualization: qemu.org | libguestfs.org
