[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 02/15] block: fix permission update in bdrv_replace_n
From: |
Max Reitz |
Subject: |
[Qemu-devel] [PULL 02/15] block: fix permission update in bdrv_replace_node |
Date: |
Tue, 27 Aug 2019 20:23:00 +0200 |
From: Vladimir Sementsov-Ogievskiy <address@hidden>
It's wrong to OR shared permissions. It may lead to crash on further
permission updates.
Also, no needs to consider previously calculated permissions, as at
this point we already bind all new parents and bdrv_get_cumulative_perm
result is enough. So fix the bug by just set permissions by
bdrv_get_cumulative_perm result.
Bug was introduced in long ago 234ac1a9025, in 2.9.
Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>
---
block.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/block.c b/block.c
index 874a29a983..5944124845 100644
--- a/block.c
+++ b/block.c
@@ -4165,7 +4165,6 @@ void bdrv_replace_node(BlockDriverState *from,
BlockDriverState *to,
{
BdrvChild *c, *next;
GSList *list = NULL, *p;
- uint64_t old_perm, old_shared;
uint64_t perm = 0, shared = BLK_PERM_ALL;
int ret;
@@ -4211,8 +4210,8 @@ void bdrv_replace_node(BlockDriverState *from,
BlockDriverState *to,
bdrv_unref(from);
}
- bdrv_get_cumulative_perm(to, &old_perm, &old_shared);
- bdrv_set_perm(to, old_perm | perm, old_shared | shared);
+ bdrv_get_cumulative_perm(to, &perm, &shared);
+ bdrv_set_perm(to, perm, shared);
out:
g_slist_free(list);
--
2.21.0
- [Qemu-devel] [PULL 00/15] Block patches, Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 01/15] qemu-io: add pattern file for write command, Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 02/15] block: fix permission update in bdrv_replace_node,
Max Reitz <=
- [Qemu-devel] [PULL 04/15] iotests: Test allocate_first_block() with O_DIRECT, Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 03/15] block: posix: Always allocate the first block, Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 05/15] iotests: Fix _filter_img_create(), Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 06/15] vmdk: Use bdrv_dirname() for relative extent paths, Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 07/15] iotests: Keep testing broken relative extent paths, Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 08/15] vmdk: Reject invalid compressed writes, Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 10/15] iotests: Disable 110 for vmdk.twoGbMaxExtentSparse, Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 09/15] iotests: Disable broken streamOptimized tests, Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 11/15] iotests: Disable 126 for flat vmdk subformats, Max Reitz, 2019/08/27
- [Qemu-devel] [PULL 12/15] file-posix: fix request_alignment typo, Max Reitz, 2019/08/27