From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 1817 invoked from network); 2 Nov 2023 02:54:47 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 2 Nov 2023 02:54:47 -0000 ARC-Seal: i=2; cv=pass; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1698893687; b=IxUJcQQUKYu/2V+IEskXbcZYoOpJPa3tqLVrO+sdWvatyND88nzYHqfdtvQL77bztVeXFgP+0N IzXZuxZ5xZ9UnfthrLQA+RUbO2oqLy6XLdiLKi+F+MhySHipMJBMQCA6C+jpWDWNdz1qsBDeof PrdZPkB5mUgVjkn5GrjhDEs6HQfeCzqeIobikIsO+DmjAa1M7poxS7PRO9159a8ZcckE791YMW VRRTI8jbFhQs5agruAwoXGBFGKcfJxi1Xxexg51Gs9KCz2uhhR2Ctv95AWk1eFlusxOOdgcFQZ uc6CYuAI43noCpir003aI4mxcZFJGMyupSlUvDwpM4tc/w==; ARC-Authentication-Results: i=2; zsh.org; iprev=pass (mail-dm6nam10on2090.outbound.protection.outlook.com) smtp.remote-ip=40.107.93.90; dkim=pass header.d=laker.email header.s=selector1 header.a=rsa-sha256; dmarc=pass header.from=laker.email; arc=pass (i=1) header.s=arcselector9901 arc.oldest-pass=1 smtp.remote-ip=40.107.93.90 ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1698893687; bh=Y4QQk/4VXPjYoeV5m7dQG0LETs6TIuBS+f9SwXxzDQ0=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:MIME-Version:Content-Transfer-Encoding:Content-Type: In-Reply-To:From:References:To:Subject:Date:Message-ID:DKIM-Signature: DKIM-Signature; b=UEeSuy7KCMg95xPLJPPoL2NUpfY+M6VYiuOHk6HoESa2hCGdgm0lNLPVwESI5NJ4s0OANbkVdY BywcFJ2J0+ezsHGeIiS0iQGbB6qzX16z9P/DgywKGxsBmCW3lyV2V1yeU5vQ7r41YWHuv2wJOc B3QTHbLmQPhvh+5B/Xy12NlUSfH36vyTLZ2CkFsztewk2ilqbqnzy9DB9/I+w2IWB4JvCd/sxn dy1IAz0+twf7muk5UwzqFlODMMUudrzLcKPlhe2ne4Oh2S1Uu3oBpiUWhnEGdBE96rYC/mJJyB x7iG4q7ICgg9IqL2tWIa5Qkop+CR9A8XoXONEQIQmxtefA==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:MIME-Version: Content-Transfer-Encoding:Content-Type:In-Reply-To:From:References:To:Subject :Date:Message-ID:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=whOYRLtR4zbnhj6pUDFNy0cN9GWnUTLkUMOK660lwVI=; b=Na+Z6lriW8dzOQy3CKDaWqS5jS Ws1jzIlw3WsSjicxdG261w1MAHgUwvy1Emgl6BphxzWx+OnUA1BJvQquJj7Sc0RTsFLGZUq6j40N1 iqoBzRI1LiQOMbG5mjuzSALQvj0RChozazhkKiUM91vJrNirffcyJBJ9KW96OEO5AbBDl3sNmG7gl zXEtm/pNXJtEonvovfLBEHfCFNpihBKr0jilpuwLVIh0N6Q/YkSl/q/dk7uOcK9+Lq+uYbi9ynB1o s+EhPnwEi6QUCWDSB3TE4mB/FAyh/635lABpBc1ZeejopqoblQ2pJbi1NT3SewDMo7bGwJmSKwv+q 9MdA7qmA==; Received: by zero.zsh.org with local id 1qyNr2-0009OO-FE; Thu, 02 Nov 2023 02:54:44 +0000 Authentication-Results: zsh.org; iprev=pass (mail-dm6nam10on2090.outbound.protection.outlook.com) smtp.remote-ip=40.107.93.90; dkim=pass header.d=laker.email header.s=selector1 header.a=rsa-sha256; dmarc=pass header.from=laker.email; arc=pass (i=1) header.s=arcselector9901 arc.oldest-pass=1 smtp.remote-ip=40.107.93.90 Received: from mail-dm6nam10on2090.outbound.protection.outlook.com ([40.107.93.90]:27072 helo=NAM10-DM6-obe.outbound.protection.outlook.com) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1qyNqh-00094p-6b; Thu, 02 Nov 2023 02:54:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ki5ArD4qJ9mJ8FeEPPdGD1atD85fQ7TQi9s0HRrVEKd9e2+qdRtoIr9S9FUSDWEaJTcYWD/BktZGfSXZctJpjmXoMYTJNGajw3r/0ulL/FpQyHkP7zdmpAuDt6Z0GltgrfbyTCdzIbEq6JtS0SodxLk2BP8KT4WKMU85yDGREXD2mSs06w4Q0VQgMRoFzgcytP6jeVQh/svWicZTNZECe9f0E3bTUhikPZSbV4f2ukmVMj5rIFFxuTFgYYBHLvFuLss7oDnNAN/L/kK7/CGIvItBFBelnJ8+riFkgld1cnxDMQGgbXpInE+OQNWkXy3FEJd4+U7nIFTzgV1V99uDyg== 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=whOYRLtR4zbnhj6pUDFNy0cN9GWnUTLkUMOK660lwVI=; b=i5T5s3roVSUHx6O67cZRRBNxniS5szgVF6c9xZWXdgokadpM2IJ9rizteHn8rRJ97xAB3DN4osnFLDtjja5+npIZi7KoBA7KP0GmfXVZmUYvcoCdrB+WfrTecj0GOfx1rJAcjGB9Ww3dHoUn5zh1qQQ3JqfdgO9vp21yNj0hfgoc/6eirsVLIyfLj8mA5IhDlxHMgiby652gUmvZINCOgAwxt5EYbMfFpHWoePmNBkxihW+7rtbLQ9evv12IP9Cael+MW1YYihJJUEmN9G2a6X6BsUDuJeGHuDPTkAXCRg1LaFVlrKWwBuSqlQ63gf9FuEb4O1eM3DvOXZIjTeySWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=kylelaker.com; dmarc=pass action=none header.from=laker.email; dkim=pass header.d=laker.email; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=laker.email; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=whOYRLtR4zbnhj6pUDFNy0cN9GWnUTLkUMOK660lwVI=; b=TPj1K3dHJVWD0uUqgOCtWSDB2wndVkdbJLhuClTvMakPCRGmJ3JGezwqoLNh95e2E+PsybkfGJd5oh2gftTtk72h1RPcojN+ig8waiVkPQi44xHRepIz6BPrNavAlir7FkyEONU5ryh+xFLnImYMmWudKYAnrGmsfIT+BUUqgtQMyt/CYJxtdP/ItseSZBoBOtxSueEPsMeROSeqXQdgv1GZw0de5/aD5PoDEBfSyQbSlp6G72pZduPRaT4TcOwxzBzNqrc5r/1c+HNolM5VFcSpLFo2YOKIyNagTpZqGCfiAvzGKHd5PenjuskPdb5j4A1sf1o2j75yuKzZayEiww== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=laker.email; Received: from DM5PR02MB3799.namprd02.prod.outlook.com (2603:10b6:4:b8::13) by BN0PR02MB7936.namprd02.prod.outlook.com (2603:10b6:408:166::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:54:17 +0000 Received: from DM5PR02MB3799.namprd02.prod.outlook.com ([fe80::fc21:f9e4:be70:de9b]) by DM5PR02MB3799.namprd02.prod.outlook.com ([fe80::fc21:f9e4:be70:de9b%3]) with mapi id 15.20.6907.028; Thu, 2 Nov 2023 02:54:16 +0000 Message-ID: <6f0cc0e8-665f-4c90-ba6e-6180ebcf9d60@laker.email> Date: Wed, 1 Nov 2023 22:54:14 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] Re: `pwd -P` with systemd-homed causes inconsistent cwd state Content-Language: en-US To: zsh-workers@zsh.org References: From: Kyle Laker In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: MN2PR19CA0024.namprd19.prod.outlook.com (2603:10b6:208:178::37) To DM5PR02MB3799.namprd02.prod.outlook.com (2603:10b6:4:b8::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR02MB3799:EE_|BN0PR02MB7936:EE_ X-MS-Office365-Filtering-Correlation-Id: 267fbbc0-551a-409b-8b42-08dbdb4f005e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: amEWg7FVnvhLGpFerb5Hr0H8UZ3rwUQEvPhT1aPrIvni2CXj7v33Kehk7yWHbVognXyI89nAiKyVt7VLCOe5F6PgRts0glrIE6F3NEKPKSMf94oFRi5mjbD/2riupAnZACcIG5rvPYweDP/xZ21Z/4Gj68i0Eo7X4Tu3/UCNpsjgZDgwBtDdXbdrtl+aIgtwYun4wFvMn72b0TbkM6Gdxjhs2nzyDIlEgZA+ynpe3qDhzXCiHbkHD0SGMs/D1+SjEkF/42vVz204IfyoXEuyCFVxzsQdbfa2I61DEi/VWi2+9o4V7zFRACZg+Jdtj3ouqcza1dksfnQCtp3HSae/I52SPIphcfSgLEGGlxtF8nx7ANQgl2BuHUXLHAwIarcMv4heYs6sGgUDtpomq6aynoBMbkjduFqUYpYYy58HBUJUtwGIK2L8ZHftlJAKEbwg+e5HmtMnPVX/61M+Uad8miTws7A/HRnjQ8sAsYWTWAQly0z9V33H8UX3eSktOD0PA+dRpg1XhgLAxXV1Uey6X5qhOwikaFiqfX7hLUBIK3y1pQg/bBoPaNqgjtMh9WhlS6vr8l1ZnKS7QZobGZrHfE+A96Kh9FqddUFcPHcbobwSFkcaBEd0m9DSGL9VcD/x59QTh+UKKV0r376xEyoP3eIUgEnxNUDRlEG2O9H0Xy0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR02MB3799.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(136003)(39830400003)(376002)(346002)(230922051799003)(1800799009)(64100799003)(451199024)(186009)(6486002)(8936002)(8676002)(478600001)(31696002)(41300700001)(5660300002)(2906002)(31686004)(6916009)(316002)(66946007)(66556008)(66476007)(66899024)(42882007)(53546011)(83170400001)(38100700002)(83380400001)(2616005)(6506007)(6512007)(81973001)(43740500002)(45980500001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cS9rci96S1B3YnNBYjBBYW9JQllodFFtLzIwTUpqNERsbmduZm9VOEtYdkp1?= =?utf-8?B?RGhyQ3VjRjN2dGR2cjhqTGJPNG5Va3FlVHU1NlNqTVBKazAyTnBiUWhtakxZ?= =?utf-8?B?SksvZzNCMU1sNzBoRTVEQk1yRlJpTXVPVGVnd01uNW85WkdzYUNyTGc2b3oy?= =?utf-8?B?amlOdVd6YnVrWlF1UHh1R1JRZ1E0Q0RTdkw3aXZjUWFvQy8rWmIyNmtWOXpI?= =?utf-8?B?alRKTzVUbTByRTB0UnA0YW1ha0FkdGtGU3pobktQNWx3Y3pySjNhcGQybWVz?= =?utf-8?B?dlFXcllDZjZnT3ZmOENSSGVwRGI1THJZMmVSaWg3TFlZNTlCdVRjVTFUQUFS?= =?utf-8?B?U1NwQ0ZqM2phZ05DaWVQN2t4a1ZFajlEd1FVWlA5VFJaQktUMndLNkY3YVZM?= =?utf-8?B?cXIwU2Nuc3lKZlViMmwxd3VhTXQ3QkI0VTh5ZGRYSDkwQ0d2OW1FaGl1VlVR?= =?utf-8?B?NVV5QjhQT2UrNEZzSy9TU0hwZ25oSnVoa3pzYXVXa29ZeWo1bzhIOTdJY05i?= =?utf-8?B?OUVRWFdjL3JTd1V2UFlXeDBXcUxBZTJvSFNFb3dkUlVCMkdacnVZNTBwRFl6?= =?utf-8?B?OWNIR0g1VGJ5VU5ua2hqOGlSNjJGejN1d2tZNlBJTUJzcFlSbmczMGRjNHZZ?= =?utf-8?B?KyttbnVvREtyaWluWjVtbTI2V1JjbWVRMFowVUpMdFFVODgyYk9HUnRZUCtQ?= =?utf-8?B?QXZYRDVWM3NxTEZaRUswTUFySGREU0xNQ3FJb1I0WTBHT3FHY3hST0Q4MWFW?= =?utf-8?B?aWo2RFdnNSthZUxEbEc2NXVyUG1EdjFzd3dTZEU0SjR4dGMrT1kzU1U2a2lS?= =?utf-8?B?VFNQTG9DWSs4bUpkTUpZNEZqaTM3Yi9GUUhQTmJhWVVTQkNQb3EvRlc0Q2lK?= =?utf-8?B?bG0ySExDT1ZkWXdPcHI1OWhKWDlXalhXYVQ4Mms5dE9JS3hVRTZxVW1FM1ZN?= =?utf-8?B?cWR5alRNNllaZWd1b01kNGNVdFFWVHdaM2RkUlRMZ3NWY2tKaEx1RzZxa202?= =?utf-8?B?dFBYK1B2NWtDYUkwV3d3T0Z4UXFPZVlueE03Y3dRK2paWGpDbHBFRDNFai9u?= =?utf-8?B?QU1oTDVYOVUzWnpSNFFsRlNNclpMVnJJbjVGOXloMEJqK3NHVHlnd0xSeFNU?= =?utf-8?B?VWU1UTh5NTYrRUIvTCtNcHZDNndoNVlEd2FHQ3FiYkEvbFM0RUNhc2xtMkZu?= =?utf-8?B?bS9PSGRoeTJlRmRnbmJ1V0I1ZFZNYXN6TmRROGV6WVpYNFpQN0N0RFFEc1JC?= =?utf-8?B?cDQycDZ0cEpxVFVNZlIyYU1teTlpWGYrYnZJMGJDQjY1ZVV0eDRtWjVDY3kw?= =?utf-8?B?Yk9YaU5ZZVRaS2FTalI3V29xR2VmQlFmVk5jRC9DSmJDMWZOM29rcXRCanhM?= =?utf-8?B?d2hBQWVpK1RTT3E0M1dVR25BeDU4akpwR2Q3TTNRZWpDTDZTMktKZmFMMUxu?= =?utf-8?B?WmFkM3NmRTFlN2wwV0Jaays0NGtKbElOa0JZOG5RYTI2WWk2R2xnZktyd0NZ?= =?utf-8?B?SDhISWd4aUNROUo4RDgycTF5Z0NmeExob1cxa2NWb2RWYmxJWjhWWmR4SGZN?= =?utf-8?B?U2QxSmlXWFhJZGdtZUlTQ0E0dmpzSUNvQ09zUEc3bWtMWWFDZDJqK3VQNUY5?= =?utf-8?B?RWY1NEc2aXZYN2pGRXI0Z2dDbmMxZHNYc0JlSlIxaTFTVVdnZGpCMmt0WG4x?= =?utf-8?B?MVJQTFRkZ2tiK3FDWkpxSzI5WjdJSmIwMmJkRkJiWUtFVUNpQTIyb3BmYTFE?= =?utf-8?B?OHo3RkY3aUU1MWlCM08wQUV2Uk1BS2tBVzh5ZmdiYkNVbDhZZnltOXBBOXFH?= =?utf-8?B?ZUYvSXdYYkQ4Tjh3QnRBQ1VSMzNpMjY0bUo1RWRHMnl5WDVvNTRwUnB3U1BL?= =?utf-8?B?elRyYWRIZVcvc3c1bXBJTjF0cUxvZ3c1WjU3TlVGZFRDeTBmeTY1cWl5SndN?= =?utf-8?B?S3liR3M5OUdtMmdrY1lOdVVMVExmYUhlN0xtZGIxWGZXYUZJN00zWEtFVkpC?= =?utf-8?B?dStZVGc2MXQ1ZzYyMXBkUFordkM1UUowbTFMN0dPNFNTTEV4M1hUVkVTQ05B?= =?utf-8?B?bDkyb2Z5MjFFbDRDYmJwSVFCQmQxYStKeXhFcVMyV2NIQ2R1bEF1RTlSTUhv?= =?utf-8?B?aDJDRFhZTTc2MEN4OUxJREwrRWp6L3BFbEVRTzBkQ1poZVlmb3h1bTBKYjJr?= =?utf-8?Q?NeNvHGAnc+kXbEuiEjnOEBD0kh/hiyqUytcRzjCMgfkC?= X-OriginatorOrg: laker.email X-MS-Exchange-CrossTenant-Network-Message-Id: 267fbbc0-551a-409b-8b42-08dbdb4f005e X-MS-Exchange-CrossTenant-AuthSource: DM5PR02MB3799.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:54:15.9667 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 854dc525-80b0-472c-9b06-c984ca44e27b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: inywv0HJ7nXqFR23n9RWB0fm6V0KTUqHBsXwCGPGh+d9GhxvAEpDxwQjwI/uzB7mYo+G838O2FsxJXpFsNSHfg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR02MB7936 X-Seq: 52267 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: On 10/30/23 23:46, Bart Schaefer wrote: > On Sun, Oct 22, 2023 at 11:59 AM Bart Schaefer > wrote: >> >> So this reaches the "return NULL" at the end of zgetdir(), after >> the comment "Something bad happened." ? >> Or conversely this is a consequence of zgetdir() not checking the >> return value from zchdir(), which it doesn't in a couple of >> places? This is caused by not checking the return value. zgetdir() is returning `buf + pos` so the error handling logic for `!ret` in zgetcwd() isn't hit. > Lacking a response to this and unable to test this directly, I offer > the following patch, which attempts to cover all those cases. Sorry for the delay. This patch does ensure that zgetdir() returns NULL when the current working directory is clobbered. So it does fix that part of the issue. > I forced HAVE_GETCWD to be false and ran make check with no issues. It seems like this does in fact fix the case where _both_ HAVE_GETCWD and USE_GETCWD are false; however, in 5.9, even if HAVE_GETCWD is true, USE_GETCWD is false (and this same setup can be induced on master where the same behavior happens). In that case, the new error handling is never hit because after zgetdir() now returns NULL, getcwd() is called as a fallback (which sets ret so the subsequent logic to use pwd isnt hit). But because at that point cwd has been lost by zgetdir()/zchdir(), calling getcwd() just returns "/" so the value isn't useful. `pwd -P` will print "/" but no error message. With this patch so long as HAVE_GETCWD == USE_GETCWD it seems like things work as expected; however, if USE is false and HAVE is true, there are still issues with losing the working directory without printing the error message.