From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2062.outbound.protection.outlook.com [40.107.21.62]) by sourceware.org (Postfix) with ESMTPS id 3CCC33858D33 for ; Fri, 31 Mar 2023 12:02:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3CCC33858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com 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=7GUtNz50bGotXQxIDQfDWS8K4EBUKuzcX5BlNi9vIC8=; b=MIUusL9MeSJbUhx4PYxMI57umbV2rA5pmJ9w+RMFJ5wFeFUMKQf1iJzvZ3FuBs61IZCKtf+ZmQGngl40zNaLDWCvzJswqOxou2SkPQ9oJwejEo7PmtzlPHqIVLIRS6vWylYn5vd1dEX/gVo43T0Oxf0MjLjIMB0bLtBEIIMGYGw= Received: from AS8P189CA0047.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:458::27) by DU2PR08MB7344.eurprd08.prod.outlook.com (2603:10a6:10:2f3::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.31; Fri, 31 Mar 2023 12:02:46 +0000 Received: from AM7EUR03FT004.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:458:cafe::b3) by AS8P189CA0047.outlook.office365.com (2603:10a6:20b:458::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.22 via Frontend Transport; Fri, 31 Mar 2023 12:02:46 +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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT004.mail.protection.outlook.com (100.127.140.210) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.22 via Frontend Transport; Fri, 31 Mar 2023 12:02:45 +0000 Received: ("Tessian outbound 8b05220b4215:v136"); Fri, 31 Mar 2023 12:02:45 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 0b4c9533e1bdf924 X-CR-MTA-TID: 64aa7808 Received: from b6932a52ea54.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 96CD4623-3795-465A-B86E-DD1A6695B60B.1; Fri, 31 Mar 2023 12:02:38 +0000 Received: from EUR03-AM7-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b6932a52ea54.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 31 Mar 2023 12:02:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gu4AvgHnAn5nofWF5qMjmt+/Z46RT9VSTeW29ldMid292MgwapA7WBo/EGZiGXv/YPTdevnz89xEi+DVOzneherWfp/Q+8mKEnEuaziPGQtvalDjnysggHMzM8QagO6jg6HjvERBwKRn7w2MUi3d4EySGXezWzQYXn6xYVCN5T1qiOL5TvqTK5b6+dEs1pdp74treKzTC2UAvhhl+GF8WXAzYi9si+VQS+oXFNdJsYc/Q0nGpk1jP5EtgeuFMLP/ijW0Dp+ynXpR2H/9J3G92oNa7wRfvEeVdysMPTyaggnwhnqaGoAEbBbVAwSQXOmigIS1QBTy0+WXJSHZjbgUUQ== 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=7GUtNz50bGotXQxIDQfDWS8K4EBUKuzcX5BlNi9vIC8=; b=HgB4stgE83H0IuwDF0nACn6D4nind6cHHsyJoTIvyEAy069Eq2vTWDB031tM5iU6kpBTi3V9Ebi11Fw30ywQClKUp/E3VEWJhABBhftI/0YpAthOt7y9aobacBrKLEAeq6ixKobz88R3TUEmPWN6e7JKw81eJ0uhCVSUVcxuVPDFPauUnO9imeE0py2B30+Ug3zUAT2y9vQIhkeqo+bqI7W0tqLoLLhArS559CvEmrCJ4UcpMoHvw8uX44V3IbKpeSASlX1LLAEAlDOJ8zqSNR1+8BSc12NaHq4QwScjazn5K5Ux1wjDWCMewAjBo0mye0q+qufDtw760vXTd9722g== 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=7GUtNz50bGotXQxIDQfDWS8K4EBUKuzcX5BlNi9vIC8=; b=MIUusL9MeSJbUhx4PYxMI57umbV2rA5pmJ9w+RMFJ5wFeFUMKQf1iJzvZ3FuBs61IZCKtf+ZmQGngl40zNaLDWCvzJswqOxou2SkPQ9oJwejEo7PmtzlPHqIVLIRS6vWylYn5vd1dEX/gVo43T0Oxf0MjLjIMB0bLtBEIIMGYGw= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB9PR08MB7179.eurprd08.prod.outlook.com (2603:10a6:10:2cc::19) by GV2PR08MB9952.eurprd08.prod.outlook.com (2603:10a6:150:b6::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.22; Fri, 31 Mar 2023 12:02:30 +0000 Received: from DB9PR08MB7179.eurprd08.prod.outlook.com ([fe80::e3d1:5a4:db0c:43cc]) by DB9PR08MB7179.eurprd08.prod.outlook.com ([fe80::e3d1:5a4:db0c:43cc%3]) with mapi id 15.20.6254.023; Fri, 31 Mar 2023 12:02:30 +0000 Date: Fri, 31 Mar 2023 13:02:16 +0100 From: Szabolcs Nagy To: Adhemerval Zanella Netto , stsp , libc-alpha@sourceware.org Subject: Re: [PATCH 03/13] elf: dont pass fd to _dl_process_pt_xx Message-ID: References: <20230318165110.3672749-1-stsp2@yandex.ru> <20230318165110.3672749-4-stsp2@yandex.ru> <77329e53-bb96-dc39-1f3d-6a5dfa0e7263@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-ClientProxiedBy: LO4P123CA0298.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:196::15) To DB9PR08MB7179.eurprd08.prod.outlook.com (2603:10a6:10:2cc::19) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB9PR08MB7179:EE_|GV2PR08MB9952:EE_|AM7EUR03FT004:EE_|DU2PR08MB7344:EE_ X-MS-Office365-Filtering-Correlation-Id: c707685f-3907-4793-81db-08db31dfd720 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: oJc5mxFf9EQKcomdtn9kRJUMQzjOHRvMDAUA9WCDpE+LMNGDxyk5SMEwrpzo6AXk/90+wD7riSstFlZjF5nDEm4t3Ur3rJVPOz9ht4/eVR8oZpyPX3HA4Rjkv0c5yXXtgKe+0z3GoJ0iSKN7mgSB7y167DbMgBoQoLt+JEjoj0Y8Bb+nRIXn8f1Sso3f3yIRd+gUw0pI7D1/gU7tEyLaMk1dYoDXPkrRyMLRYWlo3a0/OjvmR1HsB90vIG+F+HccbwkwC49z0YtMtFhWDmvtB21nqlY6pDRoXRaOj4dz68q1qn/gJ9PZcgawyKzEroujw6D6oOKQQpVmjbANnZHJT+IIMMRsYdfkuoC7lPk+Nmq0ZdWGBIeE7mHIbOdD+81iFwyjPyhy0j7FPlV4K5MH7nvHZI5VAzz89e+tNY2H3sTMZGb9IKsQ5zboNGp4ZIGVVk+b01zZmvo4aUEu1fBVyUDMrXEOfRF1+HqU6vKom+g12mq4L/g1desXoyBzm21GB2jmFCq4zvSKseEwg9PHjxuJOnkwGrgR56Uk6ezE9bl6oGa6qaXh4rgsk6LZw4PXYWXx5sDs1DWe1h4bJAmyUp+11/CQvBYXjVrbM4SeFe9xcdrv9MjjCShmKvvybOQMDvB3JtJK5Y0IG8pAKQlO2w== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB7179.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(136003)(366004)(346002)(376002)(39860400002)(396003)(451199021)(66556008)(66476007)(8676002)(66946007)(38100700002)(41300700001)(86362001)(83380400001)(8936002)(44832011)(5660300002)(2616005)(36756003)(2906002)(26005)(6666004)(478600001)(6512007)(53546011)(6506007)(186003)(6486002)(316002)(110136005)(192303002)(23180200003);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9952 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT004.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 357762d5-12bf-49c4-5681-08db31dfcd76 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UPB0HQC5QP8xBq5jW7PNz+dbmq4+SpiAjR7yDzkhsHcKuWsqxU48A0lPglZeqo6Typ/BCITjXluZQpeq5ntsVOQ0Og6Q9nlYGZQKs6Fy5uwyXmxmP5w8O9IkkU/WoiHvCiFWMQZ/XJT6kIzPYZl1TvOg8TrHOZrrB4tNKJJ6jVLrDjXRy8ZJEi0rceYs136NJFLxtlAKnSaNvxA0GDGBA/IMEPljAFLzkz7rHRi57fjoILVbx+HRvnWF0+396Gh1Bv0BwGUPs8cFSzl6OI70l/ZbzDhkBjGOnrhOAWfz1+clL3XgwAG54JuKCyes8Vu9DNb3nEmen35aBcwefTuPM6Wks9o3dmszS8VI3VRiG95ulaeaQEsC4Q3HkHw9A2cyL4E2wkIf677qYb4xJhKXTFz4mi33k6SrPLxSIrhg99Kt7NXtqc0GPuV20KICjM1PuQk9OR63NTP4mA8zOBmKQIbd+bwZsycBLkpy8P1sggjNQMlqr9GXy8jtUmsPkNpaCKs88YqCtedbukLC5sx68pnviNeYWLPtZBZ+WezUe3BkLs8mgpjCZR34B8siF9e723U5guaca+Na9BNFfNjSUse90rt5f7plXb8gDXvaogwNYs5y35ixLNWd48QmikWgIN+PJYKg1qx6wYgCL6I/wTOe7PWZ63b/fQ6mebIBTt9Pxvk+2x02W0IoIGJ6dsywl3yjHeUtcCAmP2Fr1kDa/FFKm7e+X5PyYrMm6Mqq/AD1AWuHy6xwmDZIu4L/PSZV7cDuol5Ollb2G9NYn5B4Ig== 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:(13230028)(4636009)(376002)(346002)(39860400002)(136003)(396003)(451199021)(40470700004)(36840700001)(46966006)(110136005)(316002)(40460700003)(36860700001)(8676002)(478600001)(44832011)(36756003)(356005)(86362001)(82310400005)(82740400003)(81166007)(8936002)(70586007)(70206006)(2906002)(5660300002)(40480700001)(6506007)(41300700001)(186003)(6666004)(53546011)(26005)(6512007)(336012)(83380400001)(2616005)(47076005)(6486002)(192303002)(23180200003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2023 12:02:45.9132 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c707685f-3907-4793-81db-08db31dfd720 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: AM7EUR03FT004.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB7344 X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00,BODY_8BITS,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,UNPARSEABLE_RELAY 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: The 03/30/2023 17:46, Adhemerval Zanella Netto wrote: > On 30/03/23 13:08, stsp wrote: > > > > 29.03.2023 22:10, Adhemerval Zanella Netto пишет: > >> > >> On 18/03/23 13:51, Stas Sergeev via Libc-alpha wrote: > >>> It is not used in these functions. > >>> rtld.c:rtld_setup_main_map() does the same. > >>> > >>> The test-suite was run on x86_64/64 and showed no regressions. > >>> > >>> Signed-off-by: Stas Sergeev > >>> --- > >>>   elf/dl-load.c | 4 ++-- > >>>   1 file changed, 2 insertions(+), 2 deletions(-) > >>> > >>> diff --git a/elf/dl-load.c b/elf/dl-load.c > >>> index fcb39a78d4..ab8b648687 100644 > >>> --- a/elf/dl-load.c > >>> +++ b/elf/dl-load.c > >>> @@ -1379,10 +1379,10 @@ cannot enable executable stack as shared object requires"); > >>>       switch (ph[-1].p_type) > >>>         { > >>>         case PT_NOTE: > >>> -    _dl_process_pt_note (l, fd, &ph[-1]); > >>> +    _dl_process_pt_note (l, -1, &ph[-1]); > >>>       break; > >>>         case PT_GNU_PROPERTY: > >>> -    _dl_process_pt_gnu_property (l, fd, &ph[-1]); > >>> +    _dl_process_pt_gnu_property (l, -1, &ph[-1]); > >>>       break; > >>>         } > >>>   > >> > >> It allows both _dl_process_pt_note and _dl_process_pt_gnu_property to know > >> if the called where rtld code during statup code or dlopen.  But you are > >> right that it is not used. > >> > >> However this does not accomplish anything, a better refactor would to just > >> remove the argument altogether.  It at least would simplify the interface > >> and allow slight better code generation. > > > > I tried to do that, but there is also that > > _dl_process_gnu_property() called from > > _dl_process_pt_gnu_property(). > > For aarch64 it has this: > >       unsigned int feature_1 = *(unsigned int *) data; > >       if (feature_1 & GNU_PROPERTY_AARCH64_FEATURE_1_BTI) > >         _dl_bti_protect (l, fd); > > > > What should I do here to remove that fd? > > > > In fact aarch64 _dl_bti_protect requires to know whether the map was done by > the kernel or not. > > Szabolcs, shouldn't the code: > > 1257 for (const ElfW(Phdr) *ph = &phdr[phnum]; ph != phdr; --ph) > 1258 switch (ph[-1].p_type) > 1259 { > 1260 case PT_NOTE: > 1261 _dl_process_pt_note (main_map, -1, &ph[-1]); > 1262 break; > 1263 case PT_GNU_PROPERTY: > 1264 _dl_process_pt_gnu_property (main_map, -1, &ph[-1]); > 1265 break; > 1266 } > > Take in consideration whether the main_map was allocated by the kernel or > by loader to pass the correct value on 'fd'? if the exe is loaded by ld.so then we already took care of bti (and other gnu properties) at load time. here we could skip processing properties again in that case but it does not hurt on aarch64 (it will try to mprotect with PROT_BTI again and ignore any failures). however the fd must be passed down in elf/dl-load.c otherwise bti protection is silently dropped (when systemd filters out mprotect with PROT_EXEC, this is being fixed, but there are old systems configured like that).