From nobody Fri Oct 23 14:29:27 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1792143888; cv=none; d=zohomail.com; s=zohoarc; b=Yl+Yl8TSmQ0ESolpjXWgYmH33hOWQiB4W2sw3P5yR1qV3BpgYhHn9aQOljnBaejlpodPNikr5a+gDzSE+eLkIL8Ps6gfqvLKgBlGqJt0Sly4oHuihZ7S3Vt51yDe+BWhvUwakuJrR1OjWDTGder+LNXvCZkK9L8pHa4n1B0Cf9o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1792143888; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bRqvfgUWhLyxQpiPtjyjWEdAIvBy4L6WpKV4Q7LUpBA=; b=JXx77fpaC0jk3bFp2GReb27acpKEdanYWcYtlqjPN59qsUt8Igrn0r5mrnaQjLGS5MuM9nmafhN3OzdRwF4rh1d/YsGWYm/yuPYzsSK9cCgXbsbXvxPM3uSUXl7Mqrz5Qm9wX+EMWJVnSZFQgfneMqHL+LMrIIX7hB8Gnj8Z4XE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1792143888370719.6231808891938; Fri, 16 Oct 2026 02:44:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xHeU6-0000yI-8A; Fri, 16 Oct 2026 05:44:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTo-0000wZ-MJ for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTl-0007Jr-Sw for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:43:59 -0400 Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-650-9z3MAvURPIKxU-asUMgqvQ-1; Fri, 16 Oct 2026 09:43:54 +0000 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 59814180067D for ; Fri, 16 Oct 2026 09:43:53 +0000 (UTC) Received: from berrange.csb (headnet03.pony-001.prod.iad2.dc.redhat.com [10.2.32.114]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id E98153000B78; Fri, 16 Oct 2026 09:43:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1792143836; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bRqvfgUWhLyxQpiPtjyjWEdAIvBy4L6WpKV4Q7LUpBA=; b=EZz9PM0AbOMzDU186kbHmouJ3RJbtzPNd7FyIavPEqt851RB7/o+DtBYpzTe5lATCzYulT oi5Lgpz8rorGOr1HqPyArZJ/Ud7aTJC44aavY4/KldidA1hvvT+qr/a4/Mrgp5YKH3/5Dv bvlw0b/JcM6BMflpm7GiPXTzZs7ONBU= X-MC-Unique: 9z3MAvURPIKxU-asUMgqvQ-1 X-Mimecast-MFC-AGG-ID: 9z3MAvURPIKxU-asUMgqvQ_1792143833 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PULL 1/8] seccomp: really fix blocking of setns/execveat/unshare Date: Fri, 16 Oct 2026 10:43:41 +0100 Message-ID: <20261016094348.2616374-2-berrange@redhat.com> In-Reply-To: <20261016094348.2616374-1-berrange@redhat.com> References: <20261016094348.2616374-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.24, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1792143889280158500 The previous fix for setns/execveat/unshare mistakenly copy and pasted the clone_args filter, which is inappropriate for these syscalls and had the effect of weakening the seccomp filter. Fixes: f33fb19cab (seccomp: fix blocking of setns/execveat/unshare) Fixes: https://gitlab.com/qemu-project/qemu/-/work_items/4671 Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Daniel P. Berrang=C3=A9 --- system/qemu-seccomp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/qemu-seccomp.c b/system/qemu-seccomp.c index 3889d48b4f2..cd2c1b0b747 100644 --- a/system/qemu-seccomp.c +++ b/system/qemu-seccomp.c @@ -250,12 +250,12 @@ static const struct QemuSeccompSyscall denylist[] =3D= { #endif #ifdef __SNR_execveat { SCMP_SYS(execveat), QEMU_SECCOMP_SET_SPAWN, - ARRAY_SIZE(clone_arg_none), clone_arg_none, SCMP_ACT_ERRNO(EPERM) }, + 0, NULL, SCMP_ACT_ERRNO(EPERM) }, #endif { SCMP_SYS(setns), QEMU_SECCOMP_SET_SPAWN, - ARRAY_SIZE(clone_arg_none), clone_arg_none, SCMP_ACT_ERRNO(EPERM) }, + 0, NULL, SCMP_ACT_ERRNO(EPERM) }, { SCMP_SYS(unshare), QEMU_SECCOMP_SET_SPAWN, - ARRAY_SIZE(clone_arg_none), clone_arg_none, SCMP_ACT_ERRNO(EPERM) }, + 0, NULL, SCMP_ACT_ERRNO(EPERM) }, /* resource control */ { SCMP_SYS(setpriority), QEMU_SECCOMP_SET_RESOURCECTL, 0, NULL, SCMP_ACT_ERRNO(EPERM) }, --=20 2.56.0 From nobody Fri Oct 23 14:29:27 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1792143875; cv=none; d=zohomail.com; s=zohoarc; b=Ah115AeZGz1E0fG7sB7Rcw9Jbj3HS3bOkajiQ2NaSTPtqX1UUlUENZzzXmvNrkTbMThniq20iimbEbbvrfLiwFgVoLr6Ih26FoyYTdUmP5wc6TfAt1rFPXp92i40oHPHm28K0Ag5RjBYgGhfDY0S7jeGXdYYmDIayl90AqYsYg4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1792143875; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/alU1FOVtQDtrfm2izDGqKUn26NeShLQ0co9p+UnUT4=; b=KOwvguaozNyCJnUktXUenOtNplaM716euaHTAoBofF9qRziCB2aJA5UPVBynZmactQ9k0/uPN3eS1bFGUDqe9yUlJr5pMM5yotHsG9P1d+j06sVxEtY/H8fiV8XwcvUWqyKkz5caWESs2/PjnZVYMK56ZERucYLWhjHsN435l8Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1792143875037870.7852486952614; Fri, 16 Oct 2026 02:44:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xHeUC-000175-23; Fri, 16 Oct 2026 05:44:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTo-0000wY-MJ for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTm-0007K1-LQ for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:43:59 -0400 Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-278-8hl8pu_iP5iRom_4kjBXzA-1; Fri, 16 Oct 2026 09:43:55 +0000 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E42C31955F1E for ; Fri, 16 Oct 2026 09:43:54 +0000 (UTC) Received: from berrange.csb (headnet03.pony-001.prod.iad2.dc.redhat.com [10.2.32.114]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id C0E823000735; Fri, 16 Oct 2026 09:43:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1792143837; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/alU1FOVtQDtrfm2izDGqKUn26NeShLQ0co9p+UnUT4=; b=Pf+jnu3VOr8Qr7mkqTU5pjT2Twky/STI1JGO4fYPqmX17mY3lNXulF+smComEYe5XFVwMC PhSCXzV+JHpZGdPOELrUVe1I6dTse7F26PqkPQhnmBoxwmz3DSRW9fThvZ65WjZLumrCF1 jT09HHJw+VuRlCi2iPyVg7uR1SRYdKI= X-MC-Unique: 8hl8pu_iP5iRom_4kjBXzA-1 X-Mimecast-MFC-AGG-ID: 8hl8pu_iP5iRom_4kjBXzA_1792143835 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PULL 2/8] seccomp: drop redundant match for clone() flags == 0 Date: Fri, 16 Oct 2026 10:43:42 +0100 Message-ID: <20261016094348.2616374-3-berrange@redhat.com> In-Reply-To: <20261016094348.2616374-1-berrange@redhat.com> References: <20261016094348.2616374-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: 10 X-Spam_score: 1.0 X-Spam_bar: + X-Spam_report: (1.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.24, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1792143876968158500 We have seccomp matches for clone() which mandate the presence of several flags, in order to permit pthreads_create: REQUIRE_CLONE_FLAG(CLONE_VM); REQUIRE_CLONE_FLAG(CLONE_FS); ... Given those mandatory matches, it is impossible for flags =3D=3D 0 to pass the filter. This is fortunate, since the explicit match on flags =3D=3D 0 is in fact broken, as it has a silent size extension from 32-bits to 64-bits. This results in seccomp generating pseudo code of: if ($arch =3D=3D 3221225534) # filter for syscall "clone" (56) [priority: 65531] if ($syscall =3D=3D 56) if ($a0.hi32 & 0xffffffff =3D=3D 0) if ($a0.lo32 & 0xffffff00 =3D=3D 0) action ERRNO(1); # default action action ALLOW; # invalid architecture action action KILL; Since the clone() flag is passed as a 32-bit value in the syscall, the high 32-bits are liable to be undefined/uninitialized garbage The desired match for flags =3D=3D 0 was if ($arch =3D=3D 3221225534) # filter for syscall "clone" (56) [priority: 65532] if ($syscall =3D=3D 56) if ($a0.hi32 & 0x00000000 =3D=3D 0) if ($a0.lo32 & 0xffffff00 =3D=3D 0) action ERRNO(1); # default action action ALLOW; # invalid architecture action action KILL; That is redundant, however, as can be seen if we look at the (fixed) program with the CLONE_THREAD rule also present: if ($arch =3D=3D 3221225534) # filter for syscall "clone" (56) [priority: 65532] if ($syscall =3D=3D 56) if ($a0.hi32 & 0x00000000 =3D=3D 0) if ($a0.lo32 & 0xffffff00 =3D=3D 0) action ERRNO(1); if ($a0.lo32 & 0x00010000 =3D=3D 0) action ERRNO(1); # default action action ALLOW; # invalid architecture action action KILL; That "($a0.lo32 & 0x00010000 =3D=3D 0)" match will catch the case of flags =3D=3D 0 and do the right thing. Reported-by: Ricardo Branco (https://gitlab.com/ricardobranco777) Related: https://gitlab.com/qemu-project/qemu/-/work_items/4671 Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Daniel P. Berrang=C3=A9 --- system/qemu-seccomp.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/system/qemu-seccomp.c b/system/qemu-seccomp.c index cd2c1b0b747..a71cf66028d 100644 --- a/system/qemu-seccomp.c +++ b/system/qemu-seccomp.c @@ -76,13 +76,6 @@ const struct scmp_arg_cmp sched_setscheduler_arg[] =3D { { SCMP_SYS(clone), QEMU_SECCOMP_SET_SPAWN, \ ARRAY_SIZE(clone_arg ## flag), clone_arg ## flag, SCMP_ACT_ERRNO(EPE= RM) } =20 -/* If no CLONE_* flags are set, except CSIGNAL, deny */ -const struct scmp_arg_cmp clone_arg_none[] =3D { - { .arg =3D CLONE_FLAGS_ARG, - .op =3D SCMP_CMP_MASKED_EQ, - .datum_a =3D ~(CSIGNAL), .datum_b =3D 0 } -}; - /* * pthread_create should always set all of these. */ @@ -219,8 +212,6 @@ static const struct QemuSeccompSyscall denylist[] =3D { 0, NULL, SCMP_ACT_ERRNO(EPERM) }, { SCMP_SYS(execve), QEMU_SECCOMP_SET_SPAWN, 0, NULL, SCMP_ACT_ERRNO(EPERM) }, - { SCMP_SYS(clone), QEMU_SECCOMP_SET_SPAWN, - ARRAY_SIZE(clone_arg_none), clone_arg_none, SCMP_ACT_ERRNO(EPERM) }, RULE_CLONE_FLAG(CLONE_VM), RULE_CLONE_FLAG(CLONE_FS), RULE_CLONE_FLAG(CLONE_FILES), --=20 2.56.0 From nobody Fri Oct 23 14:29:27 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1792143903; cv=none; d=zohomail.com; s=zohoarc; b=ZOR4Kplewh52fQSR6rxB47NRqxnBbqKawjqZ7ja8xVEhktyH4j1YGxQG8flYaCGGKKJZQ1JLt6ZgejsZHlaEIOzny0Hhmh8v9fOzUz6swxkPQdH31S+Ol29ai5bMh5nQtA9HFqmOz9cMZ2xQST4nAXbUgXpQUwsFyFrp9aZTP+o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1792143903; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=niOhF37+mqoeLXvbJd+Pg9dAnGLVQMSFvX8aQAs55zI=; b=KQsL8fW+Uo1QsQpZns1YpTsyCx64EP5ESL1m5K7p6iZiAENAkRpbi6k0VNbWM3knxYEffzB+mTXsAtwuixksE9ZqhM6Q5mN34ZZLB9APJz2A8f8NQ3cMZQfuJagYZTn2Cww82p7wbZRNpT0shyGrxYILUJWFQynkBA7o86N/gVY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1792143903391268.90021085884564; Fri, 16 Oct 2026 02:45:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xHeU7-00010t-IN; Fri, 16 Oct 2026 05:44:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTq-0000wg-1M for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTo-0007KB-En for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:01 -0400 Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-478-nwRFvBUpO4ef0zTs0UN5_g-1; Fri, 16 Oct 2026 09:43:57 +0000 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 82EA41955E89; Fri, 16 Oct 2026 09:43:56 +0000 (UTC) Received: from berrange.csb (headnet03.pony-001.prod.iad2.dc.redhat.com [10.2.32.114]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 593813000735; Fri, 16 Oct 2026 09:43:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1792143839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=niOhF37+mqoeLXvbJd+Pg9dAnGLVQMSFvX8aQAs55zI=; b=QpjfSEks4FOKceiYzm1ca732n6rUaJV7HgO3TBdFrvxdxvx3MkYxt+OBZ6EQW5bIkoAIGh VUnpZHBjM1HN/5yVjNNSIH2FJvhm5VOUt7Y8FwCWVHKktLSNEerdWtloiVqpJ+1WmTdFy5 7ywsz19DV2x3aG1zRaLGhaf8T66oBcU= X-MC-Unique: nwRFvBUpO4ef0zTs0UN5_g-1 X-Mimecast-MFC-AGG-ID: nwRFvBUpO4ef0zTs0UN5_g_1792143836 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Fabiano Rosas Subject: [PULL 3/8] qtest: fail fast when QEMU terminates early Date: Fri, 16 Oct 2026 10:43:43 +0100 Message-ID: <20261016094348.2616374-4-berrange@redhat.com> In-Reply-To: <20261016094348.2616374-1-berrange@redhat.com> References: <20261016094348.2616374-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: 10 X-Spam_score: 1.0 X-Spam_bar: + X-Spam_report: (1.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.24, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1792143905460158500 If QEMU fails to start, or crashes early, before libqtest has opened its qtest and QMP sockets, we'll get into an 'accept()' call with a 50 second timeout waiting for a connection that the zombie QEMU process will never initiate. Use a short 250ms timeout with accept(), but loop 200 times instead, checking whether the process is alive on each iteration. With this qtest detects dead QEMU immediately. socket_accept is renamed to qtest_socket_accept to reflect that it now requires QTestState. Reviewed-by: Fabiano Rosas Signed-off-by: Daniel P. Berrang=C3=A9 --- tests/qtest/libqtest.c | 45 ++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c index 05d88476154..9e7a2d43a18 100644 --- a/tests/qtest/libqtest.c +++ b/tests/qtest/libqtest.c @@ -44,13 +44,14 @@ =20 #define MAX_IRQ 256 =20 +#define ACCEPT_TIMEOUT_MS 250 +#define ACCEPT_RETRIES (4 * 50) + #ifndef _WIN32 -# define SOCKET_TIMEOUT 50 # define CMD_EXEC "exec " # define DEV_STDERR "/dev/fd/2" # define DEV_NULL "/dev/null" #else -# define SOCKET_TIMEOUT 50000 # define CMD_EXEC "" # define DEV_STDERR "2" # define DEV_NULL "nul" @@ -116,20 +117,17 @@ static int init_socket(const char *socket_path) return sock; } =20 -static int socket_accept(int sock) +static int qtest_socket_accept(QTestState *s, int sock) { struct sockaddr_un addr; socklen_t addrlen; int ret; - /* - * timeout unit of blocking receive calls is different among platforms. - * It's in seconds on non-Windows platforms but milliseconds on Window= s. - */ + size_t i; #ifndef _WIN32 - struct timeval timeout =3D { .tv_sec =3D SOCKET_TIMEOUT, - .tv_usec =3D 0 }; + struct timeval timeout =3D { .tv_sec =3D 0, + .tv_usec =3D ACCEPT_TIMEOUT_MS * 1000ul }; #else - DWORD timeout =3D SOCKET_TIMEOUT; + DWORD timeout =3D ACCEPT_TIMEOUT_MS; #endif =20 if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, @@ -140,13 +138,26 @@ static int socket_accept(int sock) return -1; } =20 - do { + for (i =3D 0; i < ACCEPT_RETRIES ; i++) { + if (!qtest_probe_child(s)) { + fprintf(stderr, + "child process unexpectedly exited, skipping socket ac= cept\n"); + goto cleanup; + } + addrlen =3D sizeof(addr); ret =3D accept(sock, (struct sockaddr *)&addr, &addrlen); - } while (ret =3D=3D -1 && errno =3D=3D EINTR); - if (ret =3D=3D -1) { - fprintf(stderr, "%s failed: %s\n", __func__, strerror(errno)); + if (ret =3D=3D -1) { + if (errno =3D=3D EINTR || errno =3D=3D EAGAIN) { + continue; + } else { + fprintf(stderr, "%s failed: %s\n", __func__, strerror(errn= o)); + } + } + return ret; } + + cleanup: close(sock); =20 return ret; @@ -549,9 +560,9 @@ void qtest_connect(QTestState *s) g_autofree gchar *qmp_socket_path =3D qtest_socket_path("qmp"); =20 g_assert(s->sock >=3D 0 && s->qmpsock >=3D 0); - s->fd =3D socket_accept(s->sock); + s->fd =3D qtest_socket_accept(s, s->sock); if (s->fd >=3D 0) { - s->qmp_fd =3D socket_accept(s->qmpsock); + s->qmp_fd =3D qtest_socket_accept(s, s->qmpsock); } unlink(socket_path); unlink(qmp_socket_path); @@ -663,7 +674,7 @@ QTestState *qtest_init_with_serial(const char *extra_ar= gs, int *sock_fd) qts =3D qtest_initf("-chardev socket,id=3Ds0,path=3D%s -serial chardev= :s0 %s", sock_path, extra_args); =20 - *sock_fd =3D socket_accept(sock_fd_init); + *sock_fd =3D qtest_socket_accept(qts, sock_fd_init); =20 unlink(sock_path); g_free(sock_path); --=20 2.56.0 From nobody Fri Oct 23 14:29:27 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1792143892; cv=none; d=zohomail.com; s=zohoarc; b=W5DEOXgm3U+l2K2UgeqUEUZwEwqq9zI+1a4WFg8kn6+1ZenjfSyj18RzwEOws2ifS6+XJkr40N2C75KxFF03IFKMMqiWOv4vUT1Y3Y0kwpZjU7Hgiy8PsJ+NQUD33ruugbF1GkQAcqqGqrNWax/greMPhWqOHNF8i589xqIpcBY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1792143892; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ivfnCDvhT9JT3JpGJzLa6a8hUIXgO0RkZN6sYAk2Pq4=; b=HQY6xCWg35Dohfc8V1gARFNR9IKifO0Ubb5EBMrXujD2gB2hTdOXb96sVuqsLyv/CU4raX4g70OWxjSsY5M6oBtw4aR3O3P8HoIRPdIQajlLM/M3jpeoW08vM20moHOR/8M1gcS5myaqYMEr0jUxWuLYzNQDKgOWhUL74h6Xgkw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1792143892984390.92010842699085; Fri, 16 Oct 2026 02:44:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xHeUD-00017J-6K; Fri, 16 Oct 2026 05:44:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTu-0000xQ-4K for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:06 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTs-0007Ki-8H for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:05 -0400 Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-299-ONpOchyOMA-S2ce-8S7lnw-1; Fri, 16 Oct 2026 09:43:59 +0000 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7DF3F1955BDF; Fri, 16 Oct 2026 09:43:58 +0000 (UTC) Received: from berrange.csb (headnet03.pony-001.prod.iad2.dc.redhat.com [10.2.32.114]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 113DF3000B78; Fri, 16 Oct 2026 09:43:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1792143842; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ivfnCDvhT9JT3JpGJzLa6a8hUIXgO0RkZN6sYAk2Pq4=; b=fb4AFWTdfhHoBeFwhNeypVTA6WqrUT/dtYDRgQ4MeOBSalQ5wweW9pkHvGKYrXB5/ANozC OYxFOPYXfJ8ulGnd/ct/iqah1P7ivVl6yYtpJBHmKnuOsCnoqnlDh61cyCh11/abu4Fb+c 1I/yh63m7Ko94/8Nnnag0u26Y+DhhcM= X-MC-Unique: ONpOchyOMA-S2ce-8S7lnw-1 X-Mimecast-MFC-AGG-ID: ONpOchyOMA-S2ce-8S7lnw_1792143838 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 4/8] qom: deprecate use of instance level properties Date: Fri, 16 Oct 2026 10:43:44 +0100 Message-ID: <20261016094348.2616374-5-berrange@redhat.com> In-Reply-To: <20261016094348.2616374-1-berrange@redhat.com> References: <20261016094348.2616374-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: 10 X-Spam_score: 1.0 X-Spam_bar: + X-Spam_report: (1.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.24, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1792143895276158500 Add API docs to object_property_(add/try_add/del) to recommend use of class properties instead. Reviewed-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Daniel P. Berrang=C3=A9 --- include/qom/object.h | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 4c0645817a5..90c1a34e49a 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1171,6 +1171,16 @@ void object_unref(void *obj); * @opaque: an opaque pointer to pass to the callbacks for the property * @errp: pointer to error object * + * Further use of this method is deprecated. Properties for an + * object should be statically declared against the class, and + * not be permitted to vary at runtime. Use the + * object_class_property_add() method (and its variants) instead. + * + * If usage scenarios require differing subsets of properties + * to be present, this should be handled by creating further + * specialized subclasses instead of dynamically registering + * properties against instances. + * * Returns: The #ObjectProperty; this can be used to set the @resolve * callback for child and link properties. */ @@ -1183,9 +1193,6 @@ ObjectProperty *object_property_try_add(Object *obj, = const char *name, =20 /** * object_property_add: - * Same as object_property_try_add() with @errp hardcoded to - * &error_abort. - * * @obj: the object to add a property to * @name: the name of the property. This can contain any character except= for * a forward slash. In general, you should use hyphens '-' instead of @@ -1202,6 +1209,12 @@ ObjectProperty *object_property_try_add(Object *obj,= const char *name, * meant to allow a property to free its opaque upon object * destruction. This may be NULL. * @opaque: an opaque pointer to pass to the callbacks for the property + * + * Same as object_property_try_add() with @errp hardcoded to + * &error_abort. + * + * Further use of this method is deprecated, see + * object_property_try_add() for details. */ ObjectProperty *object_property_add(Object *obj, const char *name, const char *type, @@ -1210,6 +1223,14 @@ ObjectProperty *object_property_add(Object *obj, con= st char *name, ObjectPropertyRelease *release, void *opaque); =20 +/** + * object_property_del: + * @obj: the object to remove a property from + * @name: the property to be deleted + * + * Further use of this method is deprecated, see + * object_property_try_add() for details. + */ void object_property_del(Object *obj, const char *name); =20 ObjectProperty *object_class_property_add(ObjectClass *klass, const char *= name, --=20 2.56.0 From nobody Fri Oct 23 14:29:28 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1792143907; cv=none; d=zohomail.com; s=zohoarc; b=DR4tJSJ8yrp6h4AxlaSzBFZ71vs0J083nfI+a93jhKkue5RIwZSjoMhZHYHB9KX4WVzRL4B6YEPNjTwihBQef87bktC/UaNMv9Y0tg1iL0ig5ZZN+58+Jgq3yz8BOYdjGwGpFfHyApM399PiJI/Kdax/HA3sWluEnwUDsEH+hJA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1792143907; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=tq/DSFEuCzHUHQXq/8JiBcaPIiFnjF8nfhr7UakpoOM=; b=AQxCGC7eTe1Pel3jV+B45cdcNW5EKUlUvyGN5K2yN33AjCupJum9frv4fEgTYQmOLcUQC+SxV2hObS6tMRsGWrSkkFouiu1D05hjYyhb3/q4QClEjiYZiZXYpkBvCadJ2+0d8u3C+IMNfbuFh/PLLP8f6//mx0f2U6IU/jNfeIo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1792143907245237.6820664722593; Fri, 16 Oct 2026 02:45:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xHeUD-00019c-UY; Fri, 16 Oct 2026 05:44:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTv-0000xw-BU for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:11 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTs-0007Kl-OK for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:07 -0400 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-102-ErqngBeUNFu5W1n6JK8Jnw-1; Fri, 16 Oct 2026 09:44:01 +0000 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id D650A180063A; Fri, 16 Oct 2026 09:44:00 +0000 (UTC) Received: from berrange.csb (headnet03.pony-001.prod.iad2.dc.redhat.com [10.2.32.114]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 2D6B03000B4E; Fri, 16 Oct 2026 09:43:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1792143843; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tq/DSFEuCzHUHQXq/8JiBcaPIiFnjF8nfhr7UakpoOM=; b=i54hEZcDnb9TBW53BAvCIo0bYNg3nI5UQTIhpPEace7FrFM3qDKv3y05e1oTPxd3eaarzq 5ENc7RqTt9dqtgfvhIRY/P8MQpgX7KVhYbRNLip5jsxoTC5KMcvWNi1tY6eGTqHDzG8Nla XSerSGy1JK1Ph3i53UEmTCU1MhNLHrc= X-MC-Unique: ErqngBeUNFu5W1n6JK8Jnw-1 X-Mimecast-MFC-AGG-ID: ErqngBeUNFu5W1n6JK8Jnw_1792143841 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Peter Xu , Fabiano Rosas Subject: [PULL 5/8] Revert "migration: activate TLS thread safety workaround" Date: Fri, 16 Oct 2026 10:43:45 +0100 Message-ID: <20261016094348.2616374-6-berrange@redhat.com> In-Reply-To: <20261016094348.2616374-1-berrange@redhat.com> References: <20261016094348.2616374-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.24, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1792143909496158500 This reverts commit eb3618e9e259ef93f5a1a76867fbccae540fcd61. The workaround for the GNUTLS bug was not correct and it was decided to rely on GNUTLS being patched by distros instead, or users manually disabling use of the problematic ciphers. Acked-by: Peter Xu Reviewed-by: Fabiano Rosas Signed-off-by: Daniel P. Berrang=C3=A9 --- migration/tls.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/migration/tls.c b/migration/tls.c index 89ba52de02a..b7914831923 100644 --- a/migration/tls.c +++ b/migration/tls.c @@ -88,10 +88,6 @@ void migration_tls_channel_process_incoming(QIOChannel *= ioc, Error **errp) =20 trace_migration_tls_incoming_handshake_start(); qio_channel_set_name(QIO_CHANNEL(tioc), "migration-tls-incoming"); - if (migrate_postcopy_ram() || migrate_return_path()) { - qio_channel_set_feature(QIO_CHANNEL(tioc), - QIO_CHANNEL_FEATURE_CONCURRENT_IO); - } qio_channel_tls_handshake(tioc, migration_tls_incoming_handshake, NULL, @@ -142,11 +138,6 @@ void migration_tls_channel_connect(MigrationState *s, = QIOChannel *ioc, =20 trace_migration_tls_outgoing_handshake_start(); qio_channel_set_name(QIO_CHANNEL(tioc), "migration-tls-outgoing"); - - if (migrate_postcopy_ram() || migrate_return_path()) { - qio_channel_set_feature(QIO_CHANNEL(tioc), - QIO_CHANNEL_FEATURE_CONCURRENT_IO); - } qio_channel_tls_handshake(tioc, migration_tls_outgoing_handshake, s, --=20 2.56.0 From nobody Fri Oct 23 14:29:28 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1792143911; cv=none; d=zohomail.com; s=zohoarc; b=WyauLf/Nh5iZz2ydkJGmhjA7y4Pn3uvkhQ64hZ8xxXvlraiyuACdf/SkFg+Q7Zk54yu26/YDaf7R0CdkZMeXCTjffvjGsluWXzF1jgeyevyq9DCdQenIBWBSX96qEYEHorBBrtwMp37Ec0TH19gZVSN6LhLxOyzs9ce9pyJZzYs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1792143911; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Qrx+D9J8tSf0VOxk0N4MkPigYFTAT8I+i4EuW+gVafs=; b=oLJBxAUfjJeFBrSp5Hq8RqmssXKW3JHQ5iL90Vrp03zEg2mAzuAZXbhRGcXCqXzkEcq8/c/E73PqivpTSDDKDy405x22TJIYbQebx1OND3g+xavigYdkpJadCfMp8i2BW7XTc7BDHdw3tnJcYPI6vCO+t2AAVcbm1EgsJQqq5jo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 179214391132423.647532690301773; Fri, 16 Oct 2026 02:45:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xHeU8-00011K-DB; Fri, 16 Oct 2026 05:44:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTw-0000xx-V7 for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:14 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTv-0007L0-FX for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:08 -0400 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-149-w0SXu2ilNwi34rLo0urDDQ-1; Fri, 16 Oct 2026 09:44:03 +0000 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9A70818005AA; Fri, 16 Oct 2026 09:44:02 +0000 (UTC) Received: from berrange.csb (headnet03.pony-001.prod.iad2.dc.redhat.com [10.2.32.114]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 461633000735; Fri, 16 Oct 2026 09:44:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1792143846; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Qrx+D9J8tSf0VOxk0N4MkPigYFTAT8I+i4EuW+gVafs=; b=fmXQriSk4KEkfwuJwPyIDl2fNT2PXeBhz5NTb6LAFzC2RKY73jwp2Mfi44KM5UnWWypDxj wGUeQVXNxQ0oiipJXS3m5opSGCMNhNMScCvwTDCifq8E3Y43rinoTWejEL6orkpO06RWco 5P+zXM8IPokrvTxzTibENxBGSfalhBM= X-MC-Unique: w0SXu2ilNwi34rLo0urDDQ-1 X-Mimecast-MFC-AGG-ID: w0SXu2ilNwi34rLo0urDDQ_1792143842 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Peter Xu , Fabiano Rosas Subject: [PULL 6/8] Revert "io: add support for activating TLS thread safety workaround" Date: Fri, 16 Oct 2026 10:43:46 +0100 Message-ID: <20261016094348.2616374-7-berrange@redhat.com> In-Reply-To: <20261016094348.2616374-1-berrange@redhat.com> References: <20261016094348.2616374-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.24, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1792143913575158500 This reverts commit edea818371bd7179b55f38d3b113d342251d8f9b. The workaround for the GNUTLS bug was not correct and it was decided to rely on GNUTLS being patched by distros instead, or users manually disabling use of the problematic ciphers. Acked-by: Peter Xu Reviewed-by: Fabiano Rosas Signed-off-by: Daniel P. Berrang=C3=A9 --- include/io/channel.h | 1 - io/channel-tls.c | 5 ----- 2 files changed, 6 deletions(-) diff --git a/include/io/channel.h b/include/io/channel.h index c90ace20d53..834ba7c3098 100644 --- a/include/io/channel.h +++ b/include/io/channel.h @@ -47,7 +47,6 @@ enum QIOChannelFeature { QIO_CHANNEL_FEATURE_WRITE_ZERO_COPY, QIO_CHANNEL_FEATURE_READ_MSG_PEEK, QIO_CHANNEL_FEATURE_SEEKABLE, - QIO_CHANNEL_FEATURE_CONCURRENT_IO, }; =20 =20 diff --git a/io/channel-tls.c b/io/channel-tls.c index 05317ed5a38..5b0524e68dd 100644 --- a/io/channel-tls.c +++ b/io/channel-tls.c @@ -261,11 +261,6 @@ void qio_channel_tls_handshake(QIOChannelTLS *ioc, { QIOTask *task; =20 - if (qio_channel_has_feature(QIO_CHANNEL(ioc), - QIO_CHANNEL_FEATURE_CONCURRENT_IO)) { - qcrypto_tls_session_require_thread_safety(ioc->session); - } - task =3D qio_task_new(OBJECT(ioc), func, opaque, destroy); =20 --=20 2.56.0 From nobody Fri Oct 23 14:29:28 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1792143877; cv=none; d=zohomail.com; s=zohoarc; b=TdflzXzrcJIVgBinURKqdXVziMLxdt6m9ysXCr1THJ87G5whVi7AU+xD0MVvo7/RhdKp6rQ7Gc6e+wYSpG5K+6HVh14+9iTdoQI7faoH3n2oqYMIgQvBX4R+lgIMg99TWK2kdRIIo5BsRbx+E1Qusz2bL1xoR2DceaL4o5ulyIU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1792143877; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=c1P7wup21MEqIPiv1Q/cTpVzJ4nDRuegAEr/nbgt6DI=; b=HcHIJTOmJ8Ff5SJW1CDkN2nuCHKAI8UtJXkbZIZFGjYMmIw4LIvv+UpyvxM4QVRaFixu6w0vZRGcLfab0csQVC29EAgRjsHEMn2jyuvIEuw6P5FRX70WC6UBckSUgk/80fQUOonVRc+Awl5pTiZZtgEqOXVdqsREqSV39YH/TqY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1792143877018554.9613776199737; Fri, 16 Oct 2026 02:44:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xHeUA-00013z-1m; Fri, 16 Oct 2026 05:44:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTz-0000y3-EJ for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:18 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeTx-0007LD-Ne for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:10 -0400 Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-235-cEhlLCoGMuWSbbajTc6Jhw-1; Fri, 16 Oct 2026 09:44:05 +0000 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id B23561955E9C; Fri, 16 Oct 2026 09:44:04 +0000 (UTC) Received: from berrange.csb (headnet03.pony-001.prod.iad2.dc.redhat.com [10.2.32.114]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 0F1B73000B4E; Fri, 16 Oct 2026 09:44:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1792143849; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=c1P7wup21MEqIPiv1Q/cTpVzJ4nDRuegAEr/nbgt6DI=; b=fTTWXvcI61X4kF1Ku06b19mRDwSiIW3HDMnC4o9PvZX6AC06RDkyKb+MJRK3j8tMpAExg2 2wHOFcYaTJU/UBM06sARwjrNMR2eUa3U/C5CpzobeyhcWyajmF9OVOPgcTfidzKCinz9P5 iBwW/GJDYJOsneQEeZpR2MNJbaMR67s= X-MC-Unique: cEhlLCoGMuWSbbajTc6Jhw-1 X-Mimecast-MFC-AGG-ID: cEhlLCoGMuWSbbajTc6Jhw_1792143844 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Peter Xu , Fabiano Rosas Subject: [PULL 7/8] Revert "crypto: add tracing & warning about GNUTLS countermeasures" Date: Fri, 16 Oct 2026 10:43:47 +0100 Message-ID: <20261016094348.2616374-8-berrange@redhat.com> In-Reply-To: <20261016094348.2616374-1-berrange@redhat.com> References: <20261016094348.2616374-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: 10 X-Spam_score: 1.0 X-Spam_bar: + X-Spam_report: (1.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.24, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1792143878929158500 This reverts commit 0db6f798024ea6f57ecf2020209b761b50a01d71. The workaround for the GNUTLS bug was not correct and it was decided to rely on GNUTLS being patched by distros instead, or users manually disabling use of the problematic ciphers. Acked-by: Peter Xu Reviewed-by: Fabiano Rosas Signed-off-by: Daniel P. Berrang=C3=A9 --- crypto/tlssession.c | 11 ----------- crypto/trace-events | 1 - 2 files changed, 12 deletions(-) diff --git a/crypto/tlssession.c b/crypto/tlssession.c index b343d1a5956..9450c83d9c3 100644 --- a/crypto/tlssession.c +++ b/crypto/tlssession.c @@ -19,7 +19,6 @@ */ =20 #include "qemu/osdep.h" -#include "qemu/error-report.h" #include "qemu/thread.h" #include "crypto/tlssession.h" #include "crypto/tlscredsanon.h" @@ -572,20 +571,10 @@ qcrypto_tls_session_handshake(QCryptoTLSSession *sess= ion, * only have to protect against automatic rekeying * which doesn't trigger with CHACHA20 */ - trace_qcrypto_tls_session_parameters( - session, - session->requireThreadSafety, - gnutls_protocol_get_version(session->handle), - cipher); - if (session->requireThreadSafety && gnutls_protocol_get_version(session->handle) =3D=3D GNUTLS_TLS1_3 && cipher !=3D GNUTLS_CIPHER_CHACHA20_POLY1305) { - warn_report("WARNING: activating thread safety countermeasures= " - "for potentially broken GNUTLS with TLS1.3 cipher= =3D%d", - cipher); - trace_qcrypto_tls_session_bug1717_workaround(session); session->lockEnabled =3D true; } #endif diff --git a/crypto/trace-events b/crypto/trace-events index 771f9b8a6e8..9905ea261a9 100644 --- a/crypto/trace-events +++ b/crypto/trace-events @@ -23,7 +23,6 @@ qcrypto_tls_session_new(void *session, void *creds, const= char *hostname, const qcrypto_tls_session_check_creds(void *session, const char *status) "TLS se= ssion check creds session=3D%p status=3D%s" qcrypto_tls_session_check_x509_dn(void *session, const char *dname) "TLS s= ession check x509 distinguished name session=3D%p dname=3D%s" qcrypto_tls_session_parameters(void *session, int threadSafety, int protoc= ol, int cipher) "TLS session parameters session=3D%p threadSafety=3D%d prot= ocol=3D%d cipher=3D%d" -qcrypto_tls_session_bug1717_workaround(void *session) "TLS session bug1717= workaround session=3D%p" =20 # tls-cipher-suites.c qcrypto_tls_cipher_suite_priority(const char *name) "priority: %s" --=20 2.56.0 From nobody Fri Oct 23 14:29:28 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1792143905; cv=none; d=zohomail.com; s=zohoarc; b=X0pMlieXsKnoSL/P6Xda8QQvA+axuiah11IeiEwf9HfAawO3CVbTHb8hBryCNe7KG3nAlmvyIi84yXeqQ8Vg6r4zDH4x83iI5ZsCXKro0Ixd9rVAcFImS9AJGmGWMJmgrUo+SXRDKtiCiGA4PfAXz8bxI/Qd8qOW/Zxze2ajeG4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1792143905; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+z/6pd1mL9+sJnkC4FYFKbajf/obk9AlwHYoGvARpXo=; b=Dg1S7gEWahdrU5mfvRmRBoBuFNLJ84zcge2zwM0+xMbiGNI0JqiZoyAQ+3S3t+6XWZg0kEAaSVg4UHbcXJ+QnjE6skiVEE2Q2mo1blRBOS98Y6bFoC7i8etV6ssLibebvH35DEGLOEJW4BXZ4r9QhTDp2d8i27WHbXRXIv3fo7A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 179214390516823.308025200580346; Fri, 16 Oct 2026 02:45:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xHeUH-0001El-AG; Fri, 16 Oct 2026 05:44:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeU8-00012a-H4 for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:20 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xHeU6-0007ML-9M for qemu-devel@nongnu.org; Fri, 16 Oct 2026 05:44:20 -0400 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-451-v-EQoZu8MgibayR1aCoYvg-1; Fri, 16 Oct 2026 09:44:07 +0000 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id B8BE21800665; Fri, 16 Oct 2026 09:44:06 +0000 (UTC) Received: from berrange.csb (headnet03.pony-001.prod.iad2.dc.redhat.com [10.2.32.114]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 27C6E3000C00; Fri, 16 Oct 2026 09:44:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1792143857; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+z/6pd1mL9+sJnkC4FYFKbajf/obk9AlwHYoGvARpXo=; b=SbzMlaBO2kL8vtwzIEptXlc2rF7nDQmdieNQRtmjs8vPaDldyfI5+kz9BoiXlarSbn0J/k t3NiF6nWGw7JagbXr9T+BQfyPNLIt5eXRYvLcZQl/b6G9Nj+j0ayN7SSvTvZfaL0H+hAWO yqJwoCGMvMJIw9JUK2bgEWHmf0xnCW8= X-MC-Unique: v-EQoZu8MgibayR1aCoYvg-1 X-Mimecast-MFC-AGG-ID: v-EQoZu8MgibayR1aCoYvg_1792143846 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Peter Xu , Fabiano Rosas Subject: [PULL 8/8] Revert "crypto: implement workaround for GNUTLS thread safety problems" Date: Fri, 16 Oct 2026 10:43:48 +0100 Message-ID: <20261016094348.2616374-9-berrange@redhat.com> In-Reply-To: <20261016094348.2616374-1-berrange@redhat.com> References: <20261016094348.2616374-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.24, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1792143907597158500 This reverts commit 24ad5e19952b326796c8a3a1595c57ff180dab84. The workaround for the GNUTLS bug was not correct and it was decided to rely on GNUTLS being patched by distros instead, or users manually disabling use of the problematic ciphers. Acked-by: Peter Xu Reviewed-by: Fabiano Rosas Signed-off-by: Daniel P. Berrang=C3=A9 --- crypto/tlssession.c | 92 ++----------------------------------- include/crypto/tlssession.h | 14 ------ meson.build | 9 ---- 3 files changed, 3 insertions(+), 112 deletions(-) diff --git a/crypto/tlssession.c b/crypto/tlssession.c index 9450c83d9c3..0e9ca9fae0f 100644 --- a/crypto/tlssession.c +++ b/crypto/tlssession.c @@ -19,7 +19,6 @@ */ =20 #include "qemu/osdep.h" -#include "qemu/thread.h" #include "crypto/tlssession.h" #include "crypto/tlscredsanon.h" #include "crypto/tlscredspsk.h" @@ -53,14 +52,6 @@ struct QCryptoTLSSession { */ Error *rerr; Error *werr; - - /* - * Used to protect against broken GNUTLS thread safety - * https://gitlab.com/gnutls/gnutls/-/issues/1717 - */ - bool requireThreadSafety; - bool lockEnabled; - QemuMutex lock; }; =20 =20 @@ -80,7 +71,6 @@ qcrypto_tls_session_free(QCryptoTLSSession *session) g_free(session->authzid); qcrypto_tls_creds_box_unref(session->credsbox); object_unref(OBJECT(session->creds)); - qemu_mutex_destroy(&session->lock); g_free(session); } =20 @@ -96,19 +86,10 @@ qcrypto_tls_session_push(void *opaque, const void *buf,= size_t len) return -1; }; =20 - if (session->lockEnabled) { - qemu_mutex_unlock(&session->lock); - } - error_free(session->werr); session->werr =3D NULL; =20 ret =3D session->writeFunc(buf, len, session->opaque, &session->werr); - - if (session->lockEnabled) { - qemu_mutex_lock(&session->lock); - } - if (ret =3D=3D QCRYPTO_TLS_SESSION_ERR_BLOCK) { errno =3D EAGAIN; return -1; @@ -135,16 +116,7 @@ qcrypto_tls_session_pull(void *opaque, void *buf, size= _t len) error_free(session->rerr); session->rerr =3D NULL; =20 - if (session->lockEnabled) { - qemu_mutex_unlock(&session->lock); - } - ret =3D session->readFunc(buf, len, session->opaque, &session->rerr); - - if (session->lockEnabled) { - qemu_mutex_lock(&session->lock); - } - if (ret =3D=3D QCRYPTO_TLS_SESSION_ERR_BLOCK) { errno =3D EAGAIN; return -1; @@ -181,8 +153,6 @@ qcrypto_tls_session_new(QCryptoTLSCreds *creds, session->creds =3D creds; object_ref(OBJECT(creds)); =20 - qemu_mutex_init(&session->lock); - if (creds->endpoint !=3D endpoint) { error_setg(errp, "Credentials endpoint doesn't match session"); goto error; @@ -247,11 +217,6 @@ qcrypto_tls_session_new(QCryptoTLSCreds *creds, return NULL; } =20 -void qcrypto_tls_session_require_thread_safety(QCryptoTLSSession *sess) -{ - sess->requireThreadSafety =3D true; -} - static int qcrypto_tls_session_check_certificate(QCryptoTLSSession *session, Error **errp) @@ -438,17 +403,7 @@ qcrypto_tls_session_write(QCryptoTLSSession *session, size_t len, Error **errp) { - ssize_t ret; - - if (session->lockEnabled) { - qemu_mutex_lock(&session->lock); - } - - ret =3D gnutls_record_send(session->handle, buf, len); - - if (session->lockEnabled) { - qemu_mutex_unlock(&session->lock); - } + ssize_t ret =3D gnutls_record_send(session->handle, buf, len); =20 if (ret < 0) { if (ret =3D=3D GNUTLS_E_AGAIN) { @@ -476,17 +431,7 @@ qcrypto_tls_session_read(QCryptoTLSSession *session, size_t len, Error **errp) { - ssize_t ret; - - if (session->lockEnabled) { - qemu_mutex_lock(&session->lock); - } - - ret =3D gnutls_record_recv(session->handle, buf, len); - - if (session->lockEnabled) { - qemu_mutex_unlock(&session->lock); - } + ssize_t ret =3D gnutls_record_recv(session->handle, buf, len); =20 if (ret < 0) { if (ret =3D=3D GNUTLS_E_AGAIN) { @@ -556,29 +501,8 @@ int qcrypto_tls_session_handshake(QCryptoTLSSession *session, Error **errp) { - int ret; - ret =3D gnutls_handshake(session->handle); - + int ret =3D gnutls_handshake(session->handle); if (!ret) { -#ifdef CONFIG_GNUTLS_BUG1717_WORKAROUND - gnutls_cipher_algorithm_t cipher =3D - gnutls_cipher_get(session->handle); - - /* - * Any use of rekeying in TLS 1.3 is unsafe for - * a gnutls with bug 1717, however, we know that - * QEMU won't initiate manual rekeying. Thus we - * only have to protect against automatic rekeying - * which doesn't trigger with CHACHA20 - */ - if (session->requireThreadSafety && - gnutls_protocol_get_version(session->handle) =3D=3D - GNUTLS_TLS1_3 && - cipher !=3D GNUTLS_CIPHER_CHACHA20_POLY1305) { - session->lockEnabled =3D true; - } -#endif - session->handshakeComplete =3D true; return QCRYPTO_TLS_HANDSHAKE_COMPLETE; } @@ -616,15 +540,8 @@ qcrypto_tls_session_bye(QCryptoTLSSession *session, Er= ror **errp) return 0; } =20 - if (session->lockEnabled) { - qemu_mutex_lock(&session->lock); - } ret =3D gnutls_bye(session->handle, GNUTLS_SHUT_WR); =20 - if (session->lockEnabled) { - qemu_mutex_unlock(&session->lock); - } - if (!ret) { return QCRYPTO_TLS_BYE_COMPLETE; } @@ -690,9 +607,6 @@ qcrypto_tls_session_new(QCryptoTLSCreds *creds G_GNUC_U= NUSED, return NULL; } =20 -void qcrypto_tls_session_require_thread_safety(QCryptoTLSSession *sess) -{ -} =20 void qcrypto_tls_session_free(QCryptoTLSSession *sess G_GNUC_UNUSED) diff --git a/include/crypto/tlssession.h b/include/crypto/tlssession.h index 5415503ebab..274f4fd07ac 100644 --- a/include/crypto/tlssession.h +++ b/include/crypto/tlssession.h @@ -166,20 +166,6 @@ void qcrypto_tls_session_free(QCryptoTLSSession *sess); =20 G_DEFINE_AUTOPTR_CLEANUP_FUNC(QCryptoTLSSession, qcrypto_tls_session_free) =20 -/** - * qcrypto_tls_session_require_thread_safety: - * @sess: the TLS session object - * - * Mark that this TLS session will require thread safety - * for concurrent I/O in both directions. This must be - * called before the handshake is performed. - * - * This will activate a workaround for GNUTLS thread - * safety issues, where appropriate for the negotiated - * TLS session parameters. - */ -void qcrypto_tls_session_require_thread_safety(QCryptoTLSSession *sess); - /** * qcrypto_tls_session_check_credentials: * @sess: the TLS session object diff --git a/meson.build b/meson.build index 255c887e8e6..1dd0d6392c9 100644 --- a/meson.build +++ b/meson.build @@ -1795,18 +1795,11 @@ endif =20 gnutls =3D not_found gnutls_crypto =3D not_found -gnutls_bug1717_workaround =3D false if get_option('gnutls').enabled() or (get_option('gnutls').auto() and have= _system) gnutls =3D dependency('gnutls', version: '>=3D3.7.5', method: 'pkg-config', required: get_option('gnutls')) gnutls_crypto =3D gnutls - - #if gnutls.found() and not get_option('gnutls-bug1717-workaround').disab= led() - # XXX: when bug 1717 is resolved, add logic to probe for - # the GNUTLS fixed version number to handle the 'auto' case - # gnutls_bug1717_workaround =3D true - #endif endif =20 # We prefer use of gnutls for crypto, unless the options @@ -2533,7 +2526,6 @@ config_host_data.set('CONFIG_KEYUTILS', keyutils.foun= d()) config_host_data.set('CONFIG_GETTID', has_gettid) config_host_data.set('CONFIG_GNUTLS', gnutls.found()) config_host_data.set('CONFIG_GNUTLS_CRYPTO', gnutls_crypto.found()) -config_host_data.set('CONFIG_GNUTLS_BUG1717_WORKAROUND', gnutls_bug1717_wo= rkaround) config_host_data.set('CONFIG_TASN1', tasn1.found()) config_host_data.set('CONFIG_GCRYPT', gcrypt.found()) config_host_data.set('CONFIG_NETTLE', nettle.found()) @@ -4906,7 +4898,6 @@ summary_info +=3D {'TLS priority': get_option('t= ls_priority')} summary_info +=3D {'GNUTLS support': gnutls} if gnutls.found() summary_info +=3D {' GNUTLS crypto': gnutls_crypto.found()} - summary_info +=3D {' GNUTLS bug 1717 workaround': gnutls_bug1717_workar= ound } endif summary_info +=3D {'libgcrypt': gcrypt} summary_info +=3D {'nettle': nettle} --=20 2.56.0