From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from conssluserg-05.nifty.com (conssluserg-05.nifty.com [210.131.2.90]) by sourceware.org (Postfix) with ESMTPS id 2B10D385C40F for ; Tue, 21 Sep 2021 15:36:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2B10D385C40F Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=nifty.ne.jp Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=nifty.ne.jp Received: from Express5800-S70 (z221123.dynamic.ppp.asahi-net.or.jp [110.4.221.123]) (authenticated) by conssluserg-05.nifty.com with ESMTP id 18LFa9JZ031581 for ; Wed, 22 Sep 2021 00:36:10 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-05.nifty.com 18LFa9JZ031581 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.ne.jp; s=dec2015msa; t=1632238570; bh=CSJa5EBpSDGzFpAWg7yfy6rYZ2hoTrsz4D43pXOjR0U=; h=Date:From:To:Subject:In-Reply-To:References:From; b=B7CvQTNtkhXi05cgCBpUInFYa6/7fruLSIfsgtg2fWXaXtDpgd8Q19/cQljwN+O58 lAZIi1EB6S4CVcutsGem77pO15TPZey4r1YC2oiLZtWyghFuYsZWNfBaLyfEttxTmb BZHVHd70I1IPfms01hG+5dE9nxBonb7diWzftZ5aVWAgHWuf4mA1DczcVHRD9dHwoO tIovvYu9bSZTwQ2ow5bWYrnuU4BplvdUoaE2adplA4WDpimfAi6m7qGZngDddlTGlY wreo8p8NNAqHiYAK7fRCopCR1HjLJvXMVVAO4LoDJAdDVAeHjeG5TDc4kD0F3be2CL UABr91XmHp1ww== X-Nifty-SrcIP: [110.4.221.123] Date: Wed, 22 Sep 2021 00:36:14 +0900 From: Takashi Yano To: cygwin-developers@cygwin.com Subject: Re: cygrunsrv + sshd + rsync = 20 times too slow -- throttled? Message-Id: <20210922003614.3a39a2e91632a58105a99fde@nifty.ne.jp> In-Reply-To: <682e0f1f-7a5e-be88-6f96-32284423bc94@cornell.edu> References: <20210907122631.65452be8d021ec72259431d5@nifty.ne.jp> <33386baf-3b2d-d57f-2ad3-1bd328ed7935@cornell.edu> <20210911075734.aaf37697ba7db2ad14d911a3@nifty.ne.jp> <20210911113517.f74fc3ac1971bbf04c7a9bd1@nifty.ne.jp> <20210920215229.cea5722b2c2fcd7e03917108@nifty.ne.jp> <00f4eca0-2b38-f4bb-98f2-e99e7ee941f5@cornell.edu> <20210921062737.13448347e0fc28a9a3dae38c@nifty.ne.jp> <2bdbd4bd-a9fd-ee74-58c5-0e102da111e9@cornell.edu> <20210921071652.a7885fa2d5f89db844ed1119@nifty.ne.jp> <61adb3e0-9ef5-50ee-d422-6ee718d633c8@cornell.edu> <20210921082230.4e7f2421c729c0f74b4a8cfe@nifty.ne.jp> <20210921173035.d3f61cb132b7dab80fed352c@nifty.ne.jp> <682e0f1f-7a5e-be88-6f96-32284423bc94@cornell.edu> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Wed__22_Sep_2021_00_36_14_+0900_mFfS5X2LHwn94Mb0" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: cygwin-developers@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component developers mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Sep 2021 15:36:38 -0000 This is a multi-part message in MIME format. --Multipart=_Wed__22_Sep_2021_00_36_14_+0900_mFfS5X2LHwn94Mb0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 21 Sep 2021 09:31:45 -0400 Ken Brown wrote: > On 9/21/2021 4:30 AM, Takashi Yano wrote: > > On Mon, 20 Sep 2021 17:39:54 -0400 > > Ken Brown wrote: > >> I'll push it tomorrow unless you find something that needs to be changed before > >> then. > > > > * Add name check when cached information is used. > > * Confirm Name.Buffer returned by NtQueryObject() is not NULL. > > * Add error check for HeapAlloc(). > > Still looks good. One small question: Is there a reason you cache the pipe > name's pid and id but not the key? Wouldn't you get a more complete name check > by also using the key? key always has same value, so I did not think it is necessary to be checked. However, if someone has multiple cygwin installations, pipe name may be confilict without keys. Therefore, I have added key check as well as pid and id. Thanks for the advice. -- Takashi Yano --Multipart=_Wed__22_Sep_2021_00_36_14_+0900_mFfS5X2LHwn94Mb0 Content-Type: application/octet-stream; name="v6-0001-Cygwin-pipe-Introduce-temprary-query_hdl.patch" Content-Disposition: attachment; filename="v6-0001-Cygwin-pipe-Introduce-temprary-query_hdl.patch" Content-Transfer-Encoding: base64 RnJvbSAzZjY4ZThkMGU4OTkyYmJhNjY2M2YyYjZiMzg2OGVhOWQzNTk4NTE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5q cD4KRGF0ZTogV2VkLCAyMiBTZXAgMjAyMSAwMDozMDozNCArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djZdIEN5Z3dpbjogcGlwZTogSW50cm9kdWNlIHRlbXByYXJ5IHF1ZXJ5X2hkbC4KCi0gVGhlIGNv bW1pdCBmNzlhNDYxMSBpbnRyb2R1Y2VkIHF1ZXJ5X2hkbCB3aGljaCBpcyB0aGUgcmVhZCBwaXBl CiAgaGFuZGxlIGtlcHQgaW4gdGhlIHdyaXRlIHBpcGUgaW5zdGFuY2UgaW4gb3JkZXIgdG8gZGV0 ZXJtaW5lIGlmCiAgdGhlIHBpcGUgaXMgcmVhZHkgdG8gd3JpdGUgaW4gc2VsZWN0KCkuIFRoaXMg aW1wbGVtZW50YXRpb24gaGFzCiAgYSBwb3RlbnRpYWwgcmlzayB0aGF0IHdyaXRlIHNpZGUgZmFp bHMgdG8gZGV0ZWN0IHRoZSBjbG9zdXJlIG9mCiAgcmVhZCBzaWRlIGlmIG1vcmUgdGhhbiBvbmUg d3JpdGVycyBleGlzdCBhbmQgb25lIG9mIHRoZW0gaXMgbm9uLQogIGN5Z3dpbiBwcm9jZXNzLgoK ICBXaXRoIHRoaXMgcGF0Y2gsIHRoZSBzdHJhdGVneSBvZiBjb21taXQgZjc5YTQ2MTEgaXMgdXNl ZCBvbmx5IGlmCiAgdGhlIHByb2Nlc3MgaXMgcnVubmluZyBhcyBhIHNlcnZpY2UuIEZvciBub3Jt YWwgcHJvY2VzcywgaW5zdGVhZAogIG9mIGtlZXBpbmcgcXVlcnlfaGRsIGluIHRoZSB3cml0ZSBw aXBlIGluc3RhbmNlLCBpdCBpcyByZXRyaWV2ZWQKICB0ZW1wb3JhcmlseSB3aGVuIHNlbGVjdCgp IGlzIGNhbGxlZC4gQWN0dWFsbHksIHdlIHdhbnQgdG8gdXNlCiAgdGVucG9yYXJ5IHF1ZXJ5X2hk bCBmb3IgYWxsIHByb2Nlc3NlcywgaG93ZXZlciwgaXQgZG9lcyBub3Qgd29yawogIGZvciBzZXJ2 aWNlIHByb2Nlc3NlcyBkdWUgdG8gT3BlblByb2Nlc3MoKSBmYWlsdXJlLgotLS0KIHdpbnN1cC9j eWd3aW4vZmhhbmRsZXIuaCAgICAgICB8ICAgNiArKwogd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9w aXBlLmNjIHwgMTM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogd2luc3VwL2N5 Z3dpbi9udGRsbC5oICAgICAgICAgIHwgIDE3ICsrKysrCiB3aW5zdXAvY3lnd2luL3NlbGVjdC5j YyAgICAgICAgfCAgIDggKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTYxIGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlci5oIGIvd2lu c3VwL2N5Z3dpbi9maGFuZGxlci5oCmluZGV4IDM0NzFlOTViOS4uMDA2MWQ0ODMwIDEwMDY0NAot LS0gYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyLmgKKysrIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxl ci5oCkBAIC0xMTkxLDYgKzExOTEsMTEgQEAgcHJpdmF0ZToKICAgcGlkX3QgcG9wZW5fcGlkOwog ICBIQU5ETEUgcXVlcnlfaGRsOwogICBIQU5ETEUgaGRsX2NudF9tdHg7CisgIEhBTkRMRSBxdWVy eV9oZGxfcHJvYzsKKyAgSEFORExFIHF1ZXJ5X2hkbF92YWx1ZTsKKyAgdWludDY0X3QgcGlwZW5h bWVfa2V5OworICBEV09SRCBwaXBlbmFtZV9waWQ7CisgIExPTkcgcGlwZW5hbWVfaWQ7CiAgIHZv aWQgcmVsZWFzZV9zZWxlY3Rfc2VtIChjb25zdCBjaGFyICopOwogcHVibGljOgogICBmaGFuZGxl cl9waXBlICgpOwpAQCAtMTI0OSw2ICsxMjU0LDcgQEAgcHVibGljOgogICAgICAgfQogICB9CiAg IGJvb2wgcmVhZGVyX2Nsb3NlZCAoKTsKKyAgSEFORExFIHRlbXBvcmFyeV9xdWVyeV9oZGwgKCk7 CiB9OwogCiAjZGVmaW5lIENZR1dJTl9GSUZPX1BJUEVfTkFNRV9MRU4gICAgIDQ3CmRpZmYgLS1n aXQgYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3BpcGUuY2MgYi93aW5zdXAvY3lnd2luL2ZoYW5k bGVyX3BpcGUuY2MKaW5kZXggNmI0MWE3NTVmLi43OGUyZjkwZDggMTAwNjQ0Ci0tLSBhL3dpbnN1 cC9jeWd3aW4vZmhhbmRsZXJfcGlwZS5jYworKysgYi93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3Bp cGUuY2MKQEAgLTE5LDYgKzE5LDcgQEAgZGV0YWlscy4gKi8KICNpbmNsdWRlICJjeWdoZWFwLmgi CiAjaW5jbHVkZSAicGluZm8uaCIKICNpbmNsdWRlICJzaGFyZWRfaW5mby5oIgorI2luY2x1ZGUg InRsc19wYnVmLmgiCiAKIC8qIFRoaXMgaXMgb25seSB0byBiZSB1c2VkIGZvciB3cml0aW5nLiAg V2hlbiByZWFkaW5nLAogU1RBVFVTX1BJUEVfRU1QVFkgc2ltcGx5IG1lYW5zIHRoZXJlJ3Mgbm8g ZGF0YSB0byBiZSByZWFkLiAqLwpAQCAtMjIwLDggKzIyMSw2IEBAIGZoYW5kbGVyX3BpcGU6Om9w ZW5fc2V0dXAgKGludCBmbGFncykKIAkgIGdvdG8gZXJyX2Nsb3NlX3JlYWRfbXR4OwogCX0KICAg ICB9Ci0gIGlmIChnZXRfZGV2ICgpID09IEZIX1BJUEVXICYmICFxdWVyeV9oZGwpCi0gICAgc2V0 X3BpcGVfbm9uX2Jsb2NraW5nIChpc19ub25ibG9ja2luZyAoKSk7CiAgIHJldHVybiB0cnVlOwog CiBlcnJfY2xvc2VfcmVhZF9tdHg6CkBAIC0yNjcsNyArMjY2LDcgQEAgZmhhbmRsZXJfcGlwZTo6 cmVsZWFzZV9zZWxlY3Rfc2VtIChjb25zdCBjaGFyICpmcm9tKQogICAgICAgLSBnZXRfb2JqX2hh bmRsZV9jb3VudCAocmVhZF9tdHgpOwogICBlbHNlIC8qIE51bWJlciBvZiBzZWxlY3QoKSBjYWxs ICovCiAgICAgbl9yZWxlYXNlID0gZ2V0X29ial9oYW5kbGVfY291bnQgKHNlbGVjdF9zZW0pCi0g ICAgICAtIGdldF9vYmpfaGFuZGxlX2NvdW50IChxdWVyeV9oZGwpOworICAgICAgLSBnZXRfb2Jq X2hhbmRsZV9jb3VudCAoaGRsX2NudF9tdHgpOwogICBkZWJ1Z19wcmludGYoIiVzKCVzKSByZWxl YXNlICVkIiwgZnJvbSwKIAkgICAgICAgZ2V0X2RldiAoKSA9PSBGSF9QSVBFUiA/ICJQSVBFUiIg OiAiUElQRVciLCBuX3JlbGVhc2UpOwogICBpZiAobl9yZWxlYXNlKQpAQCAtNjY3LDYgKzY2Niw4 IEBAIGZoYW5kbGVyX3BpcGU6OmNsb3NlICgpCiAgIGludCByZXQgPSBmaGFuZGxlcl9iYXNlOjpj bG9zZSAoKTsKICAgUmVsZWFzZU11dGV4IChoZGxfY250X210eCk7CiAgIENsb3NlSGFuZGxlICho ZGxfY250X210eCk7CisgIGlmIChxdWVyeV9oZGxfcHJvYykKKyAgICBDbG9zZUhhbmRsZSAocXVl cnlfaGRsX3Byb2MpOwogICByZXR1cm4gcmV0OwogfQogCkBAIC04MjAsNiArODIxLDEzIEBAIGZo YW5kbGVyX3BpcGU6OmNyZWF0ZSAoTFBTRUNVUklUWV9BVFRSSUJVVEVTIHNhX3B0ciwgUEhBTkRM RSByLCBQSEFORExFIHcsCiAgIHJldHVybiAwOwogfQogCitpbmxpbmUgc3RhdGljIGJvb2wKK2lz X3J1bm5pbmdfYXNfc2VydmljZSAodm9pZCkKK3sKKyAgcmV0dXJuIGNoZWNrX3Rva2VuX21lbWJl cnNoaXAgKHdlbGxfa25vd25fc2VydmljZV9zaWQpCisgICAgfHwgY3lnaGVhcC0+dXNlci5zYXZl ZF9zaWQgKCkgPT0gd2VsbF9rbm93bl9zeXN0ZW1fc2lkOworfQorCiAvKiBUaGUgbmV4dCB2ZXJz aW9uIG9mIGZoYW5kbGVyX3BpcGU6OmNyZWF0ZSB1c2VkIHRvIGNhbGwgdGhlIHByZXZpb3VzCiAg ICB2ZXJzaW9uLiAgQnV0IHRoZSByZWFkIGhhbmRsZSBjcmVhdGVkIGJ5IHRoZSBsYXR0ZXIgZG9l c24ndCBoYXZlCiAgICBGSUxFX1dSSVRFX0FUVFJJQlVURVMgYWNjZXNzIHVubGVzcyB0aGUgcGlw ZSBpcyBjcmVhdGVkIHdpdGgKQEAgLTg3NCw3ICs4ODIsOCBAQCBmaGFuZGxlcl9waXBlOjpjcmVh dGUgKGZoYW5kbGVyX3BpcGUgKmZoc1syXSwgdW5zaWduZWQgcHNpemUsIGludCBtb2RlKQogCQkJ MCwgc2EtPmJJbmhlcml0SGFuZGxlLCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpKQogICAgIGdvdG8g ZXJyX2Nsb3NlX3NlbGVjdF9zZW0wOwogCi0gIGlmICghRHVwbGljYXRlSGFuZGxlIChHZXRDdXJy ZW50UHJvY2VzcyAoKSwgciwKKyAgaWYgKGlzX3J1bm5pbmdfYXNfc2VydmljZSAoKSAmJgorICAg ICAgIUR1cGxpY2F0ZUhhbmRsZSAoR2V0Q3VycmVudFByb2Nlc3MgKCksIHIsCiAJCQlHZXRDdXJy ZW50UHJvY2VzcyAoKSwgJmZoc1sxXS0+cXVlcnlfaGRsLAogCQkJRklMRV9SRUFEX0RBVEEsIHNh LT5iSW5oZXJpdEhhbmRsZSwgMCkpCiAgICAgZ290byBlcnJfY2xvc2Vfc2VsZWN0X3NlbTE7CkBA IC04OTMsNyArOTAyLDggQEAgZmhhbmRsZXJfcGlwZTo6Y3JlYXRlIChmaGFuZGxlcl9waXBlICpm aHNbMl0sIHVuc2lnbmVkIHBzaXplLCBpbnQgbW9kZSkKIGVycl9jbG9zZV9oZGxfY250X210eDA6 CiAgIENsb3NlSGFuZGxlIChmaHNbMF0tPmhkbF9jbnRfbXR4KTsKIGVycl9jbG9zZV9xdWVyeV9o ZGw6Ci0gIENsb3NlSGFuZGxlIChmaHNbMV0tPnF1ZXJ5X2hkbCk7CisgIGlmIChmaHNbMV0tPnF1 ZXJ5X2hkbCkKKyAgICBDbG9zZUhhbmRsZSAoZmhzWzFdLT5xdWVyeV9oZGwpOwogZXJyX2Nsb3Nl X3NlbGVjdF9zZW0xOgogICBDbG9zZUhhbmRsZSAoZmhzWzFdLT5zZWxlY3Rfc2VtKTsKIGVycl9j bG9zZV9zZWxlY3Rfc2VtMDoKQEAgLTk0Niw2ICs5NTYsNyBAQCBudF9jcmVhdGUgKExQU0VDVVJJ VFlfQVRUUklCVVRFUyBzYV9wdHIsIEhBTkRMRSAmciwgSEFORExFICZ3LAogCQkJCSBHZXRDdXJy ZW50UHJvY2Vzc0lkICgpKTsKIAogICBhY2Nlc3MgPSBHRU5FUklDX1JFQUQgfCBGSUxFX1dSSVRF X0FUVFJJQlVURVMgfCBTWU5DSFJPTklaRTsKKyAgYWNjZXNzIHw9IEZJTEVfV1JJVEVfRUE7IC8q IEFkZCB0aGlzIHJpZ2h0IGFzIGEgbWFya2VyIG9mIGN5Z3dpbiByZWFkIHBpcGUgKi8KIAogICBV TE9ORyBwaXBlX3R5cGUgPSBwaXBlX2J5dGUgPyBGSUxFX1BJUEVfQllURV9TVFJFQU1fVFlQRQog ICAgIDogRklMRV9QSVBFX01FU1NBR0VfVFlQRTsKQEAgLTExMTIsMyArMTEyMywxMTggQEAgZmhh bmRsZXJfcGlwZTo6ZnN0YXR2ZnMgKHN0cnVjdCBzdGF0dmZzICpzZnMpCiAgIHNldF9lcnJubyAo RUJBREYpOwogICByZXR1cm4gLTE7CiB9CisKK0hBTkRMRQorZmhhbmRsZXJfcGlwZTo6dGVtcG9y YXJ5X3F1ZXJ5X2hkbCAoKQoreworICBpZiAoZ2V0X2RldiAoKSAhPSBGSF9QSVBFVykKKyAgICBy ZXR1cm4gTlVMTDsKKworICBVTE9ORyBsZW47CisgIE5UU1RBVFVTIHN0YXR1czsKKyAgdG1wX3Bh dGhidWYgdHA7CisgIE9CSkVDVF9OQU1FX0lORk9STUFUSU9OICpudGZuID0gKE9CSkVDVF9OQU1F X0lORk9STUFUSU9OICopIHRwLndfZ2V0ICgpOworCisgIC8qIFRyeSBwcm9jZXNzIGhhbmRsZSBv cGVuZWQgYW5kIHBpcGUgaGFuZGxlIHZhbHVlIGNhY2hlZCBmaXJzdAorICAgICBpbiBvcmRlciB0 byByZWR1Y2Ugb3ZlcmhlYWQuICovCisgIGlmIChxdWVyeV9oZGxfcHJvYyAmJiBxdWVyeV9oZGxf dmFsdWUpCisgICAgeworICAgICAgSEFORExFIGg7CisgICAgICBpZiAoIUR1cGxpY2F0ZUhhbmRs ZSAocXVlcnlfaGRsX3Byb2MsIHF1ZXJ5X2hkbF92YWx1ZSwKKwkJCSAgIEdldEN1cnJlbnRQcm9j ZXNzICgpLCAmaCwgRklMRV9SRUFEX0RBVEEsIDAsIDApKQorCWdvdG8gY2FjaGVfZXJyOworICAg ICAgLyogQ2hlY2sgbmFtZSAqLworICAgICAgc3RhdHVzID0gTnRRdWVyeU9iamVjdCAoaCwgT2Jq ZWN0TmFtZUluZm9ybWF0aW9uLCBudGZuLCA2NTUzNiwgJmxlbik7CisgICAgICBpZiAoIU5UX1NV Q0NFU1MgKHN0YXR1cykgfHwgIW50Zm4tPk5hbWUuQnVmZmVyKQorCWdvdG8gaGRsX2VycjsKKyAg ICAgIG50Zm4tPk5hbWUuQnVmZmVyW250Zm4tPk5hbWUuTGVuZ3RoIC8gc2l6ZW9mIChXQ0hBUild ID0gTCdcMCc7CisgICAgICB1aW50NjRfdCBrZXk7CisgICAgICBEV09SRCBwaWQ7CisgICAgICBM T05HIGlkOworICAgICAgaWYgKHN3c2NhbmYgKG50Zm4tPk5hbWUuQnVmZmVyLAorCQkgICBMIlxc RGV2aWNlXFxOYW1lZFBpcGVcXCVsbHgtJXUtcGlwZS1udC0weCV4IiwKKwkJICAgJmtleSwgJnBp ZCwgJmlkKSA9PSAzICYmCisJICBrZXkgPT0gcGlwZW5hbWVfa2V5ICYmIHBpZCA9PSBwaXBlbmFt ZV9waWQgJiYgaWQgPT0gcGlwZW5hbWVfaWQpCisJcmV0dXJuIGg7CitoZGxfZXJyOgorICAgICAg Q2xvc2VIYW5kbGUgKGgpOworY2FjaGVfZXJyOgorICAgICAgQ2xvc2VIYW5kbGUgKHF1ZXJ5X2hk bF9wcm9jKTsKKyAgICAgIHF1ZXJ5X2hkbF9wcm9jID0gTlVMTDsKKyAgICAgIHF1ZXJ5X2hkbF92 YWx1ZSA9IE5VTEw7CisgICAgfQorCisgIHN0YXR1cyA9IE50UXVlcnlPYmplY3QgKGdldF9oYW5k bGUgKCksIE9iamVjdE5hbWVJbmZvcm1hdGlvbiwgbnRmbiwKKwkJCSAgNjU1MzYsICZsZW4pOwor ICBpZiAoIU5UX1NVQ0NFU1MgKHN0YXR1cykgfHwgIW50Zm4tPk5hbWUuQnVmZmVyKQorICAgIHJl dHVybiBOVUxMOyAvKiBOb24gY3lnd2luIHBpcGU/ICovCisgIFdDSEFSIG5hbWVbTUFYX1BBVEhd OworICBpbnQgbmFtZWxlbiA9IG1pbiAobnRmbi0+TmFtZS5MZW5ndGggLyBzaXplb2YgKFdDSEFS KSwgTUFYX1BBVEgtMSk7CisgIG1lbWNweSAobmFtZSwgbnRmbi0+TmFtZS5CdWZmZXIsIG5hbWVs ZW4gKiBzaXplb2YgKFdDSEFSKSk7CisgIG5hbWVbbmFtZWxlbl0gPSBMJ1wwJzsKKyAgaWYgKHN3 c2NhbmYgKG5hbWUsIEwiXFxEZXZpY2VcXE5hbWVkUGlwZVxcJWxseC0ldS1waXBlLW50LTB4JXgi LAorCSAgICAgICAmcGlwZW5hbWVfa2V5LCAmcGlwZW5hbWVfcGlkLCAmcGlwZW5hbWVfaWQpICE9 IDMpCisgICAgcmV0dXJuIE5VTEw7IC8qIE5vbiBjeWd3aW4gcGlwZT8gKi8KKworICBTSVpFX1Qg bl9oYW5kbGUgPSA2NTUzNjsKKyAgUFNZU1RFTV9IQU5ETEVfSU5GT1JNQVRJT04gc2hpOworICBk bworICAgIHsKKyAgICAgIFNJWkVfVCBuYnl0ZXMgPQorCXNpemVvZiAoVUxPTkcpICsgbl9oYW5k bGUgKiBzaXplb2YgKFNZU1RFTV9IQU5ETEVfVEFCTEVfRU5UUllfSU5GTyk7CisgICAgICBzaGkg PSAoUFNZU1RFTV9IQU5ETEVfSU5GT1JNQVRJT04pIEhlYXBBbGxvYyAoR2V0UHJvY2Vzc0hlYXAg KCksCisJCQkJCQkgICAgIDAsIG5ieXRlcyk7CisgICAgICBpZiAoIXNoaSkKKwlyZXR1cm4gTlVM TDsKKyAgICAgIHN0YXR1cyA9IE50UXVlcnlTeXN0ZW1JbmZvcm1hdGlvbiAoU3lzdGVtSGFuZGxl SW5mb3JtYXRpb24sCisJCQkJCSBzaGksIG5ieXRlcywgTlVMTCk7CisgICAgICBpZiAoTlRfU1VD Q0VTUyAoc3RhdHVzKSkKKwlicmVhazsKKyAgICAgIEhlYXBGcmVlIChHZXRQcm9jZXNzSGVhcCAo KSwgMCwgc2hpKTsKKyAgICAgIG5faGFuZGxlICo9IDI7CisgICAgfQorICB3aGlsZSAobl9oYW5k bGUgPCAoMUw8PDIwKSk7CisgIGlmICghTlRfU1VDQ0VTUyAoc3RhdHVzKSkKKyAgICByZXR1cm4g TlVMTDsKKworICBIQU5ETEUgcWggPSBOVUxMOworICBmb3IgKExPTkcgaSA9IChMT05HKSBzaGkt Pk51bWJlck9mSGFuZGxlcyAtIDE7IGkgPj0gMDsgaS0tKQorICAgIHsKKyAgICAgIC8qIENoZWNr IGZvciB0aGUgcGVjdWxpYXJpdHkgb2YgY3lnd2luIHJlYWQgcGlwZSAqLworICAgICAgRFdPUkQg YWNjZXNzID0gRklMRV9SRUFEX0RBVEEgfCBGSUxFX1JFQURfRUEgfCBGSUxFX1dSSVRFX0VBIC8q IG1hcmtlciAqLworCXwgRklMRV9SRUFEX0FUVFJJQlVURVMgfCBGSUxFX1dSSVRFX0FUVFJJQlVU RVMKKwl8IFJFQURfQ09OVFJPTCB8IFNZTkNIUk9OSVpFOworICAgICAgaWYgKHNoaS0+SGFuZGxl c1tpXS5HcmFudGVkQWNjZXNzICE9IGFjY2VzcykKKwljb250aW51ZTsKKworICAgICAgLyogUmV0 cmlldmUgaGFuZGxlICovCisgICAgICBIQU5ETEUgcHJvYyA9IE9wZW5Qcm9jZXNzIChQUk9DRVNT X0RVUF9IQU5ETEUsIDAsCisJCQkJIHNoaS0+SGFuZGxlc1tpXS5VbmlxdWVQcm9jZXNzSWQpOwor ICAgICAgaWYgKCFwcm9jKQorCWNvbnRpbnVlOworICAgICAgSEFORExFIGggPSAoSEFORExFKShp bnRwdHJfdCkgc2hpLT5IYW5kbGVzW2ldLkhhbmRsZVZhbHVlOworICAgICAgQk9PTCByZXMgID0g RHVwbGljYXRlSGFuZGxlIChwcm9jLCBoLCBHZXRDdXJyZW50UHJvY2VzcyAoKSwgJmgsCisJCQkJ ICAgRklMRV9SRUFEX0RBVEEsIDAsIDApOworICAgICAgaWYgKCFyZXMpCisJZ290byBjbG9zZV9w cm9jOworCisgICAgICAvKiBDaGVjayBvYmplY3QgbmFtZSAqLworICAgICAgc3RhdHVzID0gTnRR dWVyeU9iamVjdCAoaCwgT2JqZWN0TmFtZUluZm9ybWF0aW9uLCBudGZuLCA2NTUzNiwgJmxlbik7 CisgICAgICBpZiAoIU5UX1NVQ0NFU1MgKHN0YXR1cykgfHwgIW50Zm4tPk5hbWUuQnVmZmVyKQor CWdvdG8gY2xvc2VfaGFuZGxlOworICAgICAgbnRmbi0+TmFtZS5CdWZmZXJbbnRmbi0+TmFtZS5M ZW5ndGggLyBzaXplb2YgKFdDSEFSKV0gPSBMJ1wwJzsKKyAgICAgIGlmICh3Y3NjbXAgKG5hbWUs IG50Zm4tPk5hbWUuQnVmZmVyKSA9PSAwKQorCXsKKwkgIHF1ZXJ5X2hkbF9wcm9jID0gcHJvYzsK KwkgIHF1ZXJ5X2hkbF92YWx1ZSA9IChIQU5ETEUpKGludHB0cl90KSBzaGktPkhhbmRsZXNbaV0u SGFuZGxlVmFsdWU7CisJICBxaCA9IGg7CisJICBicmVhazsKKwl9CitjbG9zZV9oYW5kbGU6Cisg ICAgICBDbG9zZUhhbmRsZSAoaCk7CitjbG9zZV9wcm9jOgorICAgICAgQ2xvc2VIYW5kbGUgKHBy b2MpOworICAgIH0KKyAgSGVhcEZyZWUgKEdldFByb2Nlc3NIZWFwICgpLCAwLCBzaGkpOworICBy ZXR1cm4gcWg7Cit9CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL250ZGxsLmggYi93aW5zdXAv Y3lnd2luL250ZGxsLmgKaW5kZXggNDUwNGJkZjZkLi5lOGMzYzQ1YzUgMTAwNjQ0Ci0tLSBhL3dp bnN1cC9jeWd3aW4vbnRkbGwuaAorKysgYi93aW5zdXAvY3lnd2luL250ZGxsLmgKQEAgLTYyMCw2 ICs2MjAsMjMgQEAgdHlwZWRlZiBzdHJ1Y3QgX1NZU1RFTV9QUk9DRVNTT1JfUEVSRk9STUFOQ0Vf SU5GT1JNQVRJT04KICAgVUxPTkcgSW50ZXJydXB0Q291bnQ7CiB9IFNZU1RFTV9QUk9DRVNTT1Jf UEVSRk9STUFOQ0VfSU5GT1JNQVRJT04sICpQU1lTVEVNX1BST0NFU1NPUl9QRVJGT1JNQU5DRV9J TkZPUk1BVElPTjsKIAordHlwZWRlZiBzdHJ1Y3QgX1NZU1RFTV9IQU5ETEVfVEFCTEVfRU5UUllf SU5GTworeworICBVU0hPUlQgVW5pcXVlUHJvY2Vzc0lkOworICBVU0hPUlQgQ3JlYXRvckJhY2tU cmFjZUluZGV4OworICBVQ0hBUiBPYmplY3RUeXBlSW5kZXg7CisgIFVDSEFSIEhhbmRsZUF0dHJp YnV0ZXM7CisgIFVTSE9SVCBIYW5kbGVWYWx1ZTsKKyAgUFZPSUQgT2JqZWN0OworICBVTE9ORyBH cmFudGVkQWNjZXNzOworfSBTWVNURU1fSEFORExFX1RBQkxFX0VOVFJZX0lORk8sICpQU1lTVEVN X0hBTkRMRV9UQUJMRV9FTlRSWV9JTkZPOworCit0eXBlZGVmIHN0cnVjdCBfU1lTVEVNX0hBTkRM RV9JTkZPUk1BVElPTgoreworICBVTE9ORyBOdW1iZXJPZkhhbmRsZXM7CisgIFNZU1RFTV9IQU5E TEVfVEFCTEVfRU5UUllfSU5GTyBIYW5kbGVzWzFdOworfSBTWVNURU1fSEFORExFX0lORk9STUFU SU9OLCAqUFNZU1RFTV9IQU5ETEVfSU5GT1JNQVRJT047CisKIHR5cGVkZWYgTE9ORyBLUFJJT1JJ VFk7CiAKIHR5cGVkZWYgc3RydWN0IF9WTV9DT1VOVEVSUwpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5 Z3dpbi9zZWxlY3QuY2MgYi93aW5zdXAvY3lnd2luL3NlbGVjdC5jYwppbmRleCAzM2MwYzBiYjAu LmEyODY4YWJkMCAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9zZWxlY3QuY2MKKysrIGIvd2lu c3VwL2N5Z3dpbi9zZWxlY3QuY2MKQEAgLTY0MSwxMCArNjQxLDE2IEBAIHBpcGVfZGF0YV9hdmFp bGFibGUgKGludCBmZCwgZmhhbmRsZXJfYmFzZSAqZmgsIEhBTkRMRSBoLCBib29sIHdyaXRpbmcp CiAgICAgICBpZiAoZmgtPmdldF9kZXZpY2UgKCkgPT0gRkhfUElQRVcgJiYgZnBsaS5Xcml0ZVF1 b3RhQXZhaWxhYmxlID09IDApCiAJewogCSAgSEFORExFIHF1ZXJ5X2hkbCA9ICgoZmhhbmRsZXJf cGlwZSAqKSBmaCktPmdldF9xdWVyeV9oYW5kbGUgKCk7CisJICBpZiAoIXF1ZXJ5X2hkbCkKKwkg ICAgcXVlcnlfaGRsID0gKChmaGFuZGxlcl9waXBlICopIGZoKS0+dGVtcG9yYXJ5X3F1ZXJ5X2hk bCAoKTsKIAkgIGlmICghcXVlcnlfaGRsKQogCSAgICByZXR1cm4gMTsgLyogV2UgY2Fubm90IGtu b3cgYWN0dWFsIHdyaXRlIHBpcGUgc3BhY2UuICovCiAJICBEV09SRCBuYnl0ZXNfaW5fcGlwZTsK LQkgIGlmICghUGVla05hbWVkUGlwZSAocXVlcnlfaGRsLCBOVUxMLCAwLCBOVUxMLCAmbmJ5dGVz X2luX3BpcGUsIE5VTEwpKQorCSAgQk9PTCByZXMgPQorCSAgICBQZWVrTmFtZWRQaXBlIChxdWVy eV9oZGwsIE5VTEwsIDAsIE5VTEwsICZuYnl0ZXNfaW5fcGlwZSwgTlVMTCk7CisJICBpZiAoISgo ZmhhbmRsZXJfcGlwZSAqKSBmaCktPmdldF9xdWVyeV9oYW5kbGUgKCkpCisJICAgIENsb3NlSGFu ZGxlIChxdWVyeV9oZGwpOyAvKiBDbG9zZSB0ZW1wb3JhcnkgcXVlcnlfaGRsICovCisJICBpZiAo IXJlcykKIAkgICAgcmV0dXJuIDE7CiAJICBmcGxpLldyaXRlUXVvdGFBdmFpbGFibGUgPSBmcGxp LkluYm91bmRRdW90YSAtIG5ieXRlc19pbl9waXBlOwogCX0KLS0gCjIuMzMuMAoK --Multipart=_Wed__22_Sep_2021_00_36_14_+0900_mFfS5X2LHwn94Mb0--