summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMaxim Levitsky <mlevitsk@redhat.com>2020-07-19 15:20:58 +0300
committerMax Reitz <mreitz@redhat.com>2020-07-21 10:49:02 +0200
commit662d0c5392a272aa0357aa7205e77fa3ca89c316 (patch)
treecb38493b9bf17459887c7a486053c52894d3ef6f
parentaf3d69058e09bede9900f266a618ed11f76f49f3 (diff)
downloadfocaccia-qemu-662d0c5392a272aa0357aa7205e77fa3ca89c316.tar.gz
focaccia-qemu-662d0c5392a272aa0357aa7205e77fa3ca89c316.zip
block/crypto: disallow write sharing by default
My commit 'block/crypto: implement the encryption key management'
accidently allowed raw luks images to be shared between different
qemu processes without share-rw=on explicit override.
Fix that.

Fixes: bbfdae91fb ("block/crypto: implement the encryption key management")
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1857490

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200719122059.59843-2-mlevitsk@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
-rw-r--r--block/crypto.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/crypto.c b/block/crypto.c
index 8725c1bc02..0807557763 100644
--- a/block/crypto.c
+++ b/block/crypto.c
@@ -881,7 +881,7 @@ block_crypto_child_perms(BlockDriverState *bs, BdrvChild *c,
      * For backward compatibility, manually share the write
      * and resize permission
      */
-    *nshared |= (BLK_PERM_WRITE | BLK_PERM_RESIZE);
+    *nshared |= shared & (BLK_PERM_WRITE | BLK_PERM_RESIZE);
     /*
      * Since we are not fully a format driver, don't always request
      * the read/resize permission but only when explicitly