From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 72F771FF2C5 for ; Mon, 8 Jul 2024 12:09:37 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7068D3011; Mon, 8 Jul 2024 12:09:56 +0200 (CEST) From: Fiona Ebner To: pve-devel@lists.proxmox.com Date: Mon, 8 Jul 2024 12:09:20 +0200 Message-Id: <20240708100920.105879-1-f.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.112 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment PROLO_LEO1 0.1 Meta Catches all Leo drug variations so far SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH qemu] zeroinit: fix regression with filename parsing X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" As reported in the community forum [0], cloning or importing images to RBD storages (without the krbd setting) was broken. This is a result of no filename parsing happening anymore in bdrv_open_child() after commit b242e7f ("backport fix for CVE-2024-4467"), which the zeroinit relied on for passing along the RBD filename+key-value pairs. There is a dedicated function for opening the file child which still does filename parsing. Use that for opening the file child. Role and flags should still be the same as with the manual bdrv_open_child(), because the zeroinit driver is a filter, and the assignment bs->file is also done by bdrv_open_file_child(). Fixes: b242e7f ("backport fix for CVE-2024-4467") Signed-off-by: Fiona Ebner --- ...add-the-zeroinit-block-driver-filter.patch | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/debian/patches/pve/0019-PVE-block-add-the-zeroinit-block-driver-filter.patch b/debian/patches/pve/0019-PVE-block-add-the-zeroinit-block-driver-filter.patch index 34a7efe..7464ca5 100644 --- a/debian/patches/pve/0019-PVE-block-add-the-zeroinit-block-driver-filter.patch +++ b/debian/patches/pve/0019-PVE-block-add-the-zeroinit-block-driver-filter.patch @@ -5,12 +5,13 @@ Subject: [PATCH] PVE: block: add the zeroinit block driver filter Signed-off-by: Thomas Lamprecht [FE: adapt to changed function signatures - adhere to block graph lock requirements] + adhere to block graph lock requirements + use dedicated function to open file child] Signed-off-by: Fiona Ebner --- block/meson.build | 1 + - block/zeroinit.c | 214 ++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 215 insertions(+) + block/zeroinit.c | 207 ++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 208 insertions(+) create mode 100644 block/zeroinit.c diff --git a/block/meson.build b/block/meson.build @@ -27,10 +28,10 @@ index e1f03fd773..b530e117b5 100644 system_ss.add(when: 'CONFIG_TCG', if_true: files('blkreplay.c')) diff --git a/block/zeroinit.c b/block/zeroinit.c new file mode 100644 -index 0000000000..696558d8d6 +index 0000000000..7998c9332d --- /dev/null +++ b/block/zeroinit.c -@@ -0,0 +1,214 @@ +@@ -0,0 +1,207 @@ +/* + * Filter to fake a zero-initialized block device. + * @@ -96,7 +97,6 @@ index 0000000000..696558d8d6 + Error **errp) +{ + BDRVZeroinitState *s = bs->opaque; -+ BdrvChild *file = NULL; + QemuOpts *opts; + Error *local_err = NULL; + int ret; @@ -112,15 +112,9 @@ index 0000000000..696558d8d6 + } + + /* Open the raw file */ -+ file = bdrv_open_child(qemu_opt_get(opts, "x-next"), options, "next", bs, -+ &child_of_bds, -+ BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY, false, -+ &local_err); -+ bdrv_graph_wrlock(); -+ bs->file = file; -+ bdrv_graph_wrunlock(); -+ if (local_err) { -+ ret = -EINVAL; ++ ret = bdrv_open_file_child(qemu_opt_get(opts, "x-next"), options, "next", ++ bs, &local_err); ++ if (ret < 0) { + error_propagate(errp, local_err); + goto fail; + } -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel