From nobody Sat Jul 25 08:30:32 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=1784706051; cv=none; d=zohomail.com; s=zohoarc; b=I12S2eo3fBKIjputSFt8CPCj7b2QXvqKxb9sdMHdg0FXmi4cUFujbS+JG+z4qTXxvAm/T9duowiNAmXy8fJAjqeZLiG5RQqc7GHIGnxOXY1Nm4VqTAmWhd1j+mWXV7zuC9a2ysGRz6rWxi31bUoRyiKz81ETgeSl7HR265Z2zE0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784706051; h=Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=h0++QkczzracjaGvTNYRjSenA7oXvFOCAJoayCG6dao=; b=PMZ2C2kp0KOK86FHvHcD2OWF7SW2KhMq9rkmBmreHKWpbp9HQPv3o6Yyg6PFJuZQ54ROdjjSILVcWDvQiG0EYfEumz9NUybGeyMDYMMliwHnO/uulWb0S8+NVxz1NFCJBKg0ff7zaCWytT0HYT48BhIlDZkC9tzlfEXA4/+KxDw= 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 17847060512813.2163714758758033; Wed, 22 Jul 2026 00:40:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmRYg-0005Oq-DQ; Wed, 22 Jul 2026 03:40:03 -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 1wmRYd-0005NC-DS for qemu-devel@nongnu.org; Wed, 22 Jul 2026 03:39:59 -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 1wmRYa-0000SK-B7 for qemu-devel@nongnu.org; Wed, 22 Jul 2026 03:39:59 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-411-nC55yGiyMsGEkG-WOjjdAQ-1; Wed, 22 Jul 2026 03:39:53 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-493fa6e28a7so114355895e9.1 for ; Wed, 22 Jul 2026 00:39:53 -0700 (PDT) Received: from [192.168.10.48] ([151.49.94.110]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85b9a60asm3782380f8f.3.2026.07.22.00.39.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jul 2026 00:39:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1784705995; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=h0++QkczzracjaGvTNYRjSenA7oXvFOCAJoayCG6dao=; b=fQkPPvmsMrHoPOITjp0oaybYafwKfp7YUJ817tPsD01E+vRO2Hn1QWGMYa50cbIFb4bWjQ 1dK5DVQMMOAhLpJj2Go58qapOyEZgWOBvGpOn0P18eqgj0RAayOCrO+DGG8IG6odht4Vi+ XzvI/weFMXc6xqZOaM5EQ4yQCyVMDQo= X-MC-Unique: nC55yGiyMsGEkG-WOjjdAQ-1 X-Mimecast-MFC-AGG-ID: nC55yGiyMsGEkG-WOjjdAQ_1784705992 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1784705992; x=1785310792; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=h0++QkczzracjaGvTNYRjSenA7oXvFOCAJoayCG6dao=; b=hCoaOQRAWYhOPSbPzNa5m/UHSrtGo4tetGdNICXBAch97Ylw7gZxH1wfhtR35pm01J AuMqnwqrR5INhN6gbM8fqzcDTAbidE72O9C6EKtE+GAKPQ0plqU8g6QnI+BW0v9BVCld cClsSv+dtZv01AYg87l9ScV2Cy0FH+tP9asJ/4SSS7OeYegv8xUxX9rIe+gFyWTFe+A6 NJ9a28+NwmVhH+mLwFIoMvdYNhjufAOc6Jo5upfkS8azXcGrNUBsvN+G7R3sqM6DIYhh y41/1wgYkvUy80jgBjdTqzWL73BEXiKSP5VmA7YebU7guXd+OotWH+npqsaNIVKYokez 9i3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784705992; x=1785310792; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=h0++QkczzracjaGvTNYRjSenA7oXvFOCAJoayCG6dao=; b=T++soyApaUjN28w8mUrOe6YuSpmblntmucWb9K23EAihJwVBnBusV1folNf9mYGglm lmrFUY6GQiBLgU0vAQMRa3I3SOznqohq7ZpqZCcEZ/VLrkJLM01vKGJLVQGAJiD4daNe RLAj2x9fsP3AJZm2q0stveJZLAT4x5xW3sYICzSt6LygDawb/3tQfH/mdZ1YHt5wFHla QY/Z7N58NXwuVi6FDMRHy0zwsGxxyCDmhIs3D0TrPvpHvDe8cKV8pBct3VA1zo1NCMt9 c6qf+0QmXpPl/610a9/Ithe+dSiH1iqOzUCezKIqTyU4TkYfrX5vlJthH30CEhxqQbml 4kdQ== X-Gm-Message-State: AOJu0Yx4/aXTH4xg5ComxDQKagLvFmrzCGV+yJUWQ6DdViUNH99w/GyC rL54NFTbRcoL5OxQS9PzThysPCB4MKT23OZCh1ElHIveO3UJcw8ivj7CarXAcCqniJ86Sm8S9XE eVoAgwWGfYm4iMNXnzwO2I3ClL3fNHgID5EzR4kykezHWAbsbI/kk526TavSo7xFpiYZlxB/8mE Dgm0asmvgyUr6XrfUibOBr2Gy7q/xLygfteVScZ782 X-Gm-Gg: AR+sD10ysSIT1cMgwTtlk1mQauFZkQAeK5t7MrNaFjgEs/ijH9PgySI40Gol5Vhrjrv 2SfywUvCLq+uaQfLWR3r754jnSzch1/B2nuzVHNieHRItcsXinbYQE3KTkVaikw5d9QPXdDJ3iJ F4VSWbkVmC2jm7lUZM7k+XofWzaXkCji8ZrhF8/T889afSxGv9OBj1y35bTF6WQWJyTG+POZzFh y1R9ioKHmqtpwf6Dj+GTMyBTtQM8Nd6StGmSXEikuC5K+sGX8EByNUbauHWlrHyeR+e5nDe7zFb GeVIvD2AePFN8L57Ol2mFlwtOwG8IWePxY1lHgffDhRQl9o9Xd+L3/u1RuDwqj3r9yieaksSNnH HS+Rggs6qS9RVnuXipj+YMgE7fM2XfaAT7QSTL+99PnODKx1FTHqeSeN5AKTmlvEeRI8LIe05Vp lV2USI X-Received: by 2002:a05:6000:4a12:b0:472:fe1a:1ee9 with SMTP id ffacd0b85a97d-47f62303929mr25218405f8f.20.1784705992292; Wed, 22 Jul 2026 00:39:52 -0700 (PDT) X-Received: by 2002:a05:6000:4a12:b0:472:fe1a:1ee9 with SMTP id ffacd0b85a97d-47f62303929mr25218383f8f.20.1784705991878; Wed, 22 Jul 2026 00:39:51 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 1/5] target/i386: tcg: remove FIXME Date: Wed, 22 Jul 2026 09:39:39 +0200 Message-ID: <20260722073943.396872-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260722073943.396872-1-pbonzini@redhat.com> References: <20260722073943.396872-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: permerror client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H2=-0.01, SPF_HELO_PASS=-0.001, T_SPF_PERMERROR=0.01 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: 1784706053102158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Paolo Bonzini --- target/i386/tcg/emit.c.inc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/i386/tcg/emit.c.inc b/target/i386/tcg/emit.c.inc index 83c889cc3b2..e4ef5a87580 100644 --- a/target/i386/tcg/emit.c.inc +++ b/target/i386/tcg/emit.c.inc @@ -3424,7 +3424,9 @@ static void gen_rot_overflow(X86DecodedInsn *decode, = TCGv result, TCGv old, /* * RCx operations are invariant modulo 8*operand_size+1. For 8 and 16-bit= operands, * this is less than 0x1f (the mask applied by gen_shift_count) so reduce = further. - * FIXME: are flags updated if the count is nonzero, but a multiple of (8 = << op) + 1? + * A count that is a nonzero multiple of (8 << op) + 1 reduces to 0 and le= aves + * CF and OF unmodified (confirmed against hardware that rcl $9,%al behaves + * exactly like rcl $0,%al). */ static MemOp gen_rotc_count(DisasContext *s, X86DecodedInsn *decode, bool *can_be_zero, TCGv *count, int unit) --=20 2.55.0 From nobody Sat Jul 25 08:30:32 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=1784706046; cv=none; d=zohomail.com; s=zohoarc; b=E2DbfbIv7lrhRqR9ozIbDDLU4wlC4n2gZkaquu6lub+VIvtu1D9952qOZnuLRxW2rcK6biupwNYW066E29Xvjg7IWgIzwwAlGvstmJ2BV7v3Xv5cuYBtM5eieJmcRFhpCCELa5gzgspE0WdBdCevACIx1jKC6FOmZ2VntEHozyQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784706046; h=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:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=X2cEn+7WktAkJCeArI/3pHUX+N1KMbDr4AYrLOAoPME=; b=MyY10ARW1ENWlRzYIaAWNanftZWRwVL9sQXR7ZvJ+3QMgwF/g3HGBTLX/MHWoCsgWa2JNWsu9G9NuLuO/pJXQP6RZ9uPpiOkvTeGWIPY8hss0Yrb7SlrhKYf/mwH8L3qWwh/TNzKR0hXvWeMwU6FuBxQE3y0vZv63SZPXSImRfo= 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 1784706046335422.35829444833246; Wed, 22 Jul 2026 00:40:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmRYo-0005QN-J9; Wed, 22 Jul 2026 03:40:12 -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 1wmRYg-0005P3-HU for qemu-devel@nongnu.org; Wed, 22 Jul 2026 03:40:03 -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 1wmRYe-0000Sp-Qa for qemu-devel@nongnu.org; Wed, 22 Jul 2026 03:40:02 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-64--Hv_623wMvGkOVa7Dn6dqQ-1; Wed, 22 Jul 2026 03:39:58 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-495529a93f9so26531425e9.3 for ; Wed, 22 Jul 2026 00:39:58 -0700 (PDT) Received: from [192.168.10.48] ([151.49.94.110]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85c67339sm3648414f8f.31.2026.07.22.00.39.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jul 2026 00:39:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1784706000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X2cEn+7WktAkJCeArI/3pHUX+N1KMbDr4AYrLOAoPME=; b=CF5Q8RZHinZUNjvFPFycZGU2sn+N+o6ue/qCJfFaI5NAwdFCEgagXOqlrgHfnCT++C+OPr HtvYzzKWjyX6HVJRWSxHdSjfS0bhgj2uHI9MhUeMf1H9+zu1A6WppzdO2Lm5xO4L0Z9tNO xNtCXd2zPO77Uev4NY/7iiYheZ9TLL8= X-MC-Unique: -Hv_623wMvGkOVa7Dn6dqQ-1 X-Mimecast-MFC-AGG-ID: -Hv_623wMvGkOVa7Dn6dqQ_1784705997 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1784705997; x=1785310797; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=X2cEn+7WktAkJCeArI/3pHUX+N1KMbDr4AYrLOAoPME=; b=pLwb+lM7Ztlfz2nFnW5cE/wWrmtHfEZAgdu+dQ0HEcU6qfVspNhPApTobARHEbumEz gBxOjVgz9Egm0TA+76z55zNSivCZcSiTyCOOC/bFLDgiB4uFUPYxYwZqjcepDQwEaPTB Su1u3Cpr5RHA6yH5+ussKnEFiM1eVNTgoBtcWw2AYi/n+rWO+B+MYFUNVDvpbqjnju6u tmehjaKIkdpySQDGK/83qZuUM9M9EZkLsOGIB6vp/tX7HmZXHYIoBl4vA4A5rJh068iH 978OiV7ZcM3B+LMfiUJJgrfrB3Nc6pMyzF50qBz44Y1SrCv+FyDONZkbLwgHg36U7Qk7 YqFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784705997; x=1785310797; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=X2cEn+7WktAkJCeArI/3pHUX+N1KMbDr4AYrLOAoPME=; b=sRKkC1Ptan7cq+niBXcriuWRHMgwKjPuUoOuUqCxyaKs6EmcxBav1k94kTHNt6Rt2f JxZ38tU1oW3iNI0QDPHvJIZdLwpbVHfYbZPCyk5saxiVwPWmHIo0lgfZkMyb3PFQfnJy Tu1qn7503TKn0q0DBuG8ddErOIjO6xfmKNr1S1xl8Q2Dq4x+6Vzmqfzg7lDs7Py6ycF4 PQq6lGkfk0kaskrH2X9n8iAw4ZvKdTZvlwYO+cpLmY0pTZz244ZFyfrN7+DZ5XrsVLT/ mycih3cJnoTWz0qftiZS0uPjqRQJCaa6JPMh/D0FGLxRWUfbUgP3BRvgczAAkDarF39e WgeA== X-Gm-Message-State: AOJu0YxCyshkl5bQG+eZWiYPTpZNeoMdcCR+m6hkml22LSxDHQekcX0X n5z043x94AfL5uK3quOJYXLUoHOApo+8AdCjcqMwtSTCD1aBHNwqIuEJ+/iUPNKPkZzJJQnFMHv gGiRWHb5mvTYLfx4m7E0T77hajUMwm+DVnA3Q9x1MaddJKb5frnUH5ZGEqpaRJatXetL6cy5iri MLObnB5UbkRJ+dQ28RROINS48JBDb790W/Jdb/wfwT X-Gm-Gg: AR+sD10hq8/Sebc9J37JPJOsmmaEb9EN1/hf1vgCMKKHqpsprCHOQJkCQHEAhFbEg8a lyQ70EXLGlkBYM7BY/Fq4LOSx8p+eN+eq9rVX99k+ht/YtFDuSZAEHsW36CG03yVWCQIiUHDbD8 JN8t6U/ZYOm8t/s0E4LAeJaAJgHPjGuVisXZmZP3WWLD17dbT/rTLjNAA1iIkAXeSIaTFT67e8v k6A7rdQcCc80NrQr0fM/QMv+vUt6rIKzsxDPbB1TdN6LUB/m70JTh1Dt7iwUI+nmWURFPqb4Z7R jHU12i35gfWAy9r1TUQdzWSdh+ReE571Jkfuz2RJB9NKU18eAauKPDFkzw6DMDLJMoD08AnBNTk lFT6HBQagfSlI6ukE3GbCbD5zwsk4VJqxuY2iIFdvwK+MnUhBDbbQeoy3wqbvq2MQnJHVQsJ1Nf 50H1oB X-Received: by 2002:a05:600c:4585:b0:493:b87c:c87d with SMTP id 5b1f17b1804b1-4954a3f3644mr233083495e9.11.1784705997201; Wed, 22 Jul 2026 00:39:57 -0700 (PDT) X-Received: by 2002:a05:600c:4585:b0:493:b87c:c87d with SMTP id 5b1f17b1804b1-4954a3f3644mr233083135e9.11.1784705996766; Wed, 22 Jul 2026 00:39:56 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Brian Cain , Pierrick Bouvier Subject: [PULL 2/5] meson: propagate qemu_ldflags to Rust link step Date: Wed, 22 Jul 2026 09:39:40 +0200 Message-ID: <20260722073943.396872-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260722073943.396872-1-pbonzini@redhat.com> References: <20260722073943.396872-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: permerror client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, T_SPF_PERMERROR=0.01 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: 1784706048912158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain Sanitizer flags are added to qemu_ldflags and applied globally for all_languages, but all_languages never includes 'rust'. Fixes link errors like the ones below: -Wl,-rpath,$ORIGIN/../qemu-macros:/lib/rustlib/x86_64-unknown-= linux-gnu/lib" =3D note: some arguments are omitted. use `--verbose` to show all lin= ker arguments =3D note: rust-lld: error: undefined symbol: __ubsan_handle_type_mism= atch_v1 >>> referenced by event-loop-base.c:104 (../qemu_before_fix/e= vent-loop-base.c:104) >>> libevent-loop-base.a.p/event-loop-base.c.o:= (event_loop_base_class_init) >>> referenced by event-loop-base.c:105 (../qemu_before_fix/e= vent-loop-base.c:105) >>> libevent-loop-base.a.p/event-loop-base.c.o:= (event_loop_base_class_init) >>> referenced by event-loop-base.c:58 (../qemu_before_fix/ev= ent-loop-base.c:58) >>> libevent-loop-base.a.p/event-loop-base.c.o:= (event_loop_base_set_param) >>> referenced 11240 more times Signed-off-by: Brian Cain Reviewed-by: Pierrick Bouvier Link: https://lore.kernel.org/r/20260714021236.2361604-1-brian.cain@oss.qua= lcomm.com Signed-off-by: Paolo Bonzini --- meson.build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meson.build b/meson.build index 164328ded83..5f42bbf40c7 100644 --- a/meson.build +++ b/meson.build @@ -767,6 +767,9 @@ endif add_project_arguments(cc.get_supported_arguments(qemu_common_flags + qemu_= cflags + warn_flags), native: false, language: 'c') add_global_link_arguments(qemu_ldflags, native: false, language: all_langu= ages) +if have_rust + add_global_link_arguments(qemu_ldflags, native: false, language: 'rust') +endif =20 if 'cpp' in all_languages add_project_arguments(cxx.get_supported_arguments(qemu_common_flags + qe= mu_cxxflags), --=20 2.55.0 From nobody Sat Jul 25 08:30:32 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=1784706072; cv=none; d=zohomail.com; s=zohoarc; b=RclWzokB5mpbGr25oQzH/w47CbMMGWfMlLAjUXnvxcDQu79/tpzqUYhCpWbTTcyE07ZOJ367wXTup+jWk8wSTK33rciaAEekoj2eLlckVjDzQ+fFEfrOvVups4vynPiCXzeDbgJ6b5/Rso639oQ92WWsI3ku7mwSTgTSoKkJ+KU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784706072; h=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:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GIx8SGAxd2EVHX3PLDEtKIS3/cXh7/KX8IzpBchdZxY=; b=g1LiIPbzAaRfPhcnEHSQNOyGx3+xuukm7j42F1+5RjzSbHwJ6iQEG8YlOCkKBQwtFZklAqQ3eUtN2u9cYGhZ6GKnj7rSVwYoQ/huHyEbhSJVcF2NLN1mV6x+aWOdJBQtoLwuGQBcxheS1MIncNV9937iyEh7aLpZpBRvwjPfmkE= 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 1784706072402943.9241461340454; Wed, 22 Jul 2026 00:41:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmRYq-0005RS-F6; Wed, 22 Jul 2026 03:40:12 -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 1wmRYi-0005PV-Ff for qemu-devel@nongnu.org; Wed, 22 Jul 2026 03:40:04 -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 1wmRYg-0000Tk-OJ for qemu-devel@nongnu.org; Wed, 22 Jul 2026 03:40:04 -0400 Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-119-SLajVKm1M5ujsiwSrbpjCg-1; Wed, 22 Jul 2026 03:40:00 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-47f5a972b0eso5054169f8f.2 for ; Wed, 22 Jul 2026 00:40:00 -0700 (PDT) Received: from [192.168.10.48] ([151.49.94.110]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47f85c6e9a2sm3534191f8f.35.2026.07.22.00.39.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jul 2026 00:39:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1784706002; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GIx8SGAxd2EVHX3PLDEtKIS3/cXh7/KX8IzpBchdZxY=; b=ZmeV8skTBvZVVUGIt4r6r1PEyqbO+WKazF8qH6MjN57ykHzmpFtJx2KyripbO4x0jMF7oR okGNSHri5RpXTwuq1U4Y5nXQcvIC0Q7lrtNQYJoCQSdKxOrA0sYB6vt9jF5R8Gntqp+rHC cn/YfXKA3aKX7woDyb6MTB44E27ajoU= X-MC-Unique: SLajVKm1M5ujsiwSrbpjCg-1 X-Mimecast-MFC-AGG-ID: SLajVKm1M5ujsiwSrbpjCg_1784706000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1784705999; x=1785310799; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=GIx8SGAxd2EVHX3PLDEtKIS3/cXh7/KX8IzpBchdZxY=; b=N7ssuqbLgjtAHx81LtaQAdYujoi0qc2dMSzqB5ud3cUzfs2WBc6ZEQcl3WSHjVGwUV yXPBLLJ7JwC69s7DuMbu8KhMzcWACfqpnE3NdckABVNnv6AvcfGc0KV8pMjkvRmE/wOh 3RwdiyEt2Bs2Lac5TNcfocz5X2+YrMP84+bkZlkrdsNun2vXUeV9V2IEBCZaxFXMRGhu 6xBdtvLRqC92sz4vNoj1zHqL/PnJqYdbPHJA/X374vPMrE2EaT9uumlrOreQZbZiC9gA Wxh5Hv6o0yIi2a5zdUl/aK9vtwBipDIDpi4qmwJaAqjs8OZgP95MpwoDX2R6DtWToK5W r6rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784705999; x=1785310799; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=GIx8SGAxd2EVHX3PLDEtKIS3/cXh7/KX8IzpBchdZxY=; b=lBa85xlKkeeAiCQOCXootJAXtdREkHsHm1sTQ45sKbA55HLdih5TL3oe83AGlWhOse XoGjHZpIypaJFjziBbj05oteTUnKlMnE7i5t/Z1S2urxyJ2qV3t5GV+mTJ8BauSXFckW meXF+oO3i0hW08Lqdzb0F8vzg5zCfIGGTLPvfmCIs28F6iGriRq5hEKqOGgntUCl3Uau x7n6H+mreysGeuFVg2rI3yVOF8Y3zpMnZZFReTmFgPQ8pvT3OlFHMzTg92C3I7ZRJ5oY k7cUSjB9xvmcWNlzH7ToCeOTGp4iNqb/pZwAOgROJ63e0zRgDbfGZ8IqQsUKTfKBEMf+ M5og== X-Gm-Message-State: AOJu0YziKe6bTz5CKhkXi38s4wHiVYO1qtmOfOMWn5kk8wmMKH4hI7dO YWOMrv2Pzq4oJkzJUD2G3IXLvqTIl+lCaIZo/QH7vzf2aqMWSzlStMipTY9z8mszUod2zZys9Bo 9CbfXKLnWSlFelG3X8q0lZUmARxcQCQ8fcMyLpSyCguHdf5tXrRbEJ3Db0aH3XuxDVb887DRA95 Gjl/iNjb94182khX6XNrtct1IXVpGWHyC8vBqzOCIb X-Gm-Gg: AR+sD13HHXPJC1o8b96lwZCr/KZr2oHZzAljb7YPeWhpH4fVE8W85YHoRynM5O7NPpR X/9cCEFcWzbWB+LITaM2u9aZjlLLbvuPIIydeCbZkkyAj8JVk1DKoI/MkJ29Ocw7fIG6r6g6vSl F9r/nzVdMJSvIS3atyqjyJAYW9EQS+/rAM+N3Cv8DiBO0ehMBTa6/6+8gSgRJWkk2QTP9/n+Rc6 sTdTZkha7FXvLkXa4gAyK9NgOHlD9xpRmQ6548fVxaFqtX21aXWwEDC16jppjyXK7HrZxiteIad OPlWXOQnYjby/WBC5HTqzEMQ/fTo97Y2DV1Px5NPhUhwuHUbdvSlugVDpXAqYXLsuFXUxL8WOEK dTfjGisnYNDNF2yAlQJ/pL/ArsZOM5HUcH86Q/PsgPuxbWqJpcv3nydhtSjG/x1xQF35JGjfohS 5B6U1R X-Received: by 2002:a05:6000:1867:b0:474:18d9:8371 with SMTP id ffacd0b85a97d-47f6232f892mr28676546f8f.28.1784705999580; Wed, 22 Jul 2026 00:39:59 -0700 (PDT) X-Received: by 2002:a05:6000:1867:b0:474:18d9:8371 with SMTP id ffacd0b85a97d-47f6232f892mr28676496f8f.28.1784705999079; Wed, 22 Jul 2026 00:39:59 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Andrey Polivoda , Richard Henderson Subject: [PULL 3/5] target/i386: helper_sysret(): Check that RCX contains a canonical address when emulating an Intel CPU Date: Wed, 22 Jul 2026 09:39:41 +0200 Message-ID: <20260722073943.396872-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260722073943.396872-1-pbonzini@redhat.com> References: <20260722073943.396872-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: permerror client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H2=-0.01, SPF_HELO_PASS=-0.001, T_SPF_PERMERROR=0.01 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: 1784706073049158500 Content-Type: text/plain; charset="utf-8" From: Andrey Polivoda Intel and AMD CPUs implement SYSRETQ instruction differently. One of these differences is whether a canonicality check of the address that will be loaded to RIP is performed: Intel CPUs do this check, AMD CPUs don'= t. Currently, QEMU does not perform this check when emulating Intel CPUs. This patch corrects this by implementing the canonlicality check on a new R= IP value from RCX and performing it only when emulating Intel CPUs. Flags and segment registers' caches are updated only after checking the new= RIP value to ensure that CPU state is not modified in case the #GP(0) exception is raised due to the check failure. Cc: qemu-devel@nongnu.org Cc: Paolo Bonzini Cc: Richard Henderson Fixes: 14ce26e75513 ("x86_64 target support") Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3223 Signed-off-by: Andrey Polivoda Link: https://lore.kernel.org/r/20260608091815.31303-1-apolivodaa433@gmail.= com Signed-off-by: Paolo Bonzini --- target/i386/tcg/seg_helper.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/target/i386/tcg/seg_helper.c b/target/i386/tcg/seg_helper.c index 58aac720119..d5c174b7fd7 100644 --- a/target/i386/tcg/seg_helper.c +++ b/target/i386/tcg/seg_helper.c @@ -1096,17 +1096,22 @@ void helper_sysret(CPUX86State *env, int dflag) selector =3D (env->star >> 48) & 0xffff; #ifdef TARGET_X86_64 if (env->hflags & HF_LMA_MASK) { - cpu_load_eflags(env, (uint32_t)(env->regs[11]), TF_MASK | AC_MASK - | ID_MASK | IF_MASK | IOPL_MASK | VM_MASK | RF_MAS= K | - NT_MASK); if (dflag =3D=3D 2) { + uint64_t new_rip =3D env->regs[R_ECX]; + if (IS_INTEL_CPU(env)) { + int shift =3D (get_pg_mode(env) & PG_MODE_LA57) ? 56 : 47; + int64_t sext =3D (int64_t)new_rip >> shift; + if (sext !=3D 0 && sext !=3D -1) { + raise_exception_err_ra(env, EXCP0D_GPF, 0, GETPC()); + } + } cpu_x86_load_seg_cache(env, R_CS, (selector + 16) | 3, 0, 0xffffffff, DESC_G_MASK | DESC_P_MASK | DESC_S_MASK | (3 << DESC_DPL_SHIFT) | DESC_CS_MASK | DESC_R_MASK | DESC_A_MAS= K | DESC_L_MASK); - env->eip =3D env->regs[R_ECX]; + env->eip =3D new_rip; } else { cpu_x86_load_seg_cache(env, R_CS, selector | 3, 0, 0xffffffff, @@ -1120,6 +1125,10 @@ void helper_sysret(CPUX86State *env, int dflag) DESC_G_MASK | DESC_B_MASK | DESC_P_MASK | DESC_S_MASK | (3 << DESC_DPL_SHIFT) | DESC_W_MASK | DESC_A_MASK); + + cpu_load_eflags(env, (uint32_t)(env->regs[11]), TF_MASK | AC_MASK + | ID_MASK | IF_MASK | IOPL_MASK | VM_MASK | RF_MAS= K | + NT_MASK); } else #endif { --=20 2.55.0 From nobody Sat Jul 25 08:30:32 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=1784706046; cv=none; d=zohomail.com; s=zohoarc; b=T4jT1xXqGXAVjKi5D5huMmd18Ngjb7IgfmvPE65xEvdjZbs+Tsc9cMmdCis+q4tpica7E6n3Y/KQ+B+TVraW35RGF7F5MnaZVNM/TAPwE74epyIlExGZHfFeP42nNKVYdPdc2IqhVxTBouDEkRPz1Tb7KeKPGbHpdpQM+0keH6g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784706046; h=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:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SUjOgvWag5AckSEQEnJFl8yvK03F4OrpZff1DyUEVGY=; b=n7CST144gIwfra3KUX5HYj4bky0PkGrsuFI6Lcy5frhF50mS43c5wycfZRlo/ZVJoG1KpoJ9UZ1XKFcErq2DtGWduXehWiLwT+8qboch/aL/ydGmdzabi0A0AOWe+Q8JS1BTDfgnHROAUxTcmlPBJNq36dHvO2IurvR+hG7Ai3M= 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 1784706046343238.64195147777593; Wed, 22 Jul 2026 00:40:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmRZ7-0005jN-6H; Wed, 22 Jul 2026 03:40: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 1wmRYn-0005QS-U1 for qemu-devel@nongnu.org; Wed, 22 Jul 2026 03:40:10 -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 1wmRYm-0000g9-0v for qemu-devel@nongnu.org; Wed, 22 Jul 2026 03:40:09 -0400 Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-597-jEb4IYgSPBGMWNiMB0exmw-1; Wed, 22 Jul 2026 03:40:05 -0400 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-490a767c7dcso96688115e9.2 for ; Wed, 22 Jul 2026 00:40:05 -0700 (PDT) Received: from [192.168.10.48] ([151.49.94.110]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4956b030a64sm32609385e9.3.2026.07.22.00.40.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jul 2026 00:40:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1784706007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SUjOgvWag5AckSEQEnJFl8yvK03F4OrpZff1DyUEVGY=; b=OOnaEUU/UePZcdmupGT69uIqrdJ7MEodA7WLKe9PwKOT1rvLPGnJIbxyfv+jkI4UCbiMKj YMAJKIXZ/ValcVYXXfhwK3sc2HUCqhufkVtZZ/VEGhAFJkHGbstClU+To0umUCDderzrly A1Qk3iCwiP2VF7bMA8jDv8d6ZZP01d8= X-MC-Unique: jEb4IYgSPBGMWNiMB0exmw-1 X-Mimecast-MFC-AGG-ID: jEb4IYgSPBGMWNiMB0exmw_1784706005 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1784706005; x=1785310805; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=SUjOgvWag5AckSEQEnJFl8yvK03F4OrpZff1DyUEVGY=; b=Gws0voPSK0iH5nJSRrbB0saQOkdC8NZLY0wfMVaAsvflL9Btez4gVl4vV76fwlXDNa Cxb5BOOh73mbgIq0GhEhmdAe3TqaJjuxrIooYuVjccVpj8AQaDS1Jran2TDwglr6ZT7X USne3BTawBN+ykAvUpvOWM2tn3bax93oAyRPKoDukmONlh1wFMqowoR89Za3ZnVB4fa/ rfXYM1PzTMPA6cXpnQb1N27SQWcVa20wJz1iY+fHRbBfBEh2nd4waCTMMLumFzxId32a tTwekKMD1qd0vudk29+zaeLGS0XQhJsmIa6O8D+seHqXECMnWQVRewW0CwMAJ3qGIuvj x7AQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784706005; x=1785310805; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=SUjOgvWag5AckSEQEnJFl8yvK03F4OrpZff1DyUEVGY=; b=E8M7ILoQC1fg5zZ9oT34spLZNcF4Sk+KXXK+CK4RS+M0VpKIXrdOrnTYLbI+awzqVe rZnpc6UwjibujgNwbCYXMQ6EWhBMDnbzHdP2utwUrurr8nTcsIT+28Hr3aWg/y746/+D pDep7DZ3/qO2lp+LYnZOJW8UBDjkoAWJCc5Xd2+0sjfpHL4RizQ5jwnhwDvLwuH2l55+ t/Y0RMJ3AqFUv8/kOqIylTh7GkA6I1d8I8tRawkKnKo0V/DQi0ToNu+pNlLbZSJXqdAD C2dO6Ry0Mfob5YTjCJxuhc7kZCb/nIdtqLRCaleLtr140dVh7lyNnodLMOiqj/EZtcSa H04Q== X-Gm-Message-State: AOJu0YwMRvMaCAqtJmNg8xmugHVi8dU/vj3MTObzM2T9bs4LwdLK5WMb 8gQswXsM2IbN0toMEingDTMfD8AZg5D1rjyACS4HAk4lmvzGmzREvWGaeIZ1K2SZ72peiykgmi1 0Jq3u8aS7exYpYFiPH5iE3lwxIoQnWugFkI1/8ryf+GwWRSZ4tcgoU83ivjhCPBdktzgqnL+4qC bvllCKqBWv9Z3avVgBNPY5BnGC9fat9p0pks78X2QB X-Gm-Gg: AR+sD11HWdroWwS1CSw9AgwcjDRoe36cBCygNlArfMClvsATxkyia8ZDgKvASUX5jN2 X09ztgmqcBL+xuUSjlPlEzz2xvPiH1j2tQFPp44zkMeykmp08PG1AX/YpTZ7/vMhkA6OND/18/U uzIhVM1Tw0tZVPK8GYLk4nuRuWlzbCAm1iaIcIt1mQySJQ36WPCmkaCdc7g3HyxXD0a6U0vXR4W +r05NrhNuHAU0lZLzDHyg39n2xvwT4owFjJKDn0w6GOiYcvPVK5dtBXSowhzyyjU/XvEKa7hIYm viMdKsLO8wbBo5b6Lo0xLQMbibPxz9YQ0eaNFy9szub4KVxXrMX9/10kRepOBA0BboHGsUfOATg xFMbE9TIUPr4d+VMMciNGoUneiLPZ3W1FN75i3GQjRPXAFBsY64CBS/03hXGxShABKyFrQNM4Ez KM0TzZ X-Received: by 2002:a05:600c:c178:b0:493:e46e:157d with SMTP id 5b1f17b1804b1-4954a40481dmr201488235e9.19.1784706004673; Wed, 22 Jul 2026 00:40:04 -0700 (PDT) X-Received: by 2002:a05:600c:c178:b0:493:e46e:157d with SMTP id 5b1f17b1804b1-4954a40481dmr201487875e9.19.1784706004188; Wed, 22 Jul 2026 00:40:04 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland Subject: [PULL 4/5] scsi-disk: protect against guest sending truncated data for MODE SELECT commands Date: Wed, 22 Jul 2026 09:39:42 +0200 Message-ID: <20260722073943.396872-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260722073943.396872-1-pbonzini@redhat.com> References: <20260722073943.396872-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: permerror client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H2=-0.01, SPF_HELO_PASS=-0.001, T_SPF_PERMERROR=0.01 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: 1784706047994158500 Content-Type: text/plain; charset="utf-8" scsi-disk has a MODE SELECT path where a truncated mode page can be allowed by a compatibility quirk, but the parser continues to use the page's declared length rather than the number of bytes actually remaining in the request buffer. This means that scsi_disk_check_mode_select() and scsi_disk_apply_mode_select() can read beyond the valid part of inbuf[], potentially up to the emulated age's length. Clamping page_len (the size of the page) to len (whatever the guest provided) ensures that scsi_disk_check_mode_select() and scsi_disk_apply_mode_select() do not access anything beyond bounds; however, this requires care to accept and handle truncated input in those two functions. In particular, until scsi_disk_check_mode_select()'s first call to mode_sense_page() the number of bytes to be cleared in mode_current[] is unknown, so zero it completely. And for everything else, be conservative and use len when providing inputs to other functions; but at the same time, ensure all accesses to inbuf[] are bound by expected_len. Note that pages longer than the emulated one are still rejected. Fixes: 389e18eb9aa4 ("scsi-disk: add SCSI_DISK_QUIRK_MODE_PAGE_TRUNCATED qu= irk for Macintosh") Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/4051 Tested-by: Mark Cave-Ayland Signed-off-by: Paolo Bonzini --- hw/scsi/scsi-disk.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index 5ba5b46c4f4..85d0bd0b811 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -1524,7 +1524,7 @@ static void scsi_disk_emulate_read_data(SCSIRequest *= req) static int scsi_disk_check_mode_select(SCSIDiskState *s, int page, uint8_t *inbuf, int inlen) { - uint8_t mode_current[SCSI_MAX_MODE_LEN]; + uint8_t mode_current[SCSI_MAX_MODE_LEN] =3D { 0 }; uint8_t mode_changeable[SCSI_MAX_MODE_LEN]; uint8_t *p; int len, expected_len, changeable_len, i; @@ -1543,21 +1543,21 @@ static int scsi_disk_check_mode_select(SCSIDiskStat= e *s, int page, } =20 p =3D mode_current; - memset(mode_current, 0, inlen + 2); len =3D mode_sense_page(s, page, &p, 0); - if (len < 0 || len !=3D expected_len) { + /* The guest may send a truncated page, but not a longer one. */ + if (len < 0 || expected_len > len) { return -1; } =20 p =3D mode_changeable; - memset(mode_changeable, 0, inlen + 2); + memset(mode_changeable, 0, len); changeable_len =3D mode_sense_page(s, page, &p, 1); assert(changeable_len =3D=3D len); =20 /* Check that unchangeable bits are the same as what MODE SENSE * would return. */ - for (i =3D 2; i < len; i++) { + for (i =3D 2; i < expected_len; i++) { if (((mode_current[i] ^ inbuf[i - 2]) & ~mode_changeable[i]) !=3D = 0) { return -1; } @@ -1565,11 +1565,15 @@ static int scsi_disk_check_mode_select(SCSIDiskStat= e *s, int page, return 0; } =20 -static void scsi_disk_apply_mode_select(SCSIDiskState *s, int page, uint8_= t *p) +/* Note p may be truncated, so check any bytes you access against len. */ +static void scsi_disk_apply_mode_select(SCSIDiskState *s, int page, + uint8_t *p, int len) { switch (page) { case MODE_PAGE_CACHING: - blk_set_enable_write_cache(s->qdev.conf.blk, (p[0] & 4) !=3D 0); + if (len > 0) { + blk_set_enable_write_cache(s->qdev.conf.blk, (p[0] & 4) !=3D 0= ); + } break; =20 default: @@ -1612,6 +1616,7 @@ static int mode_select_pages(SCSIDiskReq *r, uint8_t = *p, int len, bool change) goto invalid_param_len; } trace_scsi_disk_mode_select_page_truncated(page, page_len, len= ); + page_len =3D len; } =20 if (!change) { @@ -1619,7 +1624,7 @@ static int mode_select_pages(SCSIDiskReq *r, uint8_t = *p, int len, bool change) goto invalid_param; } } else { - scsi_disk_apply_mode_select(s, page, p); + scsi_disk_apply_mode_select(s, page, p, page_len); } =20 p +=3D page_len; --=20 2.55.0 From nobody Sat Jul 25 08:30:32 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=1784706074; cv=none; d=zohomail.com; s=zohoarc; b=FJkuVLP1Bgl1TZaFNiut4a4RKnh8UVg+Z4u8Al/97m/e6cPBDy8zqCUkLjrcOvzv9znByGgk26l9vOCG+ekxc6DXLOl/ltAphoj3A7YPT59IsG79TZR+232Fp8pMJmw3DQMx8WbQc9O3EVXalpgFwNHpR8/fGept/3iMGbe3NzU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784706074; 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:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Pwr0pISNDb4yeSQL7FH7IcMqN/+xkS+lxwmUQY3lcXo=; b=jd+GorrkeFI43/9q0wV6TqujbRU+gerQmycOU9G/Py6+LxQ+7pG06IoAfRB2FSUEQz+elFksUlKWbcI3PnXoW/Z2nxIBSQAkOg/259DlQVK0Q+xLmOnDMUMuRYcgneOZ/SlPa/OUnOUeSDls8dPfsyBe1/hKxvImVqJGFRQIjUE= 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 1784706074146842.4704831299072; Wed, 22 Jul 2026 00:41:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmRZ9-0005kx-3J; Wed, 22 Jul 2026 03:40:32 -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 1wmRYq-0005St-OA for qemu-devel@nongnu.org; Wed, 22 Jul 2026 03:40:13 -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 1wmRYp-0000gN-0o for qemu-devel@nongnu.org; Wed, 22 Jul 2026 03:40:12 -0400 Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-197-BWBG4z2CMQKV-ld8QoayWg-1; Wed, 22 Jul 2026 03:40:08 -0400 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-49560dddaa4so14465595e9.3 for ; Wed, 22 Jul 2026 00:40:08 -0700 (PDT) Received: from [192.168.10.48] ([151.49.94.110]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4956b01a758sm40274325e9.4.2026.07.22.00.40.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jul 2026 00:40:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1784706010; 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=Pwr0pISNDb4yeSQL7FH7IcMqN/+xkS+lxwmUQY3lcXo=; b=eCMEi40z+HJkV4uD4ILWgmA2uHL2NULyZgYRukPsV7BfWgIvM+hFG5S0CxWJ1hrGSIB8gq /KZ1KW20KKQD+uye9i3Vp1xe6ciEZG3iNpBCoNTaeR2AtYZ7IG+59j+w1iwo0QvHz+hk2r EDRO404D6wO6zDoiK9C4GNwSQOYq1IU= X-MC-Unique: BWBG4z2CMQKV-ld8QoayWg-1 X-Mimecast-MFC-AGG-ID: BWBG4z2CMQKV-ld8QoayWg_1784706007 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1784706007; x=1785310807; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=Pwr0pISNDb4yeSQL7FH7IcMqN/+xkS+lxwmUQY3lcXo=; b=bFgb+tTNQEnoRBttLAxCFgtl5gDu5sAQqy654R8LcYDeEj9R+80FD3lEcZF0Sd8pmF xpd0FeROrvQ80XygYUeAChD0yVrJrl4UBscBZt5J6HrWLtCkXf0+RtDlmCT+NgyhSwco iFOjGj9OgmiwNMHvB0g2nl9WTNgwH28IjTrMU8uH2ATUBDAORDR+6TdvgnoM8TqIrFOX 07y5BJe0tkqbvM4McHSPB+KeOUhSAT8b3IFueBeWTsy64e7PWdPAzv4c8Ic+KfrLU85q lS00TYqIFTJxL3bJ2A8DIuoe5TJnLxLXZi9D36nBuzi2prqXf5LVJUNrzcVpbuwd1un0 5Crg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784706007; x=1785310807; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Pwr0pISNDb4yeSQL7FH7IcMqN/+xkS+lxwmUQY3lcXo=; b=KcQtbDEBW08R6T9wLe+3rWYHv1AogK7I29rdTZFZ9WUMRfPSPUEUOpXXIx5If1rZUS YHTmli2j8CiZw/UcClE0dL9n72m8qpHNStajZRx9lXCszIU1WMecLFd1pP2Ai8h3iOcf csv4OltGd9vxa1jmeJuox6sIABcxMbHNyYCZuqsuKfo4dJ0Kzos1v8uEpnW+0CC3daM3 /ML+OD1okY8CUd1rPHTu7eLH0WapfmNB+YmDxOClmMtHNyE7B0CGEdYXorHHZFTHLE+U BDqQyMOyNZRjxAnrqVtGSWsbO5W2PQH04l1qvo3JB2gmvlRLm11cc1akCdEBVNikG25F oAaw== X-Gm-Message-State: AOJu0YwtDleUtXQ49R+JwzHPqq+P2cOZZy35pYMNtu7ksxklnxOy6M2E HdwbebWMlEkxuvVXiA7OfaFoatuaNAQPCnrHxDa5BvaUwZ6QMUGx1Zm+UdD454xsyJYL+BZDoks H8PB/33OqBBcnRopyd9La/TKNdKY3YbZ2ncG8HdFC6W23JMRQcXRVkMXdSFD2LZDbCDRWRVxkQM swYOcpR6Ct+qctmr46aKkzRPUvIkWjBSzoLCArjARw X-Gm-Gg: AR+sD10IMOQzWh73HF0zvFQ+urwxQDouZlKvaxNYBFS0aangImarS8qKaibotoCi0QT Y2zStXGSbcxUaUGRXR4XYdw2JpUh9+ZrqKH+UMYkOTgfa0Y4V9i7VKzO63eRFr0q5uuNBkIVdsh M95EHYRjmfXKYIzGBQPbE0I2QOO4c+dDjHCO0v+xMowMzIxIKfMcJdyAeU8fS6Stbd0kko14+5+ hcAB3sYvk4rWHMSRErZQLAl3WY2RkyQly3HFNRKhQ4beYGYQUqpValK1END6wv/eB6PD2N7M4Xa IJubfZWhEE1oKPPdP285V6NukRbDrf2HG8aAxaeT3+n85k1RWIO2lJ8/6pff2N+3xuhrS4KnXBb JP4ZfzO0dpaTJgDKKk3R1Q2pCTSMdMQPRAOgFr9A8sCMe/jODCso3xDBi1M1IDKxTgxaMspjaf9 W5pWqP X-Received: by 2002:a05:600c:3b0e:b0:495:6bc9:62b0 with SMTP id 5b1f17b1804b1-4956bf8631bmr11907515e9.17.1784706007309; Wed, 22 Jul 2026 00:40:07 -0700 (PDT) X-Received: by 2002:a05:600c:3b0e:b0:495:6bc9:62b0 with SMTP id 5b1f17b1804b1-4956bf8631bmr11907135e9.17.1784706006889; Wed, 22 Jul 2026 00:40:06 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 5/5] scsi-disk: fix off by one in assertion Date: Wed, 22 Jul 2026 09:39:43 +0200 Message-ID: <20260722073943.396872-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260722073943.396872-1-pbonzini@redhat.com> References: <20260722073943.396872-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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: permerror client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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_H2=-0.01, SPF_HELO_PASS=-0.001, T_SPF_PERMERROR=0.01 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: 1784706075053158500 When documenting the invariant that mode pages need to fit the smallest output buffer of all callers (which is SCSI_MAX_MODE_LEN), the expression used by the assertion was incorrect. Even though SCSI_MAX_MODE_LEN is indeed 256, using "length < 256" had two issues: 1) it used the wrong operator, since "length < ..." is more related to having room for extra data; 2) it missed the extra two bytes for page number and length. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Paolo Bonzini --- hw/scsi/scsi-disk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index 85d0bd0b811..1b0cce128c5 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -1321,7 +1321,7 @@ static int mode_sense_page(SCSIDiskState *s, int page= , uint8_t **p_outbuf, return -1; } =20 - assert(length < 256); + assert(length + 2 <=3D SCSI_MAX_MODE_LEN); (*p_outbuf)[0] =3D page; (*p_outbuf)[1] =3D length; *p_outbuf +=3D length + 2; --=20 2.55.0