From nobody Wed Oct 29 22:59:18 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1525860910311591.6746314653753; Wed, 9 May 2018 03:15:10 -0700 (PDT) Received: from localhost ([::1]:55497 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGM7p-0004uG-Di for importer@patchew.org; Wed, 09 May 2018 06:15:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43298) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGM69-0003Y8-F7 for qemu-devel@nongnu.org; Wed, 09 May 2018 06:13:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fGM67-0006rV-RY for qemu-devel@nongnu.org; Wed, 09 May 2018 06:13:25 -0400 Received: from mail-pf0-x243.google.com ([2607:f8b0:400e:c00::243]:43032) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fGM67-0006qo-Kx for qemu-devel@nongnu.org; Wed, 09 May 2018 06:13:23 -0400 Received: by mail-pf0-x243.google.com with SMTP id j20so11083311pff.10 for ; Wed, 09 May 2018 03:13:23 -0700 (PDT) Received: from localhost.localdomain (122-58-167-38-fibre.bb.spark.co.nz. [122.58.167.38]) by smtp.gmail.com with ESMTPSA id q22sm20610396pfk.4.2018.05.09.03.13.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 09 May 2018 03:13:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Ffc6sMIUHzulrCCnCg1SEbhj+qKmFDivw3uGFoH8RVQ=; b=GqYku2U3K+QFoPq126G2AZNFmYdfbT8EPkpBGmOPUxCN4uNDdjxR14jaj4yeFPUpHt Zv9pCD2D9+iUob6DVY0VjwoMZ1TzjMwdWGWFpBUFSvcfo8pbV5berznoo/uTRK0IU9Fq vbxEH1nOZwbFa3TC2d+GOdGRUgVMumoVo+ghezUZZMDxHgfVnby52muk3ahb/bmYWhMm GT5zkfPI1RkJaUXr0OmUzo2Xkn3UhLOM7jdDN/HOwW6DE25Fxu8aoSU1IziK/WM2Wz7k K8golsJcZteIhrsHW/ED7ja6GlJ9wZ5JCPa19kMmFjtUU8CwX92OCNATeNj3908RvPZh omIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Ffc6sMIUHzulrCCnCg1SEbhj+qKmFDivw3uGFoH8RVQ=; b=X9zM0L+k9U49KyRSH3OgtKgreCmnye2gLwSbwWV61CPmMQ++hGtHBFUIuGoLg6wApg IkrgbaNiUq6Rt5SV6OJEDoqDITEKHL+91xURMf3HdFjeuYqvpa/Gtym0MqRqjgnltvzz mFqmK3YPi+NsWv2rVuA8mNCOULzEqEwOeK81uMkDRoRgsycAc+A5hsu4wrmonYGTn6Sq wu7cJHovp8iTZzvSOiJ9I8t88hkhBzqA0G5xQrG5jVZpA8p2DDtiES9KMyLoNIGtz5xj TR6QqLkktPa0p516RbpNLzWE3PCOfefxl6NTXpk4KyvHvXFeFj4ZzNn4kJsZ9CujiaUh NCxQ== X-Gm-Message-State: ALQs6tA0Sd6ZYimX5NuhyWwKcxOWWgKDfBIQyV/JzV3AJwVAEuQFpP0S L4/Ot4y0oV9jVadOcmKfoLCRl5QuhoY= X-Google-Smtp-Source: AB8JxZoGvlu8e7boP5fn7NM87Qp+FAxBvUeedLwp3fgDGEkT/wx0I5prSufkv+vObXRQP9TRSlUU/w== X-Received: by 2002:a65:5843:: with SMTP id s3-v6mr5072499pgr.323.1525860802649; Wed, 09 May 2018 03:13:22 -0700 (PDT) From: Michael Clark To: qemu-devel@nongnu.org Date: Wed, 9 May 2018 22:11:48 +1200 Message-Id: <1525860713-3476-2-git-send-email-mjc@sifive.com> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1525860713-3476-1-git-send-email-mjc@sifive.com> References: <1525860713-3476-1-git-send-email-mjc@sifive.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c00::243 Subject: [Qemu-devel] [PATCH v1 1/6] target/riscv: avoid integer overflow in next_page PC check X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sagar Karandikar , Bastian Koppelmann , Palmer Dabbelt , "Emilio G. Cota" , patches@groups.riscv.org, Michael Clark Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: "Emilio G. Cota" If the PC is in the last page of the address space, next_page_start overflows to 0. Fix it. Reported-by: Richard Henderson Suggested-by: Richard Henderson Reviewed-by: Richard Henderson Reviewed-by: Michael Clark Acked-by: Bastian Koppelmann Cc: Michael Clark Cc: Palmer Dabbelt Cc: Sagar Karandikar Cc: Bastian Koppelmann Signed-off-by: Emilio G. Cota --- target/riscv/translate.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/riscv/translate.c b/target/riscv/translate.c index c0e6a044d383..a98033ca77ca 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -1850,11 +1850,11 @@ void gen_intermediate_code(CPUState *cs, Translatio= nBlock *tb) CPURISCVState *env =3D cs->env_ptr; DisasContext ctx; target_ulong pc_start; - target_ulong next_page_start; + target_ulong page_start; int num_insns; int max_insns; pc_start =3D tb->pc; - next_page_start =3D (pc_start & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE; + page_start =3D pc_start & TARGET_PAGE_MASK; ctx.pc =3D pc_start; =20 /* once we have GDB, the rest of the translate.c implementation should= be @@ -1904,7 +1904,7 @@ void gen_intermediate_code(CPUState *cs, TranslationB= lock *tb) if (cs->singlestep_enabled) { break; } - if (ctx.pc >=3D next_page_start) { + if (ctx.pc - page_start >=3D TARGET_PAGE_SIZE) { break; } if (tcg_op_buf_full()) { --=20 2.7.0