From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2061.outbound.protection.outlook.com [40.107.105.61]) by sourceware.org (Postfix) with ESMTPS id 22C5E3858C33 for ; Thu, 1 Dec 2022 15:33:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 22C5E3858C33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DCPriy+HJLvMQUO4NffiMNpmyHywuFTmBA8XshcOF1s44Ek/LsOYCnX8Dq3cw4DxZzCGNvtPSn5QYzS+iTh0NthjHkblHWb19Fc9aIPW8C4PRYDdMPruhUBx/3tRI+oam/J5xzfaE57VRAzQ7Du+T6Rq43auGHgGljlgQ+XBrY0dat8KOryUQnp5G8OXDaeCtUkB9/rDHqEweyNHcCfnh+g210/wDVTTGHw7+zAJU5YTfRWij5VaJDVY9Fih87E7apKeH/vgxsy8pDaJpMuAS9K5f39ZuFREmPMMxoWwpOCMwGjt+VEfKQD/Cl2rijn539AVWheLQuJlIgK3ebYdrQ== 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=EiWkSayVZ5mH9gHowqsyT0fy/bgSEShhT+HrMGvFMy8=; b=DvCCp81IOKXPQ9CFtfS71PcLYDjqm6kovCvtoSLVU75cbNHqCtSHtmnxBmmi5oPxvfZeLPUVkuZgboJxnpFS90uwSVW01UhvJlDZCg1GE9YGcXBC4gDX/TVSVuzRIMcHvTu/QYhHyV8+hwboB4TJDp6YXjqEL97TBC7jAAZkAOHNGBBCx25g6+CsVMOPsNfiN5Tn2wxI51Bd0P7KUUT/7jtrKqlqIFkN/lyehZShFs/p5CwaUjg3X6gUZRlDJWhP1l4d9jGxjFOjbff6A4vs/ZIjh7kKrJKHnozp/GMq+0n0Ds6ncZWTFaiL7gxfZXmyoND/Gp9/Sg8s1VKYaz2YsA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EiWkSayVZ5mH9gHowqsyT0fy/bgSEShhT+HrMGvFMy8=; b=uDkPpuHGqF5TOSYfXOVfFuyxDcMlvtJnAkPwuy4rnNs2+LTdZnQpL6d1IAxCJUNoRhTrCeD7E1b1tG3BvLaXmcG1cxzZz4y9CtUi+Dr0VZMIAKlMPjpfUIYN+80yDKckpk+TDeyDJgc5rlADaLmgk2EJ9ghBzmnOdS6S/TCJK0s= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from PAXPR08MB7201.eurprd08.prod.outlook.com (2603:10a6:102:20b::17) by PAXPR08MB6416.eurprd08.prod.outlook.com (2603:10a6:102:152::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.8; Thu, 1 Dec 2022 15:33:35 +0000 Received: from PAXPR08MB7201.eurprd08.prod.outlook.com ([fe80::40bc:b698:5059:f02]) by PAXPR08MB7201.eurprd08.prod.outlook.com ([fe80::40bc:b698:5059:f02%4]) with mapi id 15.20.5880.008; Thu, 1 Dec 2022 15:33:34 +0000 Date: Thu, 1 Dec 2022 15:33:30 +0000 From: Alex Coplan To: gcc-patches@gcc.gnu.org Subject: [PATCH] varasm: Fix type confusion bug Message-ID: Content-Type: multipart/mixed; boundary="p3zC1ex5SRb9uzxl" Content-Disposition: inline X-ClientProxiedBy: LO2P123CA0019.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:a6::31) To PAXPR08MB7201.eurprd08.prod.outlook.com (2603:10a6:102:20b::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR08MB7201:EE_|PAXPR08MB6416:EE_ X-MS-Office365-Filtering-Correlation-Id: f93693f9-a3dd-4528-b26e-08dad3b167c5 NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EL6fMyX3aqzoQHIYGRGapy6LAwLeMeMcFO6MCinilqtHACh8HqMiyEvBVYcL1TKyoMwo1rTXb026PgfqPll/WW47ASPmW0D4iQd8ogqNI+oBCiS9NoODCXfnx7qHmM4Z6yfHwvXGMamoNkpVx1SIc3WexB0s03J2hSexeyA7MQyGi0ddAS5G8KKEPVNQ9fU7T6fNu2Mi6eJ+fwuI2qLsPr2ivNcYrUmHHD4FqbhKy/mFx9GlczHwW2m5VILPN86LI3qdnoCYnaMbDlmr/tRWN0TdBW3Icqt6BKjOZLRa3SsNxL6FncmpAmli+O+6BjcqO+HbbmWs7GZ6JkQAnPYkcsEYixKuiEOIJmIhfPx2R19Q9IUkN+3OtRqDKxDUjLJ6TwXrsZU+DTHQjwGcwx+7OOC7dwZsvP+kySY+0CrHKk59RwYxcmpCZnU+kIiCl+nHXGijf62PHgGbJ/cIArqhHd4KWoInOFU9ZCrNG1zNT4DIV8Bb0Y6qHgEnBFJkru/M1k3pPJZOHHN8ZdSue9PGqZga/n3b0ofOm0hI29UThyeZ70n/Ha76iQjCmmfbty5IODSPLsQY+xE7TxbNPGIS0sBD8ZDkCl7XKywGm08k7CfBN5ObGODq9uzXyZiHonGAG6kdw+7+aJ6mXR20hD4HKveEBKFuWdkWa+hJb59fTcLUQPjZJc0+Qd1hgh5sRhPCVt8OJxosfCrihstoB305BA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB7201.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(136003)(366004)(39860400002)(346002)(396003)(376002)(451199015)(86362001)(33964004)(21480400003)(6666004)(83380400001)(26005)(6506007)(44144004)(2906002)(6512007)(5660300002)(38100700002)(235185007)(44832011)(6916009)(316002)(478600001)(8676002)(8936002)(66946007)(186003)(66556008)(66476007)(6486002)(2616005)(41300700001)(36756003)(2700100001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Nkk0VmkvaitQRHdhN3h5Q0hTS1dQNUR4VS9rY3pkbFRLTmg5TFgrTlVRTUF4?= =?utf-8?B?QUFUVGxWRHpGdXZBREt3TDNoYlE5U3dPQXgrQ3MvY1JuUWxrSUhoTzdlTmhR?= =?utf-8?B?RC96Tkg1bzR1b1pUeUorWThmTkRzVDBpSTNvNWVEV2wrdytESGp3M1g3SnZG?= =?utf-8?B?Z3M0cnRkR1hyZHVhT0ZBNDhrb2N1YU44c1VOaGxIWHA5Ty8vQzB3dVdXeGlK?= =?utf-8?B?cXZYNGc5czRRMzFqOXczVE5ucE1POUFLMHBWUWN6dXY1S2N2bzhlUzRNeDFC?= =?utf-8?B?VmxFN2xHb0ZNa0dmcDdHY01YNE41UWppYlczN3ZlV1drTG11NU1yc3VGVGVO?= =?utf-8?B?YldUNlZPeVlqOWF0dk5HK1ZUbEdOQ3NlQ0RkSHdnYiszaTFEejFjdnV0RnU4?= =?utf-8?B?MXBxMzlXSzM1ZGU4bDMySHNBTHZwYTBOYjB2eUh3RjdoUG14eGo4UVZwUGpZ?= =?utf-8?B?NXdONWpEUSs2ekd1cTVXbG1WWHhsZVBEcDdOb1Z6MldTNTMzMGhzeC9xRHcz?= =?utf-8?B?RElQR3dmL1Irc0JCYkZmWHVXZ1VwekZDK3NsTHJFajhNOVo2S0RQU3ZXWSs0?= =?utf-8?B?ZnBsbk9Kck5WWE0xY1lKMEVFZlF0clVxQ3JJNjRsMm9BUWRaQVh5M2NxMHBC?= =?utf-8?B?TkxyWHkyM25xWmRYdWZXUUR6bHRIejIxZ0hORFUzQjJ4TDRKZGZlNVQ3ejNj?= =?utf-8?B?SWJzamtaai9xMXZOS0Z6WTh3eWFUVDZRNWFVbHEyT1BBaXB6N1NWaGl0cThV?= =?utf-8?B?cTgwRTJkM3hxeFJVd3lLYWEvQmJTa3hsTFNpKzVvaVg4ZDcwaEhHSzhLK2Rp?= =?utf-8?B?SEp5c3k4SjgyVG41ellVTlVIMEFUMGsrN2ZVcFhBOG1JbzcxNndFMlF2cklQ?= =?utf-8?B?OWdMM1VUUmdvRmw1VGxYTW42emZFRWlNL1gza3RTMFNFU2xEWnZsZ3hTVFpZ?= =?utf-8?B?L1VzTVcvUjdDd0RWNyt0NTNaOStsUlBFT2JjSkh0NnZ3anQ5TExPTXpyeWUr?= =?utf-8?B?OXpIQ0gzTHlQdzlzUURhYU1mMEMvcTBiTjBQSHlhWmpvWFBBTjlZMDlxbDFw?= =?utf-8?B?NlZROWpRUnQ1OE5HTENQWVZQVXZSMm9Rb2tNVTMvdmJtOTgwU2N4TFZnS3VK?= =?utf-8?B?VEh1Y2lxYWFPODVwUnFIWUZUa1lxSFFvV1VBUStwSlFydExWblY1c3dvSE5Z?= =?utf-8?B?ZHVwZm82WlBKaHl4bnBVNm1rQUp5cUJQWEw5U0Fob2pLdC90S0R3RzIzS0kz?= =?utf-8?B?Zzd5dFJZMUdjRnNmRm44ZzBLdCtnNVZVMkJaOVg4MTd1YzVHeTF0UUVUOUp2?= =?utf-8?B?ZXdlYlZrZ1FJWXk4eVZHYm5ocDRaL0NxdkJ5S3VpMWdrY2YrN0toa2FadVd5?= =?utf-8?B?WGxBTFE0VW4zOXc5bGpwaVdCWEduRk5sT0dIWjFKUy9jU1FYSzkzMHo3V0Vh?= =?utf-8?B?OUJyUG5xS05FNW5hN21MSkQwaE50KzNaZlRLOWZSQkxwbEE2VFVBWmlFekJH?= =?utf-8?B?UE9LdGZZL3JhM1ZzVEd6U040R3V2MnNoQVVtYUQ2ZDVQRU1lNGJQZEx5WTNv?= =?utf-8?B?TkdlQnlKd3BtRHozQkZzbUh6VWIyMm9abDJyYThmYzVjUlR3a0VOdWVNWHZM?= =?utf-8?B?M2JwTHpIa2ZaaW02M3ZWN2lYQzBWanpNdjdaMDN4UjVQMXllZFJteWhPOEF3?= =?utf-8?B?dG03QkNuTHdIL0pCU0VnK1ByTHdPUEVDTHoxUTdLS1Z3MTkrUWtIMGFWYXl3?= =?utf-8?B?KzI3Vm12aUJHTjBRbmFnWThrUWt6TWZUMWx4QVQxdnFyOCt6N3E5QUVPbGJL?= =?utf-8?B?anAvQ2QvRkNsK1Bibm9qZWVIT0lraFYxL2VaOEl2UjJRMHNrS1lWWUdwMzFW?= =?utf-8?B?U3NGdEs4RHRhZGl3NTNiUENPVVEvYVRpZGc0K2RXRktqOG05eFR4a241UmVp?= =?utf-8?B?VFF5cm1JQlV5UThzVVRrWUo3ZXhoYUZNTWRteXZhWmhLNjRkWVk0UDVXNW9V?= =?utf-8?B?eTdWdWsxVzFSYnZpS0NmTlhJMDl3aXV0dEIzNlhNMnVhQW96Y3ZxcGxOTGJq?= =?utf-8?B?SE1SVFQ5ZXU4a2E0NmVBMUpXS1dJV3FRaVVWc3lTVTE1ZUVHV0c3WGt4SEVD?= =?utf-8?Q?jnD9wEQ5hoiFjtKakyaTLlQXf?= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: f93693f9-a3dd-4528-b26e-08dad3b167c5 X-MS-Exchange-CrossTenant-AuthSource: PAXPR08MB7201.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2022 15:33:34.7850 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SWs1IcYF3sHLkiYLUd1tTESXFbIplr+1826MLYlxJ1D7norkQnjf6WqFGbMn8KzM4EFj9xbzmNMdaMJ+LiMQRA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6416 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --p3zC1ex5SRb9uzxl Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi, This patch fixes a type confusion bug in varasm.cc:assemble_variable. The problem is that the current code calls: sect = get_variable_section (decl, false); and then accesses sect->named.name without checking whether the section is in fact a named section. In the surrounding else clause, we only know that SECTION_STYLE (sect) != SECTION_NOSWITCH, so it is possible that the section is an unnamed section. In practice, this means that we end up doing a wild string compare between a function pointer and the string literal ".vtable_map_vars". This is because sect->named.name aliases sect->unnamed.callback in the section union. This can be seen in GDB with a simple testcase such as "int x;". This patch fixes the issue by checking the SECTION_STYLE of the section is in fact SECTION_NAMED before trying to do the string comparison. We drop the existing check of whether sect->named.name is non-NULL because this should presumably always be the case for a named section. Bootstrapped/regtested on aarch64-none-linux-gnu, OK for trunk? Thanks, Alex gcc/ChangeLog: * varasm.cc (assemble_variable): Fix type confusion bug when checking for ".vtable_map_vars" section. --p3zC1ex5SRb9uzxl Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="patch.txt" diff --git a/gcc/varasm.cc b/gcc/varasm.cc index 9dfbebbb915..6851201b6a2 100644 --- a/gcc/varasm.cc +++ b/gcc/varasm.cc @@ -2400,7 +2400,7 @@ assemble_variable (tree decl, int top_level ATTRIBUTE_UNUSED, else { /* Special-case handling of vtv comdat sections. */ - if (sect->named.name + if (SECTION_STYLE (sect) == SECTION_NAMED && (strcmp (sect->named.name, ".vtable_map_vars") == 0)) handle_vtv_comdat_section (sect, decl); else --p3zC1ex5SRb9uzxl--