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, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 28743 invoked from network); 5 Nov 2023 14:17:34 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 5 Nov 2023 14:17:34 -0000 ARC-Seal: i=2; cv=pass; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1699193854; b=pBk405LxqpdgxdfD8ADusHpDAdTqUq6Y8AGi2mJg14THRJy2RQImkgZNcvK5GT05HuZYedt0MV Zlhp+duV+bEunBfgBFTs36iYe6txSnCcnj8QPoc4fHa48BSe34cT9LcQcw5JRsWyQxCd6k7cmv ffxOzDHMtb3ncpFHGErRSWRpz/fH2mhbb0RNJFcwZHuk0zGwbI4LYSznftlGlVwGQzJ0HvVrcY 6jGBo4UULhdCn/mHm2k0A5NBdC8jqTz7w8CYmbeO1a0iWppPCAJZNnWX7Qu33G6qRz9A1v4HUj LnQsZA9uOUJ0HvZCaQ/noe4CZKZh6kxTrVh9aI1+LtoAoQ==; ARC-Authentication-Results: i=2; zsh.org; iprev=pass (mail-bn8nam11on2100.outbound.protection.outlook.com) smtp.remote-ip=40.107.236.100; 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.236.100 ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1699193854; bh=SPK9OSzJ+8Ob2WqUUifGfuM7RSopjKcRFEgw9xCyrys=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:MIME-Version:In-Reply-To:References:To:Subject:From:Date: Message-ID:Content-Type:DKIM-Signature:DKIM-Signature; b=eSZJWli9hCVQkg34DZcXLxnThTzJMOZxZ6JM0WDNGtPFdS+CwsD9WEepq4iK6zBZyDiAJwhx2I N8jGtW/efUuVRJcNtj6p/sDQ8PHU5AY/4yGQAMLNxy6FfnXsMfUGwVnewpRyAhad5szwrSnupR U1KtF9WP+sXuG8bQDdNBsP9R89nVgUS9AHTbOqb62BGqQSOCWE1LNnk4OKPUibTkHW8pw1ZJuM Ap9O5TeKE9ak0pfivdNA7fU+wqx0ZkNOdWQ3ZZq1i+hSUd3UTkGhuGU8/lN60kQh0VHZIehSiD cRwo8jU3VcA51EdgRayNSd4p4EwtKSVMyfHABd5YJAWIxQ==; 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:In-Reply-To:References: To:Subject:From:Date:Message-ID:Content-Type:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=nVELgOh0/IHVEo/5rHwyI5XyGO3xrTxwb//j3ltf2r0=; b=Lat+0+xQ4Hm7bS4K9256wENIaV HjCHMSz7v32bOBgIGMNgMQtpt2Q3P5gb6xcvl9xJ4S8SqzL0BbOYD0422tzojSX5t94lXGuDrYRMD MmjoThao9GRX8I8vdJ9jcnOrpAAx8CDq0AMWW0wPXFEI6qGycQGPK2mLQsRUR+9T99yJtYEeClpOY GkIEdGJgkwupnkEZ6i6p46JN9uKmO049u+LbxaUj9KUsz/7qLrFeFBuIZd1FZ7uJbK8DPMn9v5Inp zUZcfSrLBGVE4ln4vkyYfV/Jqo+fKylqzOZXs/D3iRN0O5SXLzlkHEh3R6fMDF3QCXmfngH/R7lvm RNrBWFTg==; Received: by zero.zsh.org with local id 1qzdwR-000DEj-0I; Sun, 05 Nov 2023 14:17:31 +0000 Authentication-Results: zsh.org; iprev=pass (mail-bn8nam11on2100.outbound.protection.outlook.com) smtp.remote-ip=40.107.236.100; 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.236.100 Received: from mail-bn8nam11on2100.outbound.protection.outlook.com ([40.107.236.100]:38625 helo=NAM11-BN8-obe.outbound.protection.outlook.com) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1qzdvo-000Cv2-RA; Sun, 05 Nov 2023 14:16:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f6rjJmvxAlI3ICuZlNwaIfDdxRj0W6KG5znkfct0ewSVK75qieqgG2+sXOVpvreOznAJ1bn3Puar7FIOW0JgymFJMNrq+sc9JrITwrvnDuGqJXHXfXVwm95joVIkXupbJj4q8I0cCtdQrWjjMEw4AQPXMytO4oieqA74kW4oQHNcuD39BG16neUEbweAjLdtGht661FYRrFODWUYDbW9d4FCeNwGy6o45iNwXmQZCvNpxvBefBLJ5tSoEZnpGe36KcOxVa9fgrLOpVXUmIBEcqd4ti4EDw3EmvM5Bd+MAhxoSlMUZ/lIKU7yjXMHWSwo4Vl4b/Y2rT6jNIw6yLHqqw== 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=nVELgOh0/IHVEo/5rHwyI5XyGO3xrTxwb//j3ltf2r0=; b=hFzxvwzfPflxITiZuaPjqlukweMAKEBUTcDGKRC8tQM0iK1AY1Lu44OSiZj9NTL4dO8sX9c+nbg1tbOfRjpsvnwZfw3eSnFq14rbTMjI3gh2kEUCz3RdSqkGc7rnRS7JUbBDVniKtfG4kTAeSMw/zOgHzPbH0Km9pJF78uDs6qb6Vlys+CPXKpzUYPZC6S2kTshsSQKbMQgxQoBb53FqeKGwNKgcz/UPoj0i4JEB6YoH8v8332de9YAo2kXw69L7HYa4Uq829nJvJD3qizzp2NPIblnUhnATm98+L1TTmCdeO15SLsgdpSoUhrNrykYs62yCK0wgeD4oFs/RD4kt0Q== 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=nVELgOh0/IHVEo/5rHwyI5XyGO3xrTxwb//j3ltf2r0=; b=hLF4YcBxFCKN3849eF0B2b4k+PMnzp1/7edn/Bzc8ce8tuqP8LiY06/+7aNaUrhnOeZTl3uhhdj+nskgr4ih7fUL9C2KpogB+YsrSJEwY6ggeABp9ZACgFZAruziNfiTNzcd6pH77zo6E8v4ouIik+UC73hRz/85MtCAW+kgR+pI9B5Jk1m5cQoaBbJ5AP9UsoQ0INuOO4hiouD1g2hdTunYytUOfGP1c4/td9bi1L5uDdklUnQGc8vhJNdHCIlRY3gld6mhdRKuiBwB9919B8jSvKsx0OfuhFaYJzsH28vxmexg44hp2xe+k3eSePlGArVY3aQTMP80o5XpBMpJCA== 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 DM4PR02MB9030.namprd02.prod.outlook.com (2603:10b6:8:b8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.25; Sun, 5 Nov 2023 14:16:47 +0000 Received: from DM5PR02MB3799.namprd02.prod.outlook.com ([fe80::9c53:3fc6:2ee1:ef19]) by DM5PR02MB3799.namprd02.prod.outlook.com ([fe80::9c53:3fc6:2ee1:ef19%3]) with mapi id 15.20.6954.021; Sun, 5 Nov 2023 14:16:47 +0000 Content-Type: multipart/mixed; boundary="------------00ZqyWDvmDioqaQQdjYnRCd5" Message-ID: Date: Sun, 5 Nov 2023 09:16:40 -0500 User-Agent: Mozilla Thunderbird From: Kyle Laker Subject: Re: [PATCH] Re: `pwd -P` with systemd-homed causes inconsistent cwd state Content-Language: en-US To: zsh-workers@zsh.org References: <6f0cc0e8-665f-4c90-ba6e-6180ebcf9d60@laker.email> In-Reply-To: X-ClientProxiedBy: MN2PR15CA0020.namprd15.prod.outlook.com (2603:10b6:208:1b4::33) To DM5PR02MB3799.namprd02.prod.outlook.com (2603:10b6:4:b8::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR02MB3799:EE_|DM4PR02MB9030:EE_ X-MS-Office365-Filtering-Correlation-Id: 6f32b877-3bb6-41ee-2ca3-08dbde09d7d9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DZG4rVtetvME+8yZkyNacVMA8r8946+w0d6NScycZZeEDakzd0S89wsb4q7cRxj+ULecy5DC6hCTNL4E3T1SnNudAWYEinE08wJ+e8E3tL6t0BxMzEj8j0YRjILv7a+lc0AsozSXZmW6mGHdghKk8coNd+8sxWbYiH9pm08gjXad7KvJ6OfRcqLz/N2lsTqSXHnHMXZvvtQJdreX5XDg/67R4t8BWQs1RJYuzzbhZwP6fJiB5/Iy4GIHx6cc2xAWLQ+vIWrvva6wm3c7dznrsSpIe9vopC2JzGJGYFD+HJmkgTht/QLuezTZhUDuS4n2fws9logfirJT2801keVUQq5qab6ZltRjz+/IicQPHxT5DLnnvrU2BNYQ0euQoUNpdAgaWvhNhxOEaiPzKWpTAjd+rzKwZqYgOG1lXrDu4zVHhGrBHfT2EpaRABp6Iv09U4qs7RCRvS8T7CEv1hkZqeRUslvlf98187x7Nf4StdUieuDzsievMgFs63OfDpKwXGFrMC3lCRqEqdjVJxUqh1oslVYCkhdE7xlCy9S689rPmK0BX5jfKR7fPlsRCnKwqsfU0pKFADgPRCQpNIxI5eIpcahxPElqFUw13TaePeOthjVof2KdSwsOAw+krv349d2xRWo3wcX7pB8I3Z5DoNmhWXS805v+FAAQuAE5gokc8uRK9/+f11f94xgjSRjb 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)(376002)(396003)(346002)(366004)(39830400003)(136003)(230922051799003)(451199024)(64100799003)(186009)(1800799009)(21480400003)(42882007)(33964004)(6666004)(6506007)(2616005)(6512007)(83380400001)(5660300002)(41300700001)(8676002)(235185007)(8936002)(2906002)(6486002)(478600001)(6916009)(66556008)(66946007)(66476007)(316002)(31696002)(38100700002)(83170400001)(31686004)(81973001)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VklyV3ZoT3o0NDFhR1RZNDhkT3g2aGxJNUI2eTl0TStsRmhxKyt4L0dZVDYw?= =?utf-8?B?MVI2eUVkZGdCWGpQY3hPbm5VODRTMjViKzV1aUJ1YVRBcFR1QlhxUy9obktp?= =?utf-8?B?Ny9aSXIzK25vaHYxZmsrdWJSOFVaS3V4MmcxWmhxVHloL0tvNDhGVmxiMmRm?= =?utf-8?B?b3ZyR2lGeDZzZHZsNERRbVFQcWRYU2RmOHNnclNldzltVksvYWhLSmJtcXpT?= =?utf-8?B?dUxTSGtRVU1VMU1WY0lXSnVUeEFlYTBMYi9CNlBqN1ZRbGNLUTExWmdYSHVK?= =?utf-8?B?U1paZDhPR3NzOWtKUmd2VU1yR2wwcmxQdHZzcmVtZ1ByMnQ4R3F5ZjRMa1Jw?= =?utf-8?B?SGI2SHdqeGdoTWEzQkY1M3FvM1lPUDlpOUo5ckdGVXo3RVFWd1hvY0xYdHlJ?= =?utf-8?B?L1phNDlVUHBVU0NReTBodnA1aGZKSjlBL0ZzczlQcEV3dTlFR3dNRWJQaGJZ?= =?utf-8?B?Tyt2THVtNWZxY0hibEMzUVRKeiswN1pkZUVOaUE2aVR2WHZjSldwQXVGRlV6?= =?utf-8?B?MTNLZU1lYXBzWkZEWU9wN2hyUSt1TENEclB2TjkxVTU4S0tkU1lTNVdpYUNi?= =?utf-8?B?K1FOV1NCSEdUMlBUT3o3YzlHSFR4YXdqZTB2OXpDL0pjRFI3UllqS1M2R0Nq?= =?utf-8?B?eFlSQWpJa0tvNzlYdGZBRTV3VnFDbjBiZ2VUVnBJSk41WDNZaWlicGZ3Tmts?= =?utf-8?B?Q005eTJnZSsva1h3b2hjMHFGTXgzY1llVHlpbmY1eENYNHFPcEE2MXVHQ3Bp?= =?utf-8?B?bkJMYkVmNjNSQURCUXNSeEt5NnlhckFvRDI3cEVISzlDcmRraStMYzQ5SlJH?= =?utf-8?B?NmVQQzhGbTJ1TE5YaG5POFpEQmFjQy8xSUk5VHJMZCtXdGZQM1hJZGZSZ3lq?= =?utf-8?B?cUgwWHcvdEJhTTFuMlUreU82U1dWeGNNTFdpTEM0RDRJci9zUFY4WWw1NzJO?= =?utf-8?B?aktHYnQwK2Z2Wkk3NUg3bCtNQjlKK09nQ0xlVUNqT1c3UElyL3JweE5JcVRN?= =?utf-8?B?MFhGQ0hiQjNKRDYvVHp2Nkh2aVkxQVRMZXczMkhVeGRXVTlmRDhBcDRMTG5u?= =?utf-8?B?eTl0YmVEcENpZGNqeUVpNEZlbEFtRTZ0R2E5S1B5bmtTRGpSSVg1ZmduRHFZ?= =?utf-8?B?KzVOdVlXbm1XZHgyb1pIVnFIQWYwUnVlL056V2x2MklObHBFSDRycXZWV0Zn?= =?utf-8?B?Yk9wYmptT09reTVXSVI3aTQvSGRSZHgrd3Ztayt0OTRwMmNtcHVCMnZwRUJD?= =?utf-8?B?bXgxZlNxZ1ZvaDJYeUU3N0xjaUQvRklsUXJMbjdlMnVYbHlpdjRPWFVrOTFq?= =?utf-8?B?azZ3dGIxRW1hdCtiQXFQczdsdTIxMG5IRENYTURtNkI2YVRpK1p0WjB5aEVO?= =?utf-8?B?ZGhrKzBrNTh6U2Z4Z1Y5ZUR6SWp0YWoyODZ6VkhoU1FEUDYvZXlyWUs0bG80?= =?utf-8?B?MEh0NmIwSG13NG1SVmFPSk9tOGZJVjZkMVgwWGFlQ01zZnJ0WlFrVXd4ZnY3?= =?utf-8?B?dThEb2tvdkFpMFFSOS9BZGdOWDFZdGVzQkVmMDRpdi9pYVkveUEwQmcxclQw?= =?utf-8?B?R1BvTVBpelliaUkxR1E3Ui9VZHN0N1BTYVh6KzBqQ0FBVEd5NXRFUTN5ajYr?= =?utf-8?B?Vy8vV2NWTXpLdUhaMDZuMEZUays3V3hCSmNidFBsT0djeWh6enEya00wVjNW?= =?utf-8?B?aUM4YVdzRHNPVE9ISkJDdDBYOVJPYnQ5d2pqOWxMSzRXZkZIRHNSYjhySk9H?= =?utf-8?B?dTNycEVNdDZIdnNPWHY3OGVuK0tiNVNHVTNvRU1FTkJFY0hiNkVGVjZsNlpH?= =?utf-8?B?NzhxZUF0U1FieERtU2s3RXJhT3l0M1FqRlhHdG9UMlZoVmdvWENkSGlpcDFL?= =?utf-8?B?cFZuU2VLalZ3QVJ0Rnl1WlJVNXI0YlpudTJ3ZDd0Qjk3alNuOHNLZGpxaXdO?= =?utf-8?B?dnplT1dNdTJvd3U4Zmpac0JNdkowUjlFcmJVQlZKOWNFdVFKOEI4R1B5emEv?= =?utf-8?B?WVZyUFNGSUx6QTlZdjlXVlpPcWdBa1VSc1o3WlNCSkZhTFJybVg4NmdHNnht?= =?utf-8?B?V2haeTgrdk5oaVZQMGtvZDNaMmszdTBibGtUQzVmb2lTaDlsSEcxcFErTVhL?= =?utf-8?B?UHJ3VnJIM2s5eGs0WEZBd3huU2MwUXpQa1FXU3VKc01MV3hKSWdtTWlvbkRC?= =?utf-8?Q?QP+yXrwlY7JZyXlKi/ga4sCZMbbxj2ejl+z/M/nBEi8g?= X-OriginatorOrg: laker.email X-MS-Exchange-CrossTenant-Network-Message-Id: 6f32b877-3bb6-41ee-2ca3-08dbde09d7d9 X-MS-Exchange-CrossTenant-AuthSource: DM5PR02MB3799.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2023 14:16:46.2278 (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: 2sRtadUlgecVH0snFCU3lsj1qFkTzbi48lBA4ZaGygpBJYMp1cUjce+LNAqUdP5B+knunc8j/SpAfxGE7DDUBw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR02MB9030 X-Seq: 52273 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: --------------00ZqyWDvmDioqaQQdjYnRCd5 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/3/23 00:28, Bart Schaefer wrote:> Somehow getcwd() might bypass whatever restriction caused this to > fail? In all other cases we've chdir'd away from the current > directory and can't get back. I'm tempted to say we should just > delete that entire fallback, but then we never use getcwd() at all. If that fallback gets deleted, it seems like HAVE_GETCWD in its entirety isn't particularly useful anymore; this is the only `#ifdef` for it. It might simplify the logic a bit; if USE_GETCWD then do so, otherwise, rely on fallbacks (especially since zgetdir() itself may be calling getcwd()). > Maybe we should be checking errno (for what?) as well as ret before > falling back to getcwd()? Or maybe when USE_GETCWD, we should use it > preferentially, and zgetdir() should be the fallback? I think zgetdir() does use getcwd() preferentially when USE_GETCWD. It's awkwardly at the bottom of zgetdir(). When USE_GETCWD, all the internal pathwalking logic of zgetdir() is skipped. > Or maybe zgetdir() itself should USE_GETCWD there at line 364? That feels possibly the cleanest. That would allow removing all the calls to getcwd() from within zgetcwd() itself. I've attached a patch that builds on yours. Testing it in my use case, it correctly works when HAVE_GETCWD && USE_GETCWD (eagerly invokes getcwd()), HAVE_GETCWD && !USE_GETCWD (zgetdir() returns null and the pwd fallback in zgetcwd() is used), and !HAVE_GETCWD && !USE_GETCWD (same as when HAVE && !USE). The patch also removes `GETCWD_CALLS_MALLOC` because it was only used in that fallback case. Running `make check` for me still passes. --------------00ZqyWDvmDioqaQQdjYnRCd5 Content-Type: text/plain; charset=UTF-8; name="zgetdir-getcwd-reorder.txt" Content-Disposition: attachment; filename="zgetdir-getcwd-reorder.txt" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL1NyYy9jb21wYXQuYyBiL1NyYy9jb21wYXQuYwppbmRleCA4MTdiYjRhYWYu LjIzYWQ3MDNmNCAxMDA2NDQKLS0tIGEvU3JjL2NvbXBhdC5jCisrKyBiL1NyYy9jb21wYXQuYwpA QCAtMzU5LDkgKzM1OSw0MCBAQCB6Z2V0ZGlyKHN0cnVjdCBkaXJzYXYgKmQpCiAgICAgYnVmID0g emhhbGxvYyhidWZzaXogPSBQQVRIX01BWCsxKTsKICAgICBwb3MgPSBidWZzaXogLSAxOwogICAg IGJ1Zltwb3NdID0gJ1wwJzsKKyNpZiBkZWZpbmVkKFVTRV9HRVRDV0QpIHx8IGRlZmluZWQoX19D WUdXSU5fXykKKyAgICBpZiAoIWdldGN3ZChidWYsIGJ1ZnNpeikpIHsKKwlpZiAoZCkgeworCSAg ICByZXR1cm4gTlVMTDsKKwl9CisgICAgfSBlbHNlIHsKKwlpZiAoZCkgeworCSAgICByZXR1cm4g ZC0+ZGlybmFtZSA9IHp0cmR1cChidWYpOworCX0KKwlyZXR1cm4gYnVmOworICAgIH0KKyNlbHNl CiAgICAgc3RyY3B5KG5idWYsICIuLi8iKTsKICAgICBpZiAoc3RhdCgiLiIsICZzYnVmKSA8IDAp IHsKKwkvKgorCSAqIEZhbGxiYWNrIHRvIGdldGN3ZCgpIHNpbmNlIGl0IG1heSBiZSBhYmxlIHRv IG92ZXJjb21lCisJICogdGhlIGZhaWx1cmUgaW4gc3RhdCgpLiBXZSBoYXZlbid0IGNoYW5nZWQg ZGlyZWN0b3JpZXMKKwkgKiB0byB3YWxrIHRoZSBwYXRoIHlldCwgc28gdGhpcyBzaG91bGQgcmV0 dXJuIHRoZSBjdXJyZW50CisJICogZGlyZWN0b3J5LgorCSAqLworI2lmZGVmIEhBVkVfR0VUQ1dE CisJaWYgKCFnZXRjd2QoYnVmLCBidWZzaXopKSB7CisJICAgIGlmIChkKSB7CisJCXJldHVybiBO VUxMOworCSAgICB9CisJfSBlbHNlIHsKKwkgICAgaWYgKGQpIHsKKwkJcmV0dXJuIGQtPmRpcm5h bWUgPSB6dHJkdXAoYnVmKTsKKwkgICAgfQorCSAgICByZXR1cm4gYnVmOworCX0KKyNlbHNlCiAJ cmV0dXJuIE5VTEw7CisjZW5kaWYKICAgICB9CiAKICAgICAvKiBSZWNvcmQgdGhlIGluaXRpYWwg aW5vZGUgYW5kIGRldmljZSAqLwpAQCAtMzY5LDcgKzQwMCw2IEBAIHpnZXRkaXIoc3RydWN0IGRp cnNhdiAqZCkKICAgICBwZGV2ID0gc2J1Zi5zdF9kZXY7CiAgICAgaWYgKGQpCiAJZC0+aW5vID0g cGlubywgZC0+ZGV2ID0gcGRldjsKLSNpZiAhZGVmaW5lZChfX0NZR1dJTl9fKSAmJiAhZGVmaW5l ZChVU0VfR0VUQ1dEKQogI2lmZGVmIEhBVkVfRkNIRElSCiAgICAgZWxzZQogI2VuZGlmCkBAIC00 MDMsMTIgKzQzMywyNSBAQCB6Z2V0ZGlyKHN0cnVjdCBkaXJzYXYgKmQpCiAJCWJ1ZlstLXBvc10g PSAnLyc7CiAJICAgIGlmIChkKSB7CiAjaWZuZGVmIEhBVkVfRkNIRElSCi0JCXpjaGRpcihidWYg KyBwb3MpOworCQlpZiAoemNoZGlyKGJ1ZiArIHBvcykgPCAwKSB7CisJCSAgICAvKgorCQkgICAg ICogVGhlIHJlYXNvbiBmb3IgYWxsIHRoaXMgY2hkaXItaW5nIGlzIHRvIGdldCB0aGUKKwkJICAg ICAqIGFic29sdXRlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LCBzbyBpZiB3ZQorCQkg ICAgICogY2Fubm90IGNoZGlyIHRvIHRoYXQgbmFtZSB3ZSBoYXZlIHRvIGFzc3VtZSBvdXIKKwkJ ICAgICAqIGRpcmVjdG9yeSBpcyBsb3N0LiAgU2VlICJzb21ldGhpbmcgYmFkIiBiZWxvdy4KKwkJ ICAgICAqLworCQkgICAgbm9ob2xkaW50cigpOworCQkgICAgcmV0dXJuIE5VTEw7CisJCX0KIAkJ bm9ob2xkaW50cigpOwogI2VuZGlmCiAJCXJldHVybiBkLT5kaXJuYW1lID0genRyZHVwKGJ1ZiAr IHBvcyk7CiAJICAgIH0KLQkgICAgemNoZGlyKGJ1ZiArIHBvcyk7CisJICAgIGlmICh6Y2hkaXIo YnVmICsgcG9zKSA8IDApIHsKKwkJLyogQ3VycmVudCBkaXJlY3RvcnkgbG9zdCAqLworCQlub2hv bGRpbnRyKCk7CisJCXJldHVybiBOVUxMOworCSAgICB9CiAJICAgIG5vaG9sZGludHIoKTsKIAkg ICAgcmV0dXJuIGJ1ZiArIHBvczsKIAl9CkBAIC00NzcsMjggKzUyMCwyMyBAQCB6Z2V0ZGlyKHN0 cnVjdCBkaXJzYXYgKmQpCiAgICAgaWYgKGQpIHsKICNpZm5kZWYgSEFWRV9GQ0hESVIKIAlpZiAo YnVmW3Bvc10pCi0JICAgIHpjaGRpcihidWYgKyBwb3MgKyAxKTsKKwkgICAgaWYgKHpjaGRpcihi dWYgKyBwb3MgKyAxKSA8IDApIHsKKwkJLyogQ3VycmVudCBkaXJlY3RvcnkgbG9zdCAqLworCQlu b2hvbGRpbnRyKCk7CisJCXJldHVybiBOVUxMOworCSAgICB9CiAJbm9ob2xkaW50cigpOwogI2Vu ZGlmCiAJcmV0dXJuIE5VTEw7CiAgICAgfQogCiAgICAgaWYgKGJ1Zltwb3NdKQotCXpjaGRpcihi dWYgKyBwb3MgKyAxKTsKLSAgICBub2hvbGRpbnRyKCk7Ci0KLSNlbHNlICAvKiBfX0NZR1dJTl9f LCBVU0VfR0VUQ1dEIGNhc2VzICovCi0KLSAgICBpZiAoIWdldGN3ZChidWYsIGJ1ZnNpeikpIHsK LQlpZiAoZCkgeworCWlmICh6Y2hkaXIoYnVmICsgcG9zICsgMSkgPCAwKSB7CisJICAgIC8qIEN1 cnJlbnQgZGlyZWN0b3J5IGxvc3QgKi8KKwkgICAgbm9ob2xkaW50cigpOwogCSAgICByZXR1cm4g TlVMTDsKIAl9Ci0gICAgfSBlbHNlIHsKLQlpZiAoZCkgewotCSAgICByZXR1cm4gZC0+ZGlybmFt ZSA9IHp0cmR1cChidWYpOwotCX0KLQlyZXR1cm4gYnVmOwotICAgIH0KKyAgICBub2hvbGRpbnRy KCk7CiAjZW5kaWYKIAogICAgIC8qCkBAIC01MjYsMjUgKzU2NCwxMiBAQCBtb2RfZXhwb3J0IGNo YXIgKgogemdldGN3ZCh2b2lkKQogewogICAgIGNoYXIgKnJldCA9IHpnZXRkaXIoTlVMTCk7Ci0j aWZkZWYgSEFWRV9HRVRDV0QKLSAgICBpZiAoIXJldCkgewotI2lmZGVmIEdFVENXRF9DQUxMU19N QUxMT0MKLQljaGFyICpjd2QgPSBnZXRjd2QoTlVMTCwgMCk7Ci0JaWYgKGN3ZCkgewotCSAgICBy ZXQgPSBkdXBzdHJpbmcoY3dkKTsKLQkgICAgZnJlZShjd2QpOwotCX0KLSNlbHNlCi0JY2hhciAq Y3dkYnVmID0gemFsbG9jKFBBVEhfTUFYKzEpOwotCXJldCA9IGdldGN3ZChjd2RidWYsIFBBVEhf TUFYKTsKLQlpZiAocmV0KQotCSAgICByZXQgPSBkdXBzdHJpbmcocmV0KTsKLQl6ZnJlZShjd2Ri dWYsIFBBVEhfTUFYKzEpOwotI2VuZGlmIC8qIEdFVENXRF9DQUxMU19NQUxMT0MgKi8KLSAgICB9 Ci0jZW5kaWYgLyogSEFWRV9HRVRDV0QgKi8KICAgICBpZiAoIXJldCkKLQlyZXQgPSB1bm1ldGEo cHdkKTsKKwlpZiAoY2hkaXIocmV0ID0gdW5tZXRhKHB3ZCkpIDwgMCkgeworCSAgICB6d2Fybigi JWU6IGN1cnJlbnQgZGlyZWN0b3J5ICVzIGxvc3QsIHVzaW5nIC8iLAorCQkgIGVycm5vLCByZXQp OworCSAgICBjaGRpcihyZXQgPSBkdXBzdHJpbmcoIi8iKSk7CisJfQogICAgIGlmICghcmV0IHx8 ICpyZXQgPT0gJ1wwJykKIAlyZXQgPSBkdXBzdHJpbmcoIi4iKTsKICAgICByZXR1cm4gcmV0Owpk aWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IGM1MjYzMDM1ZS4u NWRkNmM3ODkyIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBA IC0yMDY4LDMxICsyMDY4LDYgQEAgaWYgdGVzdCB4JHpzaF9jdl91c2VfZ2V0Y3dkID0geHllczsg dGhlbgogICBBQ19ERUZJTkUoVVNFX0dFVENXRCkKIGZpCiAKLWRubCBHTlUgZ2V0Y3dkKCkgY2Fu IGFsbG9jYXRlIGFzIG11Y2ggc3BhY2UgYXMgbmVjZXNzYXJ5IGZvciBhCi1kbmwgZGlyZWN0b3J5 IG5hbWUsIHByZXZlbnRpbmcgZ3Vlc3NpbmcgZ2FtZXMuCi1BSF9URU1QTEFURShbR0VUQ1dEX0NB TExTX01BTExPQ10sCi1bRGVmaW5lIHRvIDEgaWYgZ2V0Y3dkKCkgY2FsbHMgbWFsbG9jIHRvIGFs bG9jYXRlIG1lbW9yeS5dKQotaWYgdGVzdCB4JGFjX2N2X2Z1bmNfZ2V0Y3dkID0geHllczsgdGhl bgotICBBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIGdldGN3ZCBjYWxscyBtYWxsb2MgdG8gYWxsb2Nh dGUgbWVtb3J5LAotICB6c2hfY3ZfZ2V0Y3dkX21hbGxvYywKLSAgW0FDX1JVTl9JRkVMU0UoW0FD X0xBTkdfU09VUkNFKFtbCi0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+ Ci1pbnQgbWFpbigpIHsKLSAgICBjaGFyIGJ1ZlsxMDI0XSwgKnB0cjEsICpwdHIyOwotICAgIHB0 cjEgPSBnZXRjd2QoYnVmLCAxMDI0KTsKLSAgICBwdHIyID0gZ2V0Y3dkKE5VTEwsIDApOwotICAg IGlmIChwdHIxICYmIHB0cjIgJiYgIXN0cmNtcChwdHIxLCBwdHIyKSkgewotICAgICAgcmV0dXJu IDA7Ci0gICAgfQotICAgIHJldHVybiAxOwotfQotXV0pXSxbenNoX2N2X2dldGN3ZF9tYWxsb2M9 eWVzXSxbenNoX2N2X2dldGN3ZF9tYWxsb2M9bm9dLFt6c2hfY3ZfZ2V0Y3dkX21hbGxvYz1ub10p XSkKLSAgaWYgdGVzdCB4JHpzaF9jdl9nZXRjd2RfbWFsbG9jID0geHllczsgdGhlbgotICAgIEFD X0RFRklORShHRVRDV0RfQ0FMTFNfTUFMTE9DKQotICBmaQotZmkKLQogZG5sIENIRUNLIEZPUiBz ZXRwcm9jdGl0bGUoKSBGT1Igam9icyAtWiAvIEFSR1YwCiBBSF9URU1QTEFURShbSEFWRV9TRVRQ Uk9DVElUTEVdLAogW0RlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gc3VwcG9ydHMgYHNldHByb2N0 aXRsZScgdG8gY2hhbmdlIHByb2Nlc3MgbmFtZV0pCg== --------------00ZqyWDvmDioqaQQdjYnRCd5--