From patchwork Mon May 8 15:45:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Moody Liu X-Patchwork-Id: 68921 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0800C385843E for ; Mon, 8 May 2023 15:47:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0800C385843E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1683560855; bh=kNm+KhekTCIsIFe2H0Eo0h/YOYp413hgarYgmB3xy6E=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=MLg03qPsI71T5TrLI07XJgSeBwpTuB3HGL4aTkx/IwMNrufHxkMQjTLzGlJuvQfUp kKa+V8ZM9CtMHeYnI0tsQ0wu3FHs497/uTk7YfZWladzauDY7tefhtWEcOJzmA3+ya uagUXC28TS6G7KeSz2+AayUevaB7/qq5qzBCt8qw= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from AUS01-ME3-obe.outbound.protection.outlook.com (mail-me3aus01olkn2147.outbound.protection.outlook.com [40.92.63.147]) by sourceware.org (Postfix) with ESMTPS id D296E3857713 for ; Mon, 8 May 2023 15:47:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D296E3857713 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fk3JICZKt0iAXO76iwSsG13weV3oMehH/f2SB1ujbGP3yz6wENyXxZd0SVzXq+Q/2IYyP0Nif46hZIDoKPt5OCRv/cd5LFdu8WX+Ixma/CHK7RmTcKYdbGxru/V+GNGWS3oKmPYK+zOwajeW5Nd99cCdOx7oP/3+KcnGIMV8PXhnAqFlnRaptyu74H8rx0/493FMvLIRqMCEeEkJt9Ir3u6fZg6rcX1WZyQ6v50GA3a5oIztPznmZaI+kKKVYsXMmmmkBlR7HtLifcrbfRpopAQH78dOwFxBXLPvPlv4Xt8fnrhpNwoS/JAjoGTLZRPCt5719q33MSh+Lbz+1nW+7Q== 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=kNm+KhekTCIsIFe2H0Eo0h/YOYp413hgarYgmB3xy6E=; b=NKj1QjrOhgUoulLfjBn2JkgpKgkCacUMXYdByi3277UAbLahHHsk2Vs51fwpFfbjfNrCqb+YbkLA8u2TCB/KsYnsYDxBJoYlyfPG+UCErOvEMETnohLLoPb9Bnbwd0mwjYv3sSwBYg69tTn7TJGe/Dg4RPesQBZn663yeCy2DrtjyIs+mRAl1G9LOvPUqgwXT54Rb4ZU7WNh47/fvSOtQppBu/tADG7blEyQQtikhlKyajBOKZHfi0pWjlT9yVss4VuzNuR9i2mFB0NIP34rGzXxMFQMo50s9LK+mQLm6wKqrBmM8Rl3EXsA1HD4dW+177JQqkGCBq4Qoks/E455SQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from ME3P282MB3968.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:1b0::8) by ME4P282MB0856.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33; Mon, 8 May 2023 15:47:07 +0000 Received: from ME3P282MB3968.AUSP282.PROD.OUTLOOK.COM ([fe80::d866:e9aa:78d8:ac82]) by ME3P282MB3968.AUSP282.PROD.OUTLOOK.COM ([fe80::d866:e9aa:78d8:ac82%6]) with mapi id 15.20.6363.033; Mon, 8 May 2023 15:47:07 +0000 To: libc-alpha@sourceware.org Cc: Moody Liu , Qixing ksyx Xue Subject: [PATCH] elf: Fix marking root dir as nonexist in open_path Date: Mon, 8 May 2023 16:45:57 +0100 Message-ID: X-Mailer: git-send-email 2.40.1 X-TMN: [CBId+c2JTtcMsCpVoifmrsh4tRueTCRI] X-ClientProxiedBy: LO4P123CA0330.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18c::11) To ME3P282MB3968.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:1b0::8) X-Microsoft-Original-Message-ID: <20230508154557.40101-1-mooodyhunter@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: ME3P282MB3968:EE_|ME4P282MB0856:EE_ X-MS-Office365-Filtering-Correlation-Id: e3c90bc9-e943-4232-98d4-08db4fdb7a8c X-MS-Exchange-SLBlob-MailProps: 0wLWl8rLpvsWCTx8znU09AXVprV1jBP1tBTMR3362x1QFarURL6ysdk7a6Z91hCfON8Z4CJ8Kau2qqMYdmtsasRDZ/0FcLU9P4ig7W6J2Y4dTSaMZz5G/68bB+KVfrzlCY4wq+RaiezpLcPLGbEZNJgJwhuZ8g609eioHsgq3IO6T3zyQdDN2h0sObYFwqdTbfVcfQ7Sjf3TgWCFFIuW4CAx3sBdSJ2li1fpoymiYXZvsEVaMdQ5qBj5Fz4627UWt5L0SrGZ42/F/8VkGGQ2Uaf9WoG1SDRRZnNb3ipRh9NMAgqWZ5BtodjE+2hFyRcXjD+Kdv71QOMye7VOz+FSgHebbZCFuRRGFkJ1t8ckb7q38ZNfro6mJlKxxX6EaTvBfnVnlMJXSECwl4Z4D0oqqKtm0EYTZSenxS4lF1e/Y2PHLJKEjjhjdxZ9c0bHQx4rR3fn9xwh5/GQvf0yHGSOq6TLX+Y3+uwsJAOZ9if79yFqbqeBSHhoMWI5426+1NBOqoKLv2MKIxt53kWQZgyPefQXpDj73C+xdDmcppRoMVQBvxVnVRsD3JVVLjnOha9CgjvKVxWotd3XSvmqoJ9Cl/BvDtPgJrcv406Ee/ybvrVCmpQ4y6taUEEXbGv0zLdesZo6BBhnIu7LkAN2t78b0i33P+v228u4eFQDsPhdI9AhTRXB1xf3v7SD2mVbQ+uwKEMvYb7NjxDWYyd+yxBqKMqTskIgq4BCDB3uBrOAzFtl5qjKB8+tQTUoGuv60i0xyUQQ2967ETQ= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DlBB2CbB5wk3YQ0V0/VRDAAgNCwZwQjhuwSxZaTjeq5k4xGjC2B1wuOC17apVXEdLu8vHVmjZ22B5RpLFvbUgF0OAOuHcz/pHjnbE40KtpPO1b0cBuG8Jydyv7gleP+CHjGIAABINRAjwXjHC6/1P/bYAIOYJZig6cfmWOHZM5MEj02Zt7AHL5XCx5p1CEvyOdPcor+IKHCChDKsudNKwTcz8AyeV+IhOTea/n5W4MziY8O1bwiOKOIAW1YVesu0ia0V90qAia2fyCeq5tSIMTWv1oqNjdT1iR2hG0WrwpV6/v85NxAvLs31/an1wGvSTfnhfEvQGxpr7HY6wZFFOV1VjK/TJ5Q/AuSi6xTO3RPiWNE0N5pj0GzaIg003tCUBnO+De6GugmfoV46gkcZNIH6o8GtZJQoiLTxiQUTqtOQcHUZh224Asow179a/TXAVrGtVW3byb3G5MJYhG9FEs/LqmApiQS4D3gV3gHiHoiSsYOUC0HHu1a5hYrSC4wGOzVx+E31fMH1ovR8/w3W4+JbOEhVzQo+J/aiUmjlO4vpXrjxsfV/bRphGL8INGqK77ePF5p/XEz1YmU0m8eibtKoAXJLESHtMuVnTJRb0fegJhkbr42ckyPPm9HAOESl X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PPg0yT7SpDe2FOZnPegTaj7iVMEOf9g2B/FGiB2Uf9NIXbhgW16oW03Hr57wiQO/X3ZvxWOYvIwP7fqFBqhYXPUCe0rmot5C2n4n/yxP6hRu9tlnMuO52LIFVu3iKToYpeYC7IEf/p5jtQm4ml8IoDCbBE7aYBnLlVX+GzXG3Kd5kJnffxTGGncxJZk2Y8cIAiIiJn+5ST/fu54lbka7AY8IHJ+zp/vfSBOoYR5AsFNEwk/g67nfRmjvcVuM5TRqen/l71Ccc7fBzJhg39sEQfyLg781YPbWlRmZvtoCmzxgKSDht9BEYC+NFifQVH2HIPBb3qpcDaQQ8ce9evjvWt7D+0v2vQI6L0aYqZcsAiB8fKKoHjiYI6xBSbNcm4GEwioQyn9auiTRUfuvPn3UaQFLPcJ7lLsl/QYnFq2ZUfosytKMeGPLQdglp/ynHVju0KNj59aUIgr+9BuFyBtXktpdM8jVWevyVGU9+/BlDlO+lic/hjT4dvpAJIcdblR/6GBwf3Wal9tim90Ft0whSRECXG1+9zLYMSusEmfy78GSyT7eGsgLKmHZEAU0EquOQIr0fRo5euRtNJ36hSaRBFIXrgQi0GJzxnhKMfT8Q00dScYOx4SkvPWrhQODKcaQTtt4reS2Byj1iTgRNCQFhb2Xje8JnWGq5NJ9FnLwtkGTm4ddNDjcGEHnWuaqBOinMvk4YmW4VjHktmaIIeAa69S3jHw/tPU1EncXdfEcx+zOqbG1EWdEq/YT1vowwTdD2D5h/o3aotG8VA1Yqx7EH48tJF/XOohBuukaht8PRWrDfFAnxewc5xqGbGi1g3/BrDm9Jx3qUUHK2BWo2QyEhLTO9tqFpp3MJHiXXdwIPlglvUOH3C6BliifCJSKvWp42Cbdw9jRX8FEd1GUhAOFr0tcFIf9SVSPywmB8uz5QxG0xd6rEH5AhsVxPYWofQTViwcmbspdAxKEzoKv2UiSwC+gOKvvjiEnjrPFbUnOxaR/TVIb6ZvkPQnXvShigB01OuWuCVaVrE11HJU95Y8TT5ilGtw6Fk1eOHitT65XtaTeFrtvSlzBB0YMrzFFqBMO0/87DHwLmVtlKeaYNfMcsnQHUlZC2HS6SkMyvCuVAUyoh4O68eb3+PA7QOYkMOiNnkIjLIdM4F9/mSVtcIvtFx3IHqDQJEL0AlKkbV+F6fXq82+sqVncdBV1YVZjEvWQ2+U24dTg9pKBC/e+EEqzwwjNKGW1HAq0YJOQKmb7mK4= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3c90bc9-e943-4232-98d4-08db4fdb7a8c X-MS-Exchange-CrossTenant-AuthSource: ME3P282MB3968.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2023 15:47:07.7958 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: ME4P282MB0856 X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Moody Liu via Libc-alpha From: Moody Liu Reply-To: Moody Liu Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" When dlopen is being called, efforts have been made to improve future lookup performance. This includes marking a search path as non-existent using `stat`. However, if the root directory is given as a search path, there exists a bug which erroneously marks it as non-existing. The bug is reproduced under the following sequence: 1. dlopen is called to open a shared library, with at least: 1) a dependency 'A.so' not directly under the '/' directory (e.g. /lib/A.so), and 2) another dependency 'B.so' resides in '/'. 2. for this bug to reproduce, 'A.so' should be searched *before* 'B.so'. 3. it first tries to find 'A.so' in /, (e.g. /A.so): - this will (obviously) fail, - since it's the first time we have seen the '/' directory, its 'status' is 'unknown'. 4. `buf[buflen - namelen - 1] = '\0'` is executed: - it intends to remove the leaf and its final slash, - because of the speciality of '/', its buflen == namelen + 1, - it erroneously clears the entire buffer. 6. it then calls 'stat' with the empty buffer: - which will result in an error. 7. so it marks '/' as 'nonexisting', future lookups will not consider this path. 8. while /B.so *does* exist, failure to look it up in the '/' directory leads to a 'cannot open shared object file' error. This patch fixes the bug by preventing 'buflen', an index to put '\0', from being set to 0, so that the root '/' is always kept. Relative search paths are always considered as 'existing' so this wont be affected. Suggested-by: Qixing ksyx Xue --- elf/dl-load.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/elf/dl-load.c b/elf/dl-load.c index fcb39a78d4..10757dd5a5 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -1865,7 +1865,11 @@ open_path (const char *name, size_t namelen, int mode, test whether there is any directory at all. */ struct __stat64_t64 st; - buf[buflen - namelen - 1] = '\0'; + /* We only have absolute paths go into this branch. + In the rare case where 'this_dir' is only a '/', we + must keep it. */ + buflen = MAX(buflen - namelen - 1, 1); + buf[buflen] = '\0'; if (__stat64_time64 (buf, &st) != 0 || ! S_ISDIR (st.st_mode)) From patchwork Tue May 9 22:56:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qixing ksyx Xue X-Patchwork-Id: 69021 X-Patchwork-Delegate: carlos@redhat.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7BB673856DCE for ; Tue, 9 May 2023 22:58:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7BB673856DCE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1683673093; bh=t6DfxNKM2mGI8GqjiGtiS2DxoGPJx47lNB98wM4GoJk=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=UXh2KjKVa2chUMFXl071wyqfgGahLyypLw4r/I8SEO3kuyv6pFc33A7GGrrYWg4hz w8iOobeDvba8z5GVxgPvR0hHRklTPvMeZ+MkKhDhxaHq9akvgYHS/owZLNc8R8zYrh zGWG/wR12740qYXMMBfEHBwma5+VCt24twFUuaes= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from AUS01-SY4-obe.outbound.protection.outlook.com (mail-sy4aus01olkn2185.outbound.protection.outlook.com [40.92.62.185]) by sourceware.org (Postfix) with ESMTPS id 7C349385773E for ; Tue, 9 May 2023 22:57:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7C349385773E ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lawnVB9YoGEJnqo3VB+AQlYLK4RINXH8CSw6Gk0qomENKxfmdoiqBNJr5n9l3IhQILTVnPBeUAiqKrvBHTT7NgDldhn8hzPZizTo1n74jsbgI8pQ3WtAhSLdabcZn/ssc66mISdqZCwQimtDTbz2O/Zzdq9PQfaSQOwDXU7lOrpVcB/cMtBlV8MWB9WmTvbZFzUkJScvfJVdHR2w9K/Jwh4SqGIgS5Vn+/vqsD6y1/BJ4KVrcHndHNqK/LUeygPhGbURHGuPyhSqQZEFmPhejxdDtcyOCYB5OEC/QQe/G9MNZ/CYQWDd13yftWNZBnK+HHJbDHA3Fvul60HSupKGMQ== 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=t6DfxNKM2mGI8GqjiGtiS2DxoGPJx47lNB98wM4GoJk=; b=LeGB/RSkQmLruYBjU9UIQ3IRIJqveE+avyydxCYi8VI5J01dLJv55LjzvaRTVY2j44KClA09DJZUgX5u/FEDei5tn9PL0v+9vfKYpsyTTRhDChWY8JODDoHv7RLtXk8L6ejP/V58Cz7nrqGyEOSPcwKQvu8n2wPMkfhneJlsz87Jk6K8oXlQ7niml/D3nYp342Y1fy42MGxgU49A2o4+2R3agiXD4gULhVrDq3zn3GuqcD4ahIt8KlPim80tAaOwm9GzFFrMHJhUj0KtRJdvFBAT//mM8zqJUlCN3gY5Eh2P2Ru1XnoyuO2PfJMFUAheCJK4pZbwaJ4rvdfCjzzXeg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from ME2P282MB2242.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:eb::14) by SYYP282MB1520.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:7c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33; Tue, 9 May 2023 22:57:46 +0000 Received: from ME2P282MB2242.AUSP282.PROD.OUTLOOK.COM ([fe80::e7b2:ce6a:695e:ef76]) by ME2P282MB2242.AUSP282.PROD.OUTLOOK.COM ([fe80::e7b2:ce6a:695e:ef76%6]) with mapi id 15.20.6387.018; Tue, 9 May 2023 22:57:45 +0000 To: libc-alpha@sourceware.org, carlos@redhat.com Cc: mooodyhunter@outlook.com, Qixing ksyx Xue Subject: [PATCH v2 2/2] elf: Add test for finding libraries in root dir Date: Tue, 9 May 2023 18:56:14 -0400 Message-ID: X-Mailer: git-send-email 2.22.0.windows.1 In-Reply-To: References: X-TMN: [PR4gy+5Uz0xZFp2AVdoLuhvF4KsE50a3] X-ClientProxiedBy: MN2PR07CA0004.namprd07.prod.outlook.com (2603:10b6:208:1a0::14) To ME2P282MB2242.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:eb::14) X-Microsoft-Original-Message-ID: <20230509225614.827-2-qixingxue@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: ME2P282MB2242:EE_|SYYP282MB1520:EE_ X-MS-Office365-Filtering-Correlation-Id: 409f3d8c-a3a8-47bf-e0b7-08db50e0cd98 X-MS-Exchange-SLBlob-MailProps: V85gaVfRD4/Z1yi1iwa1L/v5eJhueEO5tLHRwsB4nNPbu0l4dTi9wdX8ZriqhThFr2OlWgFXJLn5J6giiKvDHOJT7DmmndPNUfXX1wVh8E7S1AKf2rwcAy4RJY3DHS9sQRVeLteFQ6socCkKoglKbK1TRxAOfHHB0YLjnAqht1uYOGYsjBjTyCKdQsn7aZ7Cw7YDTBnoZ1a1Y782Exgs12iWQoz0McMW8oT8fImGFN1s327mgt2lpcBFCp9tNcAshsaRfQr8A8vvkUyRD4AJipBkjz8ulS2lBxVB75vUQiczNz04O9A9fQIUdthG6lz7ZlrGzrgWM+wLqm2D4RH8vEx0VoOy8+cVp2EFs4VipxmZ0ZRcTYYeJ4NAxl8Uw83LOOznanq2mHF4LjLOfoYlNUuXhAUWJ1Tx3q9gBwYIZOTGlCIa4pukLxQSvSoCw2btxajiN2bZza/4lHQ1x8E76ScElBU+5JDPdYVmPFtdTot0++rpA/9X9JBMpXEeE6CL94hvKXNJoPornU+t/6K4X+Q/SM9CNpFRJVDvGS0coIwv8iu8Oo69ke66Uo52VrwjayWUDQ5D+IW9ZxlOyFu0SsCczBOnCpKDNx0t5fJDOoJgwKPU3USnyGjUtM/Sd+fvaJ4mO4RlTYNcsPzWM9jhwIXW/VERKkXV5VZPjKMzWn1/2j5Ym+DkcNa75z/Vj4K8RQ+Rn/TY5KmKm7ziXZS+RbrFcYcdNOyeHSj2YPRRacsUYd4KRRgI4ySo0BNWG9vrl7p5XyfcS0QpbVfWxq7CkXo6sNiBVu5KINsSZSW2eOoNQ8t5F7MG6fT0A1ipqVhB4kWiIKkZOdYpj1jVA3VgNg== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0pzJnc1wnlCyAGUpGcFl4pWNWO6WpvD4uyrIjmGNgdr3qAS/jtPIkzs/MvV5829nRr7CJs35IVMaN4ayvvKvxF0DXMGTnfvRD60DSkXLXImfMWrM4o+hDXFq8mcWtadv768FVULG4C9DQOnp3YDVjuO6a5O+VsB/1FBOBgaRjhs092yS6fLW7VCamnIOxdajF/G95K1Do9iExiNVetGpysmX/1LBokgSj3x2Jdqx/vEeiCnvATnWmZGq5wIz8uKork7kzVZw5w0Rmp3KGCAsXzelnC4GouXB/4bqAGgv0P07mgZLPS+GMjH8m1LjI/kdX8+Nx/vJsTDt8DkbpTnqbr/+p30qtlze4xufe6a6QmJ6PBbiL0u2azx4gvQBEmvzTsvMaTGHEyYBYQ6+KE6mdN0zoBICKtgtQuzh4Xmr/Z9AIXnLEBnprdNT4vuLMglOS2ld8bMfl9GccqpH0kb7uqWqX1LU9CW3fGzZfNVh1JCQhhwuLMKb/Al+vKcQNjsBIVNiaBk8rwldXRXhIASKScVFtyKMJWSGIO/NUf2xhIEr7+vW29uKGonHQ/LDdLyF8NOUOUb+y3mesKsa1NlWTbEK7smgmwkjQk7PmTqRP6g= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WlF7UzimOLAVvjJJAz1banHtk6SCGBXjdGSVzm76pL/0pj1LaJ2mZvaM1JPAJ/ASCddCraCEcOCCOJuutvJsHkeC2vqY7BGoFSZ3uJ1OjPChtO5/YimsTrVfNdkieNtioHFMNdSIIJ4WOKyXFn6HHmfgLBXCop6Nzmd6VIjt4TGVn08/ku5PGGc7DsY3DVl1IWOwd16n65MeJ2XefDUpc1UbFdPPLydyLE6icSCRtP9SbgT6+P3FEagdcWn6RMDvFTi4TDFbY+Krc01zDJOJfSuYeA3VM25cMrNjsdDB/spIxspuxoo2quXJcREW5LoffxTeG9vybIOMX1MflkQRbgutmsr1+zG19Rca40JplezRTixUNryIbtsxe+Y71Oce8E+n/zH3WUkaczjCMPndGHEeIJ+6OAcUn18DfY+PM0YMGRwj405590zygoslSLdu0UJcntHlShLzCinUIKmWyvA1GPMY//g7w4abebtZWeQPxtKIpSTGtFr5dSxDIzbh++J9kEIbqor/ve6y+ou1cCiPzoP+CSG/ewIChEquY44BKkpJZw0aSx1OnfBV3Yk9YpKUTgEcHQTJHxdF0XKsuJPhxfkW1TdrVOLZYL7CTGXj19bJVDJZyqvtlCqVHFtQ+F50IJ9kYX7k8FdCv5siPBiC28RW5ra5ljAkgXkUiGW4oGmvQL9LwKUpxiImLMQP/mi9/YdieQQl4+BhDNP2Oj9ivZD1ZfIgzrHZ5eVMyILttmE80a+W98qvfmIhPaNepkSH1ODRYXMsV/eFgakqbhaGOb+cW8AnRlZY3PF3p/d7/J0anry1rN5p/J4t4tDzSPh8F+4k20etqGE2Ef6rE9XgM6JlapB9bv6py3Py/6rWnw8WxA9fL7/fe4x6Kw9/KbkXApjYhxGZyWY7C62+EgMxIHslzor+GkW/Kiax2wv5v83m+URgKAhr8OCbr62SROqpkOtwJSiJS0fXTW/B2gwcQigT4epOFEN+wMPHwkFPnBcRL2p2N7xogB90PgPxW30baj3sLCV6s1qLN3c0qvKyd6xOkmqRGtUBLcwu1BmnP2LOfFWfVwx7Pm3rgrOBZYiI4e7T+VQV697JEgnpzvBwAOI720fFjZXaJREPPvwna5iNlk1dinyIAsQC2clBZblN1FQFMiR4xKHKVnApuAaoVMyTg2NxI0yzd03+YP1rdlBn+adTxqDSL2UWrft2JCGuIueIRC/dFhUmDgVcL3oojGmUN7S7I4KsvYvYrKE= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 409f3d8c-a3a8-47bf-e0b7-08db50e0cd98 X-MS-Exchange-CrossTenant-AuthSource: ME2P282MB2242.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2023 22:57:45.9244 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SYYP282MB1520 X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Qixing ksyx Xue via Libc-alpha From: Qixing ksyx Xue Reply-To: Qixing ksyx Xue Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Suggested-by: Carlos O'Donell Signed-off-by: Qixing ksyx Xue --- elf/Makefile | 3 +++ elf/tst-rootdir-lib.c | 23 +++++++++++++++++++ elf/tst-rootdir.c | 37 +++++++++++++++++++++++++++++++ elf/tst-rootdir.root/preclean.req | 0 elf/tst-rootdir.script | 1 + 5 files changed, 64 insertions(+) create mode 100644 elf/tst-rootdir-lib.c create mode 100644 elf/tst-rootdir.c create mode 100644 elf/tst-rootdir.root/preclean.req create mode 100644 elf/tst-rootdir.script diff --git a/elf/Makefile b/elf/Makefile index 396ec51424..ee81575cbb 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -325,6 +325,7 @@ static-dlopen-environment = \ LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx)dlfcn tst-tls9-static-ENV = $(static-dlopen-environment) tst-single_threaded-static-dlopen-ENV = $(static-dlopen-environment) +tst-rootdir-ENV = LD_LIBRARY_PATH=/ tests += \ argv0test \ @@ -506,6 +507,7 @@ tests-container += \ tst-dlopen-tlsmodid-container \ tst-pldd \ tst-preload-pthread-libc \ + tst-rootdir \ # tests-container test-srcs = \ @@ -854,6 +856,7 @@ modules-names += \ tst-relsort1mod1 \ tst-relsort1mod2 \ tst-ro-dynamic-mod \ + tst-rootdir-lib \ tst-single_threaded-mod1 \ tst-single_threaded-mod2 \ tst-single_threaded-mod3 \ diff --git a/elf/tst-rootdir-lib.c b/elf/tst-rootdir-lib.c new file mode 100644 index 0000000000..22b7bdad70 --- /dev/null +++ b/elf/tst-rootdir-lib.c @@ -0,0 +1,23 @@ +/* Simple library for testing locating library in root directories. + Copyright (C) 2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +const char * +test_func (void) +{ + return "Success"; +} diff --git a/elf/tst-rootdir.c b/elf/tst-rootdir.c new file mode 100644 index 0000000000..a31d4237af --- /dev/null +++ b/elf/tst-rootdir.c @@ -0,0 +1,37 @@ +/* Test code for locating libraries in root directories. + Copyright (C) 2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include +#include + +static int +do_test (void) +{ + void *handle = dlopen ("libtest.so", RTLD_LAZY); + TEST_VERIFY_EXIT (handle != NULL); + typedef const char *(test_func_t) (void); + test_func_t *func = dlsym (handle, "test_func"); + assert (func != NULL); + TEST_COMPARE_STRING (func (), "Success"); + dlclose (handle); + return 0; +} + +#include diff --git a/elf/tst-rootdir.root/preclean.req b/elf/tst-rootdir.root/preclean.req new file mode 100644 index 0000000000..e69de29bb2 diff --git a/elf/tst-rootdir.script b/elf/tst-rootdir.script new file mode 100644 index 0000000000..f852c0ec34 --- /dev/null +++ b/elf/tst-rootdir.script @@ -0,0 +1 @@ +cp $B/elf/tst-rootdir-lib.so /libtest.so