From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70055.outbound.protection.outlook.com [40.107.7.55]) by sourceware.org (Postfix) with ESMTPS id 57ADE3858C54 for ; Wed, 27 Apr 2022 10:08:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 57ADE3858C54 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=gGmmNq/UX/R4cNAlwajxJ6yGwDGurzWeEZhmi7VLkmRE+Rn0OgAAlevdyUXFe9iGfyhABhiL8Fv1YVk6ErYFjE3jKiUCfkEE7VML2EvgnyP7+/qAmz8XdvQYH3rHSjf+b4rFNmXU2uSXHXRwR6OP74TmEIKGv9AX1z8X05e7oyTiqixjeaFJJwPyvZQsthIl0Ns+U/O+NaLg0MFMUqlKoEdqelC9GbzlH5pnIRiqD/oA2yWRwI8VX9K21BqfsnUEIAlV3w941VqgM6MGWf0m4mVVAy/3gCEsPxahG/T+7OurLq3X+Cdwz4IwuNfO1vEzEnqYgi+9bzh0OMxO6YMpHg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=R90ES7T78Yjh9MR2W9boUvgCet6t654yetOxZmQAZho=; b=Jcb0OkCfFtsvwoi/0voKVIk7h5WLkJtOFCI8J11HyFglljVW1mNXzlxh+1wQ0/0zls07/qv1oTZbTAKkC9PxhYLNVN1QbpDxkYm9V+wPTxa4xHPWq/x5fUcwhp6yJ+eauMUQPQtlZWqqfclEhLburmNLm6EUFEPWm2dYz+ZVeDlYWUlFy6pa1T7Zyx/iIrckHEyf8u5hR15rdErpTpA49aM7M0GKg4BL17trr21rBgPF2eVqWvPu5DynhE0WXOrYByc5djvJoj9/TCQ+oHWgX0zcotcdSpVdF5jdpBJLXFvx410jQRB7hYgMxtq5z6KC13dNI+IZz36W0W5RVUtVHw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1, 1, smtp.mailfrom=arm.com] dmarc=[1, 1, header.from=arm.com]) Received: from AM6P195CA0037.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::14) by DB6PR08MB2936.eurprd08.prod.outlook.com (2603:10a6:6:25::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14; Wed, 27 Apr 2022 10:08:10 +0000 Received: from AM5EUR03FT047.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:87:cafe::e1) by AM6P195CA0037.outlook.office365.com (2603:10a6:209:87::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14 via Frontend Transport; Wed, 27 Apr 2022 10:08:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT047.mail.protection.outlook.com (10.152.16.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.12 via Frontend Transport; Wed, 27 Apr 2022 10:08:09 +0000 Received: ("Tessian outbound facaf1373bbd:v118"); Wed, 27 Apr 2022 10:08:09 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 024dc4714d179653 X-CR-MTA-TID: 64aa7808 Received: from ee701d2b5186.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 11433DBE-B3D1-400E-9DBC-4356DCD50E7F.1; Wed, 27 Apr 2022 10:08:02 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ee701d2b5186.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 27 Apr 2022 10:08:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D6kIdsSN1cjhy1PHqgwylMw40NPQtpPofYEQ63gwnXnjQdsdHRl9FyA4v8AJVaRkSHZSByyt8sme6kW+7RUGikEoFuje+YBc7yTu/Dc8b4hRbt3ZDOzprchHPI5l5M8cQrhBic++rRvTvbgAx3Hs/Fzst+cEHBADi1ZouD0ZqksHqVJ+szmVHwp4+0aESXneT7mGc0g2c+7tbZdSMTT+2woUmL971IUXcHgJ5wBak3wolVahaNESi6pfYkxWSNO5+fNvo2OtXh25SxocnEQJ7gbr4X0g7KA/c8UgUnAdlnPgFE9ei86sWea1cmAI+/tADgbT+qd39IZH0vLa+uNlLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=R90ES7T78Yjh9MR2W9boUvgCet6t654yetOxZmQAZho=; b=NzgiiN1Kw6SJp7dsxWdir2eMtYvaUmsX0ljEVJXm2vNYqqrRC1r5zsrLYEAlEJuygGqSrw7NFPLvvZ9LHNjpLd6KO2Daqm56tZ6Am7K9dIoDYubsl+exwndiqg3y1jz3FCDa2H4elJ8pxfdLciBZCpb6csxmYBklR394r9dMcHvOU+U/ile/3lQar8bXMcim1FVga9nRYHZV4w2JQhLfQEFzyUCM/ymvrB/FPuWnUrwdSakwGAXev+I6E7W+y/HxH0mDihkb1RKxs5ZUlTLlPOTAoQxYAsa+O0MpulcpcrfkFu8CpkW7Sy4pQLHpe3CAruM+40xl0rWWjSiD/Vu7mw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none Received: from AM0PR02CA0123.eurprd02.prod.outlook.com (2603:10a6:20b:28c::20) by AM9PR08MB6755.eurprd08.prod.outlook.com (2603:10a6:20b:2fe::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 27 Apr 2022 10:08:01 +0000 Received: from AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:28c:cafe::c0) by AM0PR02CA0123.outlook.office365.com (2603:10a6:20b:28c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13 via Frontend Transport; Wed, 27 Apr 2022 10:08:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; Received: from nebula.arm.com (40.67.248.234) by AM5EUR03FT039.mail.protection.outlook.com (10.152.17.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5206.12 via Frontend Transport; Wed, 27 Apr 2022 10:08:00 +0000 Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2308.27; Wed, 27 Apr 2022 10:08:01 +0000 Received: from AZ-NEU-EX03.Arm.com (10.251.24.31) by AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.27; Wed, 27 Apr 2022 10:07:59 +0000 Received: from e129171.arm.com (10.57.13.193) by mail.arm.com (10.251.24.31) with Microsoft SMTP Server id 15.1.2308.27 via Frontend Transport; Wed, 27 Apr 2022 10:08:01 +0000 From: Luis Machado To: Subject: [PATCH] Fix crash with "maintenance print arc" Date: Wed, 27 Apr 2022 11:07:53 +0100 Message-ID: <20220427100753.364631-1-luis.machado@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-Correlation-Id: 5e1db2c9-eaef-4530-6b6c-08da2835d506 X-MS-TrafficTypeDiagnostic: AM9PR08MB6755:EE_|AM5EUR03FT047:EE_|DB6PR08MB2936:EE_ X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: KkN9WyOB8kupaqZcrpC9MJU7ZOsXSMzcEiNePNdldnYEpZMMrgVpfA/dxjYiMXai+UXSiL3aEBp9XLlkJy0s47ecvceyJj/I3yXltks3ioa2cxbVEGjNBzBCTtedOujGmQ3mebY2K7ti55ImKit4xc9fuJS+ndebZlBmkogZX4AYOA9Zft/IeWTGerBFs0q44jzXB2acrbxMs2WzZqUTzREq+ubm1KhkKzJGVeAArD3GCJ810+d+ZmKW1X7qVQIxKFEhGuClLlEdIzr/DuPKj9g3vUJiCArJK755XGYJoGR5hyo8nMJtEWGmJffZt7mKYY/gsA/UcQo/u+Z8ZI1N3NMiaOcT/auY8BFTcor5sdeCZPu3jVsVAG1yt2oJSRjR3UhHc1TsgLl6cbm9sWZ49l7tmDfB8qVTT61M0Z+aNZhAUDT5QwyIIBTYPcekxpAFTXXrirIWOvkHYp4b/yfHwtSdGV4krjCk6YzuXobd9r6EOC7scZdDNMpPvUsZethLfLYo0xr9d00mcWvfkPaGq/+vZyUSnUJIVGzklzDRHKSd0W72iSNxX9txW9lHp6t7VFDbuoI+nI/NPrFe/Wf9z4C9gNcoITmFj5Nd8UJbFi5JQu0/OCqvPvhmUCRNfFB9FhucJvYJUxLrr9iHqtljjz5frOmvQtgZu06s4orDO3u+gauHfSEDrP97WCtuAbT5eOmYqibXMIlcp9EhUN5ePw== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230001)(4636009)(40470700004)(36840700001)(46966006)(508600001)(36860700001)(70206006)(40460700003)(8676002)(81166007)(70586007)(86362001)(316002)(356005)(6916009)(26005)(2906002)(7696005)(6666004)(5660300002)(47076005)(426003)(336012)(1076003)(2616005)(44832011)(82310400005)(83380400001)(186003)(36756003)(8936002)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6755 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT047.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 1b439745-0eca-40c9-c321-08da2835cf37 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: frJjp863a35OR6JbV37rZXbtFDbr0d0vC+dB3g6RDhu/AucoQzA5F5Z64IoIZW251KgIfI/4XajFG+oj0qVudcyH6HuDSqayPUxAlisnkMM3SlGo5zl7uSci8Vuldhqil65PqyXX3rkcPL0iSrqKdgF395OPXXMr8IqtQ2w3dNN/Oyq1n9KSgxHQBgjypQ1f4OID1AZMj6C9e4EDMgddl7U5m67nyKkQ6BFmp3tPepoV+z9PRqC0sy0PbzYEhSn/Q1tDGzLp0z4+HpZKZEFzcMGHwdHUdVjn4M/fxaCFm/Ugg8TM4D5qZt2oWq3wVeN/rmWTVfcPD5G0A4NkfvKF18KErar/xusCiCfiNyX5MkCU2hF6WOkitpGd7HI8Dg5Idla+EC0PR424fNAictPS6TFiYXn8StQxgLdPUOePdT2n+2k3WTEmw6ZuNSS3CrYMiWMeMf0fMR2cZSZRiZtftmK/mGdLT3dIW+hgam++PT4H3/jhmgw8MijvCVNpJPi2/FKui/aOLRvZxiJVgYkscNmBJ+ckGPgc1G3CHXIYjVpxIqISJxoo3EHZm1RLDyWYnrYxLlHWDT9kCMgv/PfHdxkObruR0AJjpVUDXvQWKWy2yIgRAl7sQgVICLkM5Lxau20f9B9ZN92Un6Syt7XnAEuGfspRMCJp0WWJSsFjjFJLEtYP05bdnxVNgw82gxp+ X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230001)(4636009)(36840700001)(46966006)(40470700004)(7696005)(1076003)(508600001)(316002)(6916009)(6666004)(86362001)(186003)(26005)(336012)(47076005)(426003)(8936002)(82310400005)(2616005)(8676002)(40460700003)(81166007)(70586007)(70206006)(36860700001)(44832011)(2906002)(5660300002)(36756003)(83380400001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2022 10:08:09.8147 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5e1db2c9-eaef-4530-6b6c-08da2835d506 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT047.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR08MB2936 X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2022 10:08:15 -0000 While doing something else, I noticed GDB crashed with "maintenance print arc". This happens because the code expects to find a "show" string pattern within "maintenance print arc", since "arc" here is a prefix, and skip it. In this case though, it won't find it, and we will have a bad pointer getting dereferenced. There is another part of the code with a similar assumption. This patch hardens both code paths to prevent future crashes. Regression-tested on x86_64 and aarch64 Linux Ubuntu 20.04. --- gdb/cli/cli-setshow.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c index 213573e443e..3852a505cf5 100644 --- a/gdb/cli/cli-setshow.c +++ b/gdb/cli/cli-setshow.c @@ -712,7 +712,13 @@ cmd_show_list (struct cmd_list_element *list, int from_tty) { ui_out_emit_tuple optionlist_emitter (uiout, "optionlist"); std::string prefixname = list->prefixname (); - const char *new_prefix = strstr (prefixname.c_str (), "show ") + 5; + const char *new_prefix = strstr (prefixname.c_str (), "show "); + + /* If we've found a "show" string, remove it now. */ + if (new_prefix != nullptr) + new_prefix += 5; + else + new_prefix = prefixname.c_str (); if (uiout->is_mi_like_p ()) uiout->field_string ("prefix", new_prefix); @@ -726,8 +732,15 @@ cmd_show_list (struct cmd_list_element *list, int from_tty) { /* If we find a prefix, output it (with "show " skipped). */ std::string prefixname = list->prefix->prefixname (); - prefixname = (!list->prefix->is_prefix () ? "" - : strstr (prefixname.c_str (), "show ") + 5); + const char *prefix = nullptr; + + if (list->prefix->is_prefix ()) + prefix = strstr (prefixname.c_str (), "show "); + + /* If we've found a "show" string, remove it now. */ + if (prefix != nullptr) + prefixname = prefix + 5; + uiout->text (prefixname); } uiout->field_string ("name", list->name); -- 2.25.1