From nobody Sat Oct 25 11:05:04 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 1521221273912446.86533105112005; Fri, 16 Mar 2018 10:27:53 -0700 (PDT) Received: from localhost ([::1]:58713 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ewt8u-0007rE-E8 for importer@patchew.org; Fri, 16 Mar 2018 13:27:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37557) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ewt87-0007Wz-Gb for qemu-devel@nongnu.org; Fri, 16 Mar 2018 13:27:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ewt83-0001Io-HW for qemu-devel@nongnu.org; Fri, 16 Mar 2018 13:26:59 -0400 Received: from mail-pg0-x241.google.com ([2607:f8b0:400e:c05::241]:34399) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ewt83-0001IA-Aq for qemu-devel@nongnu.org; Fri, 16 Mar 2018 13:26:55 -0400 Received: by mail-pg0-x241.google.com with SMTP id m15so4330979pgc.1 for ; Fri, 16 Mar 2018 10:26:55 -0700 (PDT) Received: from monty.com ([12.206.222.5]) by smtp.gmail.com with ESMTPSA id p24sm17543984pfk.102.2018.03.16.10.26.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 16 Mar 2018 10:26:53 -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:mime-version :content-transfer-encoding; bh=w3AjRcsYaiq2Grxwq2V1Hz+xAVV2lLPYhv+jAto+BpE=; b=VhHBF4C/osFpAZReTqGdUJ0pyJXNJUAg2WPno1mf0WtM9WEDKIvfJX/uyGw3caF5lQ eDz8Y7ZWTSNsgTe6MnAbUeZ4shQgbzxUpeeMvATmNgpPwTx9vlggaKRC6zFx8lNDENIq jVaaRmGjLfbFLiMpRKfe0tFzLUIHiAasxwg5VjMFhDPEppD531AV+wpXWKIhcH79WDCZ 5RYRgysCbrizeWky1f4HmsuvtQaRBiTw9s4qBthAS0DpJeKjotLuvkayOdaTOnCZ/m0j 7P+uO6m2J1rF9Q1R091+R28oWoFRX7Av7FwWSIfc0rTjK5U2/nydoBUyV1yvMdiA1ROL k9NA== 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:mime-version :content-transfer-encoding; bh=w3AjRcsYaiq2Grxwq2V1Hz+xAVV2lLPYhv+jAto+BpE=; b=CPXwprs3K0sCirqeXpGRWsKOCk+iFpLT4/MNK/u76aeM5n3NQwe4xbVS4WsAexHWuS Npmc+9JVI1GYiS676nRSVjPnU/MnwYB3y7puk3Ozr3qmj8Sfl/EeJ8qNGJMsQ5MP+Jyb gPVgIGAUc7mzhARI4fWOCWnoJDlxoW8T/gDl6EVlFQ1kYxC1Ni3O0tFMKdsfmgsNi7qh iWc1QN4hbJvdFss1UBQMTlWjpIIA8s3OWSKkdCfWNMlraPAbaas7nZKR5vL61G61iZiv dFh4B6pPYqaseu81ANhXl/jIhoooLO9ETzEAgB2xDCiYGiUDTwRmJmEtdWB/MJydUEZu 5Okw== X-Gm-Message-State: AElRT7EFioAVzgys73YgSYbofK2AX1uyzO17bRZKz62str5OXgh2gIWK ylAXVmMI69a6f/PRf2KYPRFDfbZxUlQ= X-Google-Smtp-Source: AG47ELtdS0eEl9CwneJQOLqte3YHjeBxOmC4Mz3xk/UlqPMhxPSWynXJl09aZNYXoOUEcfv35LL4zw== X-Received: by 10.99.147.72 with SMTP id w8mr2118320pgm.208.1521221214214; Fri, 16 Mar 2018 10:26:54 -0700 (PDT) From: Michael Clark To: qemu-devel@nongnu.org Date: Fri, 16 Mar 2018 10:26:11 -0700 Message-Id: <1521221171-47213-1-git-send-email-mjc@sifive.com> X-Mailer: git-send-email 2.7.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c05::241 Subject: [Qemu-devel] [PATCH v3] RISC-V: Fix riscv_isa_string memory size bug 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: Peter Maydell , Michael Clark , Palmer Dabbelt , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= 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 This version uses a constant size memory buffer sized for the maximum possible ISA string length. It also uses g_new instead of g_new0, uses more efficient logic to append extensions and adds manual zero termination of the string. Cc: Palmer Dabbelt Cc: Peter Maydell Cc: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Michael Clark Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/riscv/cpu.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 4851890..298abbd 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -391,16 +391,16 @@ static const TypeInfo riscv_cpu_type_info =3D { char *riscv_isa_string(RISCVCPU *cpu) { int i; - size_t maxlen =3D 5 + ctz32(cpu->env.misa); - char *isa_string =3D g_new0(char, maxlen); - snprintf(isa_string, maxlen, "rv%d", TARGET_LONG_BITS); + const size_t maxlen =3D sizeof("rv128") + sizeof(riscv_exts) + 1; + char *isa_str =3D g_new(char, maxlen); + char *p =3D isa_str + snprintf(isa_str, maxlen, "rv%d", TARGET_LONG_BI= TS); for (i =3D 0; i < sizeof(riscv_exts); i++) { if (cpu->env.misa & RV(riscv_exts[i])) { - isa_string[strlen(isa_string)] =3D riscv_exts[i] - 'A' + 'a'; - + *p++ =3D riscv_exts[i] - 'A' + 'a'; } } - return isa_string; + *p =3D '\0'; + return isa_str; } =20 void riscv_cpu_list(FILE *f, fprintf_function cpu_fprintf) --=20 2.7.0