From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#56025: [WIP PATCH] 29.0.50; em-extpipe-test-2 times out on EMBA and Cygwin Date: Sat, 16 Jul 2022 19:35:12 -0700 Message-ID: <60cf587b-5d83-31d6-f0af-56979b221425@gmail.com> References: <8e21db9c-0100-998e-f280-81304e7ff61a@cornell.edu> <8974408d-91cd-aebd-7a5b-596a57bd640e@cornell.edu> <17d41105-b006-f9ad-af0b-ece84a7f5248@gmail.com> <040b3a36-459b-a94d-f879-7f45aac50bda@cornell.edu> <83sfnud26o.fsf@gnu.org> <96e47ba7-efaa-b6df-dd98-60f09068e68c@gmail.com> <874k097lbh.fsf@melete.silentflame.com> <8735frmjrr.fsf@athena.silentflame.com> <4676f52c-4758-38df-f0f4-dbcb5d848c1b@gmail.com> <8735fr2kq6.fsf@melete.silentflame.com> <10cf6a90-f86a-b0df-4dc2-c258b7494158@gmail.com> <18e79c02-3a2a-77d1-3798-33711f52d6b9@cornell.edu> <19c66901-2eeb-1f40-17a4-4ed54827e065@gmail.com> <5990de80-63a5-ac9b-1a11-c814aa9e38f2@gmail.com> <3779ea08-f481-5fb5-3257-ca9fa7c604bc@cornell.edu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------B0DEB3A7C96BD1A90E852CB5" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33498"; mail-complaints-to="usenet@ciao.gmane.io" Cc: larsi@gnus.org, 56025@debbugs.gnu.org To: Ken Brown , Sean Whitton , Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jul 17 04:36:12 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oCu8h-0008TU-Kh for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 17 Jul 2022 04:36:11 +0200 Original-Received: from localhost ([::1]:48686 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCu8f-0004Q5-94 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 16 Jul 2022 22:36:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34488) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCu8Y-0004Pg-N5 for bug-gnu-emacs@gnu.org; Sat, 16 Jul 2022 22:36:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:48688) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oCu8Y-0002xQ-EJ for bug-gnu-emacs@gnu.org; Sat, 16 Jul 2022 22:36:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oCu8Y-00078P-9p for bug-gnu-emacs@gnu.org; Sat, 16 Jul 2022 22:36:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 17 Jul 2022 02:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56025 X-GNU-PR-Package: emacs Original-Received: via spool by 56025-submit@debbugs.gnu.org id=B56025.165802532327380 (code B ref 56025); Sun, 17 Jul 2022 02:36:02 +0000 Original-Received: (at 56025) by debbugs.gnu.org; 17 Jul 2022 02:35:23 +0000 Original-Received: from localhost ([127.0.0.1]:46447 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oCu7u-00077X-8B for submit@debbugs.gnu.org; Sat, 16 Jul 2022 22:35:23 -0400 Original-Received: from mail-pj1-f52.google.com ([209.85.216.52]:37787) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oCu7s-00077K-AS for 56025@debbugs.gnu.org; Sat, 16 Jul 2022 22:35:21 -0400 Original-Received: by mail-pj1-f52.google.com with SMTP id y14-20020a17090a644e00b001ef775f7118so15081059pjm.2 for <56025@debbugs.gnu.org>; Sat, 16 Jul 2022 19:35:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=F5Jvapf2SKh7ZB97kEMjKlZdRAY+sqZo7NULq/jyXws=; b=lZOm6Mp/eKAuV+HOKYAXw3UiEH66wAB+l4eYB88NOt4egL471KSrOn21OEuubawNtb rYtE9uVU2zaXJ2/et8qSoNU4wBbFo0mcwh3MO3Bhwr4q8STj2+7diZSpcXSjRzFm2Liy eVCCXxCnFEwU5Xpkm7vL0u7VhrwqxsoO8CysrWALsaU54d0dqWE+VWF++YusLbgyMzhv +nko3Ry3sakHrk+U98gWclMzdXBPc6B96wQKlOxXkIcsUGi7uG6CG9blaaJ3JiERyw9S PnKm977nNHsGBSIBLwJaEdOsZ7w2qUk6toLaTrpXYNUFSJxP0YvxDh7CiwdZD5cm6GMv AeMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=F5Jvapf2SKh7ZB97kEMjKlZdRAY+sqZo7NULq/jyXws=; b=OSEDjuqbRGeh0tP21VuH48T0vqUzroE1MS5y1iOklyewMeHErHO+QHi2eggtLJqpoz 6UZFmJaj5D25E2Tmb31EXTiRncpkZcMeN/tTrxgzNHNyiX0NxC0QDrCUXA0+07RpA+c8 W1GZvV9fuzO1vkS6n5yQxtxu4JYy9iO+j0v2IH4Fa2ceDXIODkjADLjSlPyZ/LAbXmQp 0FFZpgjAZU4d1nK2Wa6qm6iBwgGoCJuyCCCPcuSpAcQqYPpj6k+HMUb5qgzaPTPM9Wlj W/ugxw2BT++htUKwAKozJyRlmi2Wb2NiGtKKqL1SoptQnVHic5GrltjMYdwIwKompnLB Le9A== X-Gm-Message-State: AJIora9Oh92dyy9QXH/D6zPK2lNPV2U8MIf9oLqlhNali0EiDVNm6JHN l4ZMmxiVzq3bdPrO7WNVc+4+ax9qsI4= X-Google-Smtp-Source: AGRyM1v98gYy+Fr+QIpbFIgqzk9YOkKwqQmVhBA0LR99tS0lQqYXGn3b+7/TbvOjtPXh09cFuRkCJA== X-Received: by 2002:a17:902:8f89:b0:168:d336:ddba with SMTP id z9-20020a1709028f8900b00168d336ddbamr20947030plo.1.1658025314192; Sat, 16 Jul 2022 19:35:14 -0700 (PDT) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id oj4-20020a17090b4d8400b001ef8fb72224sm8389974pjb.53.2022.07.16.19.35.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 16 Jul 2022 19:35:13 -0700 (PDT) In-Reply-To: <3779ea08-f481-5fb5-3257-ca9fa7c604bc@cornell.edu> Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:237223 Archived-At: This is a multi-part message in MIME format. --------------B0DEB3A7C96BD1A90E852CB5 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 7/7/2022 5:42 AM, Ken Brown wrote: > On 7/7/2022 12:42 AM, Jim Porter wrote: >> On 7/6/2022 9:35 PM, Jim Porter wrote: >>> Maybe it would be good to do it this way in general though, since >>> this would let us completely avoid the behavioral differences of EOF >>> on various platforms. I believe using a pipe should work consistently >>> everywhere, right? (It would also probably fix some other issues with >>> Eshell pipelines, but I'll need to read up on ptys, since it's been a >>> long time since I've done anything with them.) >> >> Just to clarify: by "do it this way in general", I only mean using a >> pipe when connecting commands in Eshell via "|", not using >> `eshell-needs-pipe'. This would necessitate enhancing `make-process' >> and friends to support what I described elsewhere. > > That makes sense to me. Ok, attached is a WIP patch to do this. It seems to work for me under Cygwin, although I've only lightly tested it in that environment. If this works for you too, I'll finish cleaning this up and add tests/documentation for it. Note that in my patch, I temporarily undid my previous patch to send EOF multiple times. This is just for testing purposes, but since we're using a pipe for this connection now, a single call to `process-send-eof' should be sufficient. (There are some obscure cases where we might want to keep the current behavior, like redirecting to a process created some other way, so I think it makes sense to keep that code. Probably...) --------------B0DEB3A7C96BD1A90E852CB5 Content-Type: text/plain; charset=UTF-8; name="0001-WIP-Allow-using-PTYs-for-just-stdin-or-stdout-in-mak.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-WIP-Allow-using-PTYs-for-just-stdin-or-stdout-in-mak.pa"; filename*1="tch" RnJvbSBmODJjMTJmMDdmZmM3YzZjOWRiMTIzMmM3ZjY3MjFlMGExY2UzMDBiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTYgSnVsIDIwMjIgMTY6NDk6NDMgLTA3MDAKU3ViamVjdDogW1BB VENIXSBXSVA6IEFsbG93IHVzaW5nIFBUWXMgZm9yIGp1c3Qgc3RkaW4gb3Igc3Rkb3V0IGlu CiBtYWtlLXByb2Nlc3MKCi0tLQogbGlzcC9lc2hlbGwvZXNoLWlvLmVsICAgfCAgIDIgKy0K IGxpc3AvZXNoZWxsL2VzaC1wcm9jLmVsIHwgIDQ4ICsrKysrKystLS0tLS0tLS0tLS0KIHNy Yy9jYWxscHJvYy5jICAgICAgICAgIHwgIDM3ICsrKysrKysrLS0tLS0tCiBzcmMvbGlzcC5o ICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL3Byb2Nlc3MuYyAgICAgICAgICAgfCAxMDQg KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogc3JjL3Byb2Nlc3Mu aCAgICAgICAgICAgfCAgIDUgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMo KyksIDkxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VzaC1pby5l bCBiL2xpc3AvZXNoZWxsL2VzaC1pby5lbAppbmRleCBjMDM1ODkwZGRmLi4yZjUwOTEwMDBi IDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtaW8uZWwKKysrIGIvbGlzcC9lc2hlbGwv ZXNoLWlvLmVsCkBAIC0yODcsNyArMjg3LDcgQEAgZXNoZWxsLWNsb3NlLXRhcmdldAogICAg IDs7IGFueXRoaW5nLCB3ZSdsbCBqdXN0IHNlbmQgdGhlIG1heGltdW0gd2UnZCBldmVyIG5l ZWQuICBTZWUKICAgICA7OyBidWcjNTYwMjUgZm9yIGZ1cnRoZXIgZGV0YWlscy4KICAgICAo bGV0ICgoaSAwKSkKLSAgICAgICh3aGlsZSAoYW5kICg8PSAoY2wtaW5jZiBpKSAzKQorICAg ICAgKHdoaWxlIChhbmQgKDw9IChjbC1pbmNmIGkpIDEpICAgIDsgRklYTUU6IFB1dCB0aGlz IGJhY2sgYXQgMy4KICAgICAgICAgICAgICAgICAgIChlcSAocHJvY2Vzcy1zdGF0dXMgdGFy Z2V0KSAncnVuKSkKICAgICAgICAgKHByb2Nlc3Mtc2VuZC1lb2YgdGFyZ2V0KSkpKQogCmRp ZmYgLS1naXQgYS9saXNwL2VzaGVsbC9lc2gtcHJvYy5lbCBiL2xpc3AvZXNoZWxsL2VzaC1w cm9jLmVsCmluZGV4IDcwNDI2Y2NhZjIuLmY1NDIxZGRkMjggMTAwNjQ0Ci0tLSBhL2xpc3Av ZXNoZWxsL2VzaC1wcm9jLmVsCisrKyBiL2xpc3AvZXNoZWxsL2VzaC1wcm9jLmVsCkBAIC0y NTAsMzAgKzI1MCw2IEBAIGVzaGVsbC1sYXN0LXN5bmMtb3V0cHV0LXN0YXJ0CiAgICJBIG1h cmtlciB0aGF0IHRyYWNrcyB0aGUgYmVnaW5uaW5nIG9mIG91dHB1dCBvZiB0aGUgbGFzdCBz dWJwcm9jZXNzLgogVXNlZCBvbmx5IG9uIHN5c3RlbXMgd2hpY2ggZG8gbm90IHN1cHBvcnQg YXN5bmMgc3VicHJvY2Vzc2VzLiIpCiAKLShkZWZ2YXIgZXNoZWxsLW5lZWRzLXBpcGUKLSAg JygiYmMiCi0gICAgOzsgeGNsaXAuZWwgKGluIEdOVSBFTFBBKSBjYWxscyBhbGwgb2YgdGhl c2Ugd2l0aAotICAgIDs7IGBwcm9jZXNzLWNvbm5lY3Rpb24tdHlwZScgc2V0IHRvIG5pbC4K LSAgICAicGJwYXN0ZSIgInB1dGNsaXAiICJ4Y2xpcCIgInhzZWwiICJ3bC1jb3B5IikKLSAg Ikxpc3Qgb2YgY29tbWFuZHMgd2hpY2ggbmVlZCBgcHJvY2Vzcy1jb25uZWN0aW9uLXR5cGUn IHRvIGJlIG5pbC4KLUN1cnJlbnRseSBvbmx5IGFmZmVjdHMgY29tbWFuZHMgaW4gcGlwZWxp bmVzLCBhbmQgbm90IHRob3NlIGF0Ci10aGUgZnJvbnQuICBJZiBhbiBlbGVtZW50IGNvbnRh aW5zIGEgZGlyZWN0b3J5IHBhcnQgaXQgbXVzdCBtYXRjaAotdGhlIGZ1bGwgbmFtZSBvZiBh IGNvbW1hbmQsIG90aGVyd2lzZSBqdXN0IHRoZSBub25kaXJlY3RvcnkgcGFydCBtdXN0IG1h dGNoLiIpCi0KLShkZWZ1biBlc2hlbGwtbmVlZHMtcGlwZS1wIChjb21tYW5kKQotICAiUmV0 dXJuIG5vbi1uaWwgaWYgQ09NTUFORCBuZWVkcyBgcHJvY2Vzcy1jb25uZWN0aW9uLXR5cGUn IHRvIGJlIG5pbC4KLVNlZSBgZXNoZWxsLW5lZWRzLXBpcGUnLiIKLSAgKGFuZCAoYm91bmQt YW5kLXRydWUtcCBlc2hlbGwtaW4tcGlwZWxpbmUtcCkKLSAgICAgICAobm90IChlcSBlc2hl bGwtaW4tcGlwZWxpbmUtcCAnZmlyc3QpKQotICAgICAgIDs7IEZJWE1FIHNob3VsZCB0aGlz IHJldHVybiBub24tbmlsIGZvciBhbnl0aGluZyB0aGF0IGlzCi0gICAgICAgOzsgbmVpdGhl ciAnZmlyc3Qgbm9yICdsYXN0PyAgU2VlIGJ1ZyMxMzg4IGRpc2N1c3Npb24uCi0gICAgICAg KGNhdGNoICdmb3VuZAotCSAoZG9saXN0IChleGUgZXNoZWxsLW5lZWRzLXBpcGUpCi0JICAg KGlmIChzdHJpbmctZXF1YWwgZXhlIChpZiAoc3RyaW5nLXNlYXJjaCAiLyIgZXhlKQotCQkJ CSAgICAgY29tbWFuZAotCQkJCSAgIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IGNvbW1hbmQp KSkKLQkgICAgICAgKHRocm93ICdmb3VuZCB0KSkpKSkpCi0KIChkZWZ1biBlc2hlbGwtZ2F0 aGVyLXByb2Nlc3Mtb3V0cHV0IChjb21tYW5kIGFyZ3MpCiAgICJHYXRoZXIgdGhlIG91dHB1 dCBmcm9tIENPTU1BTkQgKyBBUkdTLiIKICAgKHJlcXVpcmUgJ2VzaC12YXIpCkBAIC0yOTAs MTIgKzI2NiwyNCBAQCBlc2hlbGwtZ2F0aGVyLXByb2Nlc3Mtb3V0cHV0CiAgICAgKGNvbmQK ICAgICAgKChmYm91bmRwICdtYWtlLXByb2Nlc3MpCiAgICAgICAoc2V0cSBwcm9jCi0JICAg IChsZXQgKChwcm9jZXNzLWNvbm5lY3Rpb24tdHlwZQotCQkgICAodW5sZXNzIChlc2hlbGwt bmVlZHMtcGlwZS1wIGNvbW1hbmQpCi0JCSAgICAgcHJvY2Vzcy1jb25uZWN0aW9uLXR5cGUp KQotCQkgIChjb21tYW5kIChmaWxlLWxvY2FsLW5hbWUgKGV4cGFuZC1maWxlLW5hbWUgY29t bWFuZCkpKSkKLQkgICAgICAoYXBwbHkgIydzdGFydC1maWxlLXByb2Nlc3MKLQkJICAgICAo ZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBjb21tYW5kKSBuaWwgY29tbWFuZCBhcmdzKSkpCisJ ICAgIChsZXQgKChjb21tYW5kIChmaWxlLWxvY2FsLW5hbWUgKGV4cGFuZC1maWxlLW5hbWUg Y29tbWFuZCkpKQorICAgICAgICAgICAgICAgICAgOzsgRklYTUU6IFRoaXMgaXMgYSBiYWQg d2F5IHRvIGRvIHRoaXMsIGJ1dCBpdAorICAgICAgICAgICAgICAgICAgOzsgc2hvdWxkIHN1 ZmZpY2UgZm9yIGEgcHJvb2Ygb2YgY29uY2VwdC4uLgorICAgICAgICAgICAgICAgICAgKGNv bm4tdHlwZSAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChlcSBlc2hl bGwtaW4tcGlwZWxpbmUtcCAnZmlyc3QpIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoKGVxIGVzaGVsbC1pbi1waXBlbGluZS1wICdsYXN0KSAyKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGVzaGVsbC1pbi1waXBlbGluZS1wIDApCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAodCAzKSkpKQorICAgICAgICAgICAgICAobWFrZS1wcm9j ZXNzCisgICAgICAgICAgICAgICA6bmFtZSAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBjb21t YW5kKQorICAgICAgICAgICAgICAgOmJ1ZmZlciAoY3VycmVudC1idWZmZXIpCisgICAgICAg ICAgICAgICA6Y29tbWFuZCAoY29ucyBjb21tYW5kIGFyZ3MpCisgICAgICAgICAgICAgICA6 ZmlsdGVyIChpZiAoZXNoZWxsLWludGVyYWN0aXZlLW91dHB1dC1wKQorCSAgICAgICAgICAg ICAgICAgICAjJ2VzaGVsbC1vdXRwdXQtZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAg ICAgIydlc2hlbGwtaW5zZXJ0aW9uLWZpbHRlcikKKyAgICAgICAgICAgICAgIDpzZW50aW5l bCAjJ2VzaGVsbC1zZW50aW5lbAorICAgICAgICAgICAgICAgOmNvbm5lY3Rpb24tdHlwZSBj b25uLXR5cGUKKyAgICAgICAgICAgICAgIDpmaWxlLWhhbmRsZXIgdCkpKQogICAgICAgKGVz aGVsbC1yZWNvcmQtcHJvY2Vzcy1vYmplY3QgcHJvYykKICAgICAgIChzZXQtcHJvY2Vzcy1i dWZmZXIgcHJvYyAoY3VycmVudC1idWZmZXIpKQogICAgICAgKHNldC1wcm9jZXNzLWZpbHRl ciBwcm9jIChpZiAoZXNoZWxsLWludGVyYWN0aXZlLW91dHB1dC1wKQpkaWZmIC0tZ2l0IGEv c3JjL2NhbGxwcm9jLmMgYi9zcmMvY2FsbHByb2MuYwppbmRleCBkZDE2MmYzNmE2Li5hZWMw YTJmNWE1IDEwMDY0NAotLS0gYS9zcmMvY2FsbHByb2MuYworKysgYi9zcmMvY2FsbHByb2Mu YwpAQCAtNjUwLDcgKzY1MCw3IEBAIGNhbGxfcHJvY2VzcyAocHRyZGlmZl90IG5hcmdzLCBM aXNwX09iamVjdCAqYXJncywgaW50IGZpbGVmZCwKIAogICBjaGlsZF9lcnJubwogICAgID0g ZW1hY3Nfc3Bhd24gKCZwaWQsIGZpbGVmZCwgZmRfb3V0cHV0LCBmZF9lcnJvciwgbmV3X2Fy Z3YsIGVudiwKLSAgICAgICAgICAgICAgICAgICBTU0RBVEEgKGN1cnJlbnRfZGlyKSwgTlVM TCwgJm9sZHNldCk7CisgICAgICAgICAgICAgICAgICAgU1NEQVRBIChjdXJyZW50X2Rpciks IE5VTEwsIGZhbHNlLCBmYWxzZSwgJm9sZHNldCk7CiAgIGVhc3NlcnQgKChjaGlsZF9lcnJu byA9PSAwKSA9PSAoMCA8IHBpZCkpOwogCiAgIGlmIChwaWQgPiAwKQpAQCAtMTQxMiwxNCAr MTQxMiwxNSBAQCBlbWFjc19wb3NpeF9zcGF3bl9pbml0X2F0dHJpYnV0ZXMgKHBvc2l4X3Nw YXduYXR0cl90ICphdHRyaWJ1dGVzLAogaW50CiBlbWFjc19zcGF3biAocGlkX3QgKm5ld3Bp ZCwgaW50IHN0ZF9pbiwgaW50IHN0ZF9vdXQsIGludCBzdGRfZXJyLAogICAgICAgICAgICAg IGNoYXIgKiphcmd2LCBjaGFyICoqZW52cCwgY29uc3QgY2hhciAqY3dkLAotICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKnB0eSwgY29uc3Qgc2lnc2V0X3QgKm9sZHNldCkKKyAgICAgICAg ICAgICBjb25zdCBjaGFyICpwdHlfbmFtZSwgYm9vbCBwdHlfaW4sIGJvb2wgcHR5X291dCwK KyAgICAgICAgICAgICBjb25zdCBzaWdzZXRfdCAqb2xkc2V0KQogewogI2lmIFVTQUJMRV9Q T1NJWF9TUEFXTgogICAvKiBQcmVmZXIgdGhlIHNpbXBsZXIgYHBvc2l4X3NwYXduJyBpZiBh dmFpbGFibGUuICBgcG9zaXhfc3Bhd24nCiAgICAgIGRvZXNuJ3QgeWV0IHN1cHBvcnQgc2V0 dGluZyB1cCBwc2V1ZG90ZXJtaW5hbHMsIHNvIHdlIGZhbGwgYmFjawogICAgICB0byBgdmZv cmsnIGlmIHdlJ3JlIHN1cHBvc2VkIHRvIHVzZSBhIHBzZXVkb3Rlcm1pbmFsLiAgKi8KIAot ICBib29sIHVzZV9wb3NpeF9zcGF3biA9IHB0eSA9PSBOVUxMOworICBib29sIHVzZV9wb3Np eF9zcGF3biA9IHB0eV9uYW1lID09IE5VTEw7CiAKICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rp b25zX3QgYWN0aW9uczsKICAgcG9zaXhfc3Bhd25hdHRyX3QgYXR0cmlidXRlczsKQEAgLTE0 NzMsNyArMTQ3NCw5IEBAIGVtYWNzX3NwYXduIChwaWRfdCAqbmV3cGlkLCBpbnQgc3RkX2lu LCBpbnQgc3RkX291dCwgaW50IHN0ZF9lcnIsCiAgIC8qIHZmb3JrLCBhbmQgcHJldmVudCBs b2NhbCB2YXJzIGZyb20gYmVpbmcgY2xvYmJlcmVkIGJ5IHRoZSB2Zm9yay4gICovCiAgIHBp ZF90ICp2b2xhdGlsZSBuZXdwaWRfdm9sYXRpbGUgPSBuZXdwaWQ7CiAgIGNvbnN0IGNoYXIg KnZvbGF0aWxlIGN3ZF92b2xhdGlsZSA9IGN3ZDsKLSAgY29uc3QgY2hhciAqdm9sYXRpbGUg cHR5X3ZvbGF0aWxlID0gcHR5OworICBjb25zdCBjaGFyICp2b2xhdGlsZSBwdHluYW1lX3Zv bGF0aWxlID0gcHR5X25hbWU7CisgIGJvb2wgdm9sYXRpbGUgcHR5aW5fdm9sYXRpbGUgPSBw dHlfaW47CisgIGJvb2wgdm9sYXRpbGUgcHR5b3V0X3ZvbGF0aWxlID0gcHR5X291dDsKICAg Y2hhciAqKnZvbGF0aWxlIGFyZ3Zfdm9sYXRpbGUgPSBhcmd2OwogICBpbnQgdm9sYXRpbGUg c3RkaW5fdm9sYXRpbGUgPSBzdGRfaW47CiAgIGludCB2b2xhdGlsZSBzdGRvdXRfdm9sYXRp bGUgPSBzdGRfb3V0OwpAQCAtMTQ5NSw3ICsxNDk4LDkgQEAgZW1hY3Nfc3Bhd24gKHBpZF90 ICpuZXdwaWQsIGludCBzdGRfaW4sIGludCBzdGRfb3V0LCBpbnQgc3RkX2VyciwKIAogICBu ZXdwaWQgPSBuZXdwaWRfdm9sYXRpbGU7CiAgIGN3ZCA9IGN3ZF92b2xhdGlsZTsKLSAgcHR5 ID0gcHR5X3ZvbGF0aWxlOworICBwdHlfbmFtZSA9IHB0eW5hbWVfdm9sYXRpbGU7CisgIHB0 eV9pbiA9IHB0eWluX3ZvbGF0aWxlOworICBwdHlfb3V0ID0gcHR5b3V0X3ZvbGF0aWxlOwog ICBhcmd2ID0gYXJndl92b2xhdGlsZTsKICAgc3RkX2luID0gc3RkaW5fdm9sYXRpbGU7CiAg IHN0ZF9vdXQgPSBzdGRvdXRfdm9sYXRpbGU7CkBAIC0xNTA2LDEzICsxNTExLDEyIEBAIGVt YWNzX3NwYXduIChwaWRfdCAqbmV3cGlkLCBpbnQgc3RkX2luLCBpbnQgc3RkX291dCwgaW50 IHN0ZF9lcnIsCiAgIGlmIChwaWQgPT0gMCkKICNlbmRpZiAvKiBub3QgV0lORE9XU05UICov CiAgICAgewotICAgICAgYm9vbCBwdHlfZmxhZyA9IHB0eSAhPSBOVUxMOwogICAgICAgLyog TWFrZSB0aGUgcHR5IGJlIHRoZSBjb250cm9sbGluZyB0ZXJtaW5hbCBvZiB0aGUgcHJvY2Vz cy4gICovCiAjaWZkZWYgSEFWRV9QVFlTCiAgICAgICBkaXNzb2NpYXRlX2NvbnRyb2xsaW5n X3R0eSAoKTsKIAogICAgICAgLyogTWFrZSB0aGUgcHR5J3MgdGVybWluYWwgdGhlIGNvbnRy b2xsaW5nIHRlcm1pbmFsLiAgKi8KLSAgICAgIGlmIChwdHlfZmxhZyAmJiBzdGRfaW4gPj0g MCkKKyAgICAgIGlmIChwdHlfaW4gJiYgc3RkX2luID49IDApCiAJewogI2lmZGVmIFRJT0NT Q1RUWQogCSAgLyogV2UgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUKQEAgLTE1MjEsNyArMTUy NSw3IEBAIGVtYWNzX3NwYXduIChwaWRfdCAqbmV3cGlkLCBpbnQgc3RkX2luLCBpbnQgc3Rk X291dCwgaW50IHN0ZF9lcnIsCiAjZW5kaWYKIAl9CiAjaWYgZGVmaW5lZCAoTERJU0MxKQot ICAgICAgaWYgKHB0eV9mbGFnICYmIHN0ZF9pbiA+PSAwKQorICAgICAgaWYgKHB0eV9pbiAm JiBzdGRfaW4gPj0gMCkKIAl7CiAJICBzdHJ1Y3QgdGVybWlvcyB0OwogCSAgdGNnZXRhdHRy IChzdGRfaW4sICZ0KTsKQEAgLTE1MzEsNyArMTUzNSw3IEBAIGVtYWNzX3NwYXduIChwaWRf dCAqbmV3cGlkLCBpbnQgc3RkX2luLCBpbnQgc3RkX291dCwgaW50IHN0ZF9lcnIsCiAJfQog I2Vsc2UKICNpZiBkZWZpbmVkIChOVFRZRElTQykgJiYgZGVmaW5lZCAoVElPQ1NFVEQpCi0g ICAgICBpZiAocHR5X2ZsYWcgJiYgc3RkX2luID49IDApCisgICAgICBpZiAocHR5X2luICYm IHN0ZF9pbiA+PSAwKQogCXsKIAkgIC8qIFVzZSBuZXcgbGluZSBkaXNjaXBsaW5lLiAgKi8K IAkgIGludCBsZGlzYyA9IE5UVFlESVNDOwpAQCAtMTU0OCwxOCArMTU1MiwyMSBAQCBlbWFj c19zcGF3biAocGlkX3QgKm5ld3BpZCwgaW50IHN0ZF9pbiwgaW50IHN0ZF9vdXQsIGludCBz dGRfZXJyLAogICAgICBib3RoIFRJT0NTQ1RUWSBpcyBkZWZpbmVkLiAgKi8KIAkvKiBOb3cg Y2xvc2UgdGhlIHB0eSAoaWYgd2UgaGFkIGl0IG9wZW4pIGFuZCByZW9wZW4gaXQuCiAJICAg VGhpcyBtYWtlcyB0aGUgcHR5IHRoZSBjb250cm9sbGluZyB0ZXJtaW5hbCBvZiB0aGUgc3Vi cHJvY2Vzcy4gICovCi0gICAgICBpZiAocHR5X2ZsYWcpCisgICAgICBpZiAocHR5X25hbWUp CiAJewogCiAJICAvKiBJIHdvbmRlciBpZiBlbWFjc19jbG9zZSAoZW1hY3Nfb3BlbiAocHR5 LCAuLi4pKQogCSAgICAgd291bGQgd29yaz8gICovCi0JICBpZiAoc3RkX2luID49IDApCisJ ICBpZiAocHR5X2luICYmIHN0ZF9pbiA+PSAwKQogCSAgICBlbWFjc19jbG9zZSAoc3RkX2lu KTsKLSAgICAgICAgICBzdGRfb3V0ID0gc3RkX2luID0gZW1hY3Nfb3Blbl9ub3F1aXQgKHB0 eSwgT19SRFdSLCAwKTsKLQorCSAgaW50IHB0eWZkID0gZW1hY3Nfb3Blbl9ub3F1aXQgKHB0 eV9uYW1lLCBPX1JEV1IsIDApOworCSAgaWYgKHB0eV9pbikKKwkgICAgc3RkX2luID0gcHR5 ZmQ7CisJICBpZiAocHR5X291dCkKKwkgICAgc3RkX291dCA9IHB0eWZkOwogCSAgaWYgKHN0 ZF9pbiA8IDApCiAJICAgIHsKLQkgICAgICBlbWFjc19wZXJyb3IgKHB0eSk7CisJICAgICAg ZW1hY3NfcGVycm9yIChwdHlfbmFtZSk7CiAJICAgICAgX2V4aXQgKEVYSVRfQ0FOQ0VMRUQp OwogCSAgICB9CiAKQEAgLTE1OTksNyArMTYwNiw3IEBAIGVtYWNzX3NwYXduIChwaWRfdCAq bmV3cGlkLCBpbnQgc3RkX2luLCBpbnQgc3RkX291dCwgaW50IHN0ZF9lcnIsCiAgICAgICAv KiBTdG9wIGJsb2NraW5nIFNJR0NITEQgaW4gdGhlIGNoaWxkLiAgKi8KICAgICAgIHVuYmxv Y2tfY2hpbGRfc2lnbmFsIChvbGRzZXQpOwogCi0gICAgICBpZiAocHR5X2ZsYWcpCisgICAg ICBpZiAocHR5X291dCkKIAljaGlsZF9zZXR1cF90dHkgKHN0ZF9vdXQpOwogI2VuZGlmCiAK ZGlmZiAtLWdpdCBhL3NyYy9saXNwLmggYi9zcmMvbGlzcC5oCmluZGV4IGRjNDk2Y2MxNjUu LjFhNzMxYzVkY2UgMTAwNjQ0Ci0tLSBhL3NyYy9saXNwLmgKKysrIGIvc3JjL2xpc3AuaApA QCAtNDkzNSw3ICs0OTM1LDggQEAgI2RlZmluZSBEQUVNT05fUlVOTklORyAodzMyX2RhZW1v bl9ldmVudCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKICNlbmRpZgogCiBleHRlcm4gaW50 IGVtYWNzX3NwYXduIChwaWRfdCAqLCBpbnQsIGludCwgaW50LCBjaGFyICoqLCBjaGFyICoq LAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICos IGNvbnN0IHNpZ3NldF90ICopOworICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqLCBjb25zdCBjaGFyICosIGJvb2wsIGJvb2wsCisgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzaWdzZXRfdCAqKTsKIGV4dGVybiBjaGFyICoqbWFrZV9lbnZpcm9ubWVudF9i bG9jayAoTGlzcF9PYmplY3QpIEFUVFJJQlVURV9SRVRVUk5TX05PTk5VTEw7CiBleHRlcm4g dm9pZCBpbml0X2NhbGxwcm9jXzEgKHZvaWQpOwogZXh0ZXJuIHZvaWQgaW5pdF9jYWxscHJv YyAodm9pZCk7CmRpZmYgLS1naXQgYS9zcmMvcHJvY2Vzcy5jIGIvc3JjL3Byb2Nlc3MuYwpp bmRleCBkNmQ1MWIyNmUxLi45ODU4MTgzY2EwIDEwMDY0NAotLS0gYS9zcmMvcHJvY2Vzcy5j CisrKyBiL3NyYy9wcm9jZXNzLmMKQEAgLTE4NDYsMjAgKzE4NDYsMjMgQEAgREVGVU4gKCJt YWtlLXByb2Nlc3MiLCBGbWFrZV9wcm9jZXNzLCBTbWFrZV9wcm9jZXNzLCAwLCBNQU5ZLCAw LAogCiAgIHRlbSA9IHBsaXN0X2dldCAoY29udGFjdCwgUUNjb25uZWN0aW9uX3R5cGUpOwog ICBpZiAoRVEgKHRlbSwgUXB0eSkpCi0gICAgWFBST0NFU1MgKHByb2MpLT5wdHlfZmxhZyA9 IHRydWU7CisgICAgWFBST0NFU1MgKHByb2MpLT5wdHlfaW4gPSBYUFJPQ0VTUyAocHJvYykt PnB0eV9vdXQgPSB0cnVlOwogICBlbHNlIGlmIChFUSAodGVtLCBRcGlwZSkpCi0gICAgWFBS T0NFU1MgKHByb2MpLT5wdHlfZmxhZyA9IGZhbHNlOworICAgIFhQUk9DRVNTIChwcm9jKS0+ cHR5X2luID0gWFBST0NFU1MgKHByb2MpLT5wdHlfb3V0ID0gZmFsc2U7CiAgIGVsc2UgaWYg KE5JTFAgKHRlbSkpCi0gICAgWFBST0NFU1MgKHByb2MpLT5wdHlfZmxhZyA9ICFOSUxQIChW cHJvY2Vzc19jb25uZWN0aW9uX3R5cGUpOworICAgIFhQUk9DRVNTIChwcm9jKS0+cHR5X2lu ID0gWFBST0NFU1MgKHByb2MpLT5wdHlfb3V0ID0KKyAgICAgICFOSUxQIChWcHJvY2Vzc19j b25uZWN0aW9uX3R5cGUpOworICBlbHNlIGlmIChGSVhOVU1QICh0ZW0pKQorICAgIHsKKyAg ICAgIC8qIEZJWE1FOiBQcm92aWRlIGEgYmV0dGVyIHdheSBvZiBzZXR0aW5nIHRoZXNlIGlu ZGVwZW5kZW50bHkuICAqLworICAgICAgWFBST0NFU1MgKHByb2MpLT5wdHlfaW4gPSBYRklY TkFUKHRlbSkgJiAxOworICAgICAgWFBST0NFU1MgKHByb2MpLT5wdHlfb3V0ID0gWEZJWE5B VCh0ZW0pICYgMjsKKyAgICB9CiAgIGVsc2UKICAgICByZXBvcnRfZmlsZV9lcnJvciAoIlVu a25vd24gY29ubmVjdGlvbiB0eXBlIiwgdGVtKTsKIAogICBpZiAoIU5JTFAgKHN0ZGVycnBy b2MpKQotICAgIHsKLSAgICAgIHBzZXRfc3RkZXJycHJvYyAoWFBST0NFU1MgKHByb2MpLCBz dGRlcnJwcm9jKTsKLQotICAgICAgWFBST0NFU1MgKHByb2MpLT5wdHlfZmxhZyA9IGZhbHNl OwotICAgIH0KKyAgICBwc2V0X3N0ZGVycnByb2MgKFhQUk9DRVNTIChwcm9jKSwgc3RkZXJy cHJvYyk7CiAKICNpZmRlZiBIQVZFX0dOVVRMUwogICAvKiBBS0EgR05VVExTX0lOSVRTVEFH RShwcm9jKS4gICovCkBAIC0yMDk5LDY2ICsyMTAyLDgwIEBAIHZlcmlmeSAoUFJPQ0VTU19P UEVOX0ZEUyA9PSBFWEVDX01PTklUT1JfT1VUUFVUICsgMSk7CiBjcmVhdGVfcHJvY2VzcyAo TGlzcF9PYmplY3QgcHJvY2VzcywgY2hhciAqKm5ld19hcmd2LCBMaXNwX09iamVjdCBjdXJy ZW50X2RpcikKIHsKICAgc3RydWN0IExpc3BfUHJvY2VzcyAqcCA9IFhQUk9DRVNTIChwcm9j ZXNzKTsKLSAgaW50IGluY2hhbm5lbCwgb3V0Y2hhbm5lbDsKKyAgaW50IGluY2hhbm5lbCA9 IC0xLCBvdXRjaGFubmVsID0gLTE7CiAgIHBpZF90IHBpZCA9IC0xOwogICBpbnQgdmZvcmtf ZXJybm87CiAgIGludCBmb3JraW4sIGZvcmtvdXQsIGZvcmtlcnIgPSAtMTsKLSAgYm9vbCBw dHlfZmxhZyA9IDA7CisgIGJvb2wgcHR5X2luID0gZmFsc2UsIHB0eV9vdXQgPSBmYWxzZTsK ICAgY2hhciBwdHlfbmFtZVtQVFlfTkFNRV9TSVpFXTsKICAgTGlzcF9PYmplY3QgbGlzcF9w dHlfbmFtZSA9IFFuaWw7CisgIGludCBwdHljaGFubmVsID0gLTEsIHB0eV90dHkgPSAtMTsK ICAgc2lnc2V0X3Qgb2xkc2V0OwogCiAgIC8qIEVuc3VyZSB0aGF0IHRoZSBTSUdDSExEIGhh bmRsZXIgY2FuIG5vdGlmeQogICAgICBgd2FpdF9yZWFkaW5nX3Byb2Nlc3Nfb3V0cHV0Jy4g ICovCiAgIGNoaWxkX3NpZ25hbF9pbml0ICgpOwogCi0gIGluY2hhbm5lbCA9IG91dGNoYW5u ZWwgPSAtMTsKLQotICBpZiAocC0+cHR5X2ZsYWcpCi0gICAgb3V0Y2hhbm5lbCA9IGluY2hh bm5lbCA9IGFsbG9jYXRlX3B0eSAocHR5X25hbWUpOworICBpZiAocC0+cHR5X2luIHx8IHAt PnB0eV9vdXQpCisgICAgcHR5Y2hhbm5lbCA9IGFsbG9jYXRlX3B0eSAocHR5X25hbWUpOwog Ci0gIGlmIChpbmNoYW5uZWwgPj0gMCkKKyAgaWYgKHB0eWNoYW5uZWwgPj0gMCkKICAgICB7 Ci0gICAgICBwLT5vcGVuX2ZkW1JFQURfRlJPTV9TVUJQUk9DRVNTXSA9IGluY2hhbm5lbDsK ICNpZiAhIGRlZmluZWQgKFVTRykgfHwgZGVmaW5lZCAoVVNHX1NVQlRUWV9XT1JLUykKICAg ICAgIC8qIE9uIG1vc3QgVVNHIHN5c3RlbXMgaXQgZG9lcyBub3Qgd29yayB0byBvcGVuIHRo ZSBwdHkncyB0dHkgaGVyZSwKIAkgdGhlbiBjbG9zZSBpdCBhbmQgcmVvcGVuIGl0IGluIHRo ZSBjaGlsZC4gICovCiAgICAgICAvKiBEb24ndCBsZXQgdGhpcyB0ZXJtaW5hbCBiZWNvbWUg b3VyIGNvbnRyb2xsaW5nIHRlcm1pbmFsCiAJIChpbiBjYXNlIHdlIGRvbid0IGhhdmUgb25l KS4gICovCi0gICAgICBmb3Jrb3V0ID0gZm9ya2luID0gZW1hY3Nfb3BlbiAocHR5X25hbWUs IE9fUkRXUiB8IE9fTk9DVFRZLCAwKTsKLSAgICAgIGlmIChmb3JraW4gPCAwKQorICAgICAg cHR5X3R0eSA9IGVtYWNzX29wZW4gKHB0eV9uYW1lLCBPX1JEV1IgfCBPX05PQ1RUWSwgMCk7 CisgICAgICBpZiAocHR5X3R0eSA8IDApCiAJcmVwb3J0X2ZpbGVfZXJyb3IgKCJPcGVuaW5n IHB0eSIsIFFuaWwpOwotICAgICAgcC0+b3Blbl9mZFtTVUJQUk9DRVNTX1NURElOXSA9IGZv cmtpbjsKLSNlbHNlCi0gICAgICBmb3JraW4gPSBmb3Jrb3V0ID0gLTE7CiAjZW5kaWYgLyog bm90IFVTRywgb3IgVVNHX1NVQlRUWV9XT1JLUyAqLwotICAgICAgcHR5X2ZsYWcgPSAxOwor ICAgICAgcHR5X2luID0gcC0+cHR5X2luOworICAgICAgcHR5X291dCA9IHAtPnB0eV9vdXQ7 CiAgICAgICBsaXNwX3B0eV9uYW1lID0gYnVpbGRfc3RyaW5nIChwdHlfbmFtZSk7CiAgICAg fQorCisgIC8qIFNldCB1cCBzdGRpbiBmb3IgdGhlIGNoaWxkIHByb2Nlc3MuICAqLworICBp ZiAocHR5Y2hhbm5lbCA+PSAwICYmIHAtPnB0eV9pbikKKyAgICB7CisgICAgICBwLT5vcGVu X2ZkW1NVQlBST0NFU1NfU1RESU5dID0gZm9ya2luID0gcHR5X3R0eTsKKyAgICAgIG91dGNo YW5uZWwgPSBwdHljaGFubmVsOworICAgIH0KICAgZWxzZQogICAgIHsKLSAgICAgIGlmIChl bWFjc19waXBlIChwLT5vcGVuX2ZkICsgU1VCUFJPQ0VTU19TVERJTikgIT0gMAotCSAgfHwg ZW1hY3NfcGlwZSAocC0+b3Blbl9mZCArIFJFQURfRlJPTV9TVUJQUk9DRVNTKSAhPSAwKQor ICAgICAgaWYgKGVtYWNzX3BpcGUgKHAtPm9wZW5fZmQgKyBTVUJQUk9DRVNTX1NURElOKSAh PSAwKQogCXJlcG9ydF9maWxlX2Vycm9yICgiQ3JlYXRpbmcgcGlwZSIsIFFuaWwpOwogICAg ICAgZm9ya2luID0gcC0+b3Blbl9mZFtTVUJQUk9DRVNTX1NURElOXTsKICAgICAgIG91dGNo YW5uZWwgPSBwLT5vcGVuX2ZkW1dSSVRFX1RPX1NVQlBST0NFU1NdOworICAgIH0KKworICAv KiBTZXQgdXAgc3Rkb3V0IGZvciB0aGUgY2hpbGQgcHJvY2Vzcy4gICovCisgIGlmIChwdHlj aGFubmVsID49IDAgJiYgcC0+cHR5X291dCkKKyAgICB7CisgICAgICBmb3Jrb3V0ID0gcHR5 X3R0eTsKKyAgICAgIHAtPm9wZW5fZmRbUkVBRF9GUk9NX1NVQlBST0NFU1NdID0gaW5jaGFu bmVsID0gcHR5Y2hhbm5lbDsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBpZiAoZW1h Y3NfcGlwZSAocC0+b3Blbl9mZCArIFJFQURfRlJPTV9TVUJQUk9DRVNTKSAhPSAwKQorCXJl cG9ydF9maWxlX2Vycm9yICgiQ3JlYXRpbmcgcGlwZSIsIFFuaWwpOwogICAgICAgaW5jaGFu bmVsID0gcC0+b3Blbl9mZFtSRUFEX0ZST01fU1VCUFJPQ0VTU107CiAgICAgICBmb3Jrb3V0 ID0gcC0+b3Blbl9mZFtTVUJQUk9DRVNTX1NURE9VVF07CiAKICNpZiBkZWZpbmVkKEdOVV9M SU5VWCkgJiYgZGVmaW5lZChGX1NFVFBJUEVfU1opCiAgICAgICBmY250bCAoaW5jaGFubmVs LCBGX1NFVFBJUEVfU1osIHJlYWRfcHJvY2Vzc19vdXRwdXRfbWF4KTsKICNlbmRpZgorICAg IH0KIAotICAgICAgaWYgKCFOSUxQIChwLT5zdGRlcnJwcm9jKSkKLQl7Ci0JICBzdHJ1Y3Qg TGlzcF9Qcm9jZXNzICpwcCA9IFhQUk9DRVNTIChwLT5zdGRlcnJwcm9jKTsKKyAgaWYgKCFO SUxQIChwLT5zdGRlcnJwcm9jKSkKKyAgICB7CisgICAgICBzdHJ1Y3QgTGlzcF9Qcm9jZXNz ICpwcCA9IFhQUk9DRVNTIChwLT5zdGRlcnJwcm9jKTsKIAotCSAgZm9ya2VyciA9IHBwLT5v cGVuX2ZkW1NVQlBST0NFU1NfU1RET1VUXTsKKyAgICAgIGZvcmtlcnIgPSBwcC0+b3Blbl9m ZFtTVUJQUk9DRVNTX1NURE9VVF07CiAKLQkgIC8qIENsb3NlIHVubmVjZXNzYXJ5IGZpbGUg ZGVzY3JpcHRvcnMuICAqLwotCSAgY2xvc2VfcHJvY2Vzc19mZCAoJnBwLT5vcGVuX2ZkW1dS SVRFX1RPX1NVQlBST0NFU1NdKTsKLQkgIGNsb3NlX3Byb2Nlc3NfZmQgKCZwcC0+b3Blbl9m ZFtTVUJQUk9DRVNTX1NURElOXSk7Ci0JfQorICAgICAgLyogQ2xvc2UgdW5uZWNlc3Nhcnkg ZmlsZSBkZXNjcmlwdG9ycy4gICovCisgICAgICBjbG9zZV9wcm9jZXNzX2ZkICgmcHAtPm9w ZW5fZmRbV1JJVEVfVE9fU1VCUFJPQ0VTU10pOworICAgICAgY2xvc2VfcHJvY2Vzc19mZCAo JnBwLT5vcGVuX2ZkW1NVQlBST0NFU1NfU1RESU5dKTsKICAgICB9CiAKICAgaWYgKEZEX1NF VFNJWkUgPD0gaW5jaGFubmVsIHx8IEZEX1NFVFNJWkUgPD0gb3V0Y2hhbm5lbCkKQEAgLTIx ODMsNyArMjIwMCw4IEBAIGNyZWF0ZV9wcm9jZXNzIChMaXNwX09iamVjdCBwcm9jZXNzLCBj aGFyICoqbmV3X2FyZ3YsIExpc3BfT2JqZWN0IGN1cnJlbnRfZGlyKQogICAgICB3ZSBqdXN0 IHJlb3BlbiB0aGUgZGV2aWNlIChzZWUgZW1hY3NfZ2V0X3R0eV9wZ3JwKSBhcyB0aGlzIGlz CiAgICAgIG1vcmUgcG9ydGFibGUgKHNlZSBVU0dfU1VCVFRZX1dPUktTIGFib3ZlKS4gICov CiAKLSAgcC0+cHR5X2ZsYWcgPSBwdHlfZmxhZzsKKyAgcC0+cHR5X2luID0gcHR5X2luOwor ICBwLT5wdHlfb3V0ID0gcHR5X291dDsKICAgcHNldF9zdGF0dXMgKHAsIFFydW4pOwogCiAg IGlmICghRVEgKHAtPmNvbW1hbmQsIFF0KQpAQCAtMjE5OSwxMyArMjIxNywxNSBAQCBjcmVh dGVfcHJvY2VzcyAoTGlzcF9PYmplY3QgcHJvY2VzcywgY2hhciAqKm5ld19hcmd2LCBMaXNw X09iamVjdCBjdXJyZW50X2RpcikKICAgYmxvY2tfaW5wdXQgKCk7CiAgIGJsb2NrX2NoaWxk X3NpZ25hbCAoJm9sZHNldCk7CiAKLSAgcHR5X2ZsYWcgPSBwLT5wdHlfZmxhZzsKLSAgZWFz c2VydCAocHR5X2ZsYWcgPT0gISBOSUxQIChsaXNwX3B0eV9uYW1lKSk7CisgIHB0eV9pbiA9 IHAtPnB0eV9pbjsKKyAgcHR5X291dCA9IHAtPnB0eV9vdXQ7CisgIGVhc3NlcnQgKChwdHlf aW4gfHwgcHR5X291dCkgPT0gISBOSUxQIChsaXNwX3B0eV9uYW1lKSk7CiAKICAgdmZvcmtf ZXJybm8KICAgICA9IGVtYWNzX3NwYXduICgmcGlkLCBmb3JraW4sIGZvcmtvdXQsIGZvcmtl cnIsIG5ld19hcmd2LCBlbnYsCiAgICAgICAgICAgICAgICAgICAgU1NEQVRBIChjdXJyZW50 X2RpciksCi0gICAgICAgICAgICAgICAgICAgcHR5X2ZsYWcgPyBTU0RBVEEgKGxpc3BfcHR5 X25hbWUpIDogTlVMTCwgJm9sZHNldCk7CisgICAgICAgICAgICAgICAgICAgcHR5X2luIHx8 IHB0eV9vdXQgPyBTU0RBVEEgKGxpc3BfcHR5X25hbWUpIDogTlVMTCwKKyAgICAgICAgICAg ICAgICAgICBwdHlfaW4sIHB0eV9vdXQsICZvbGRzZXQpOwogCiAgIGVhc3NlcnQgKCh2Zm9y a19lcnJubyA9PSAwKSA9PSAoMCA8IHBpZCkpOwogCkBAIC0yMjYzLDcgKzIyODMsNyBAQCBj cmVhdGVfcHR5IChMaXNwX09iamVjdCBwcm9jZXNzKQogewogICBzdHJ1Y3QgTGlzcF9Qcm9j ZXNzICpwID0gWFBST0NFU1MgKHByb2Nlc3MpOwogICBjaGFyIHB0eV9uYW1lW1BUWV9OQU1F X1NJWkVdOwotICBpbnQgcHR5X2ZkID0gIXAtPnB0eV9mbGFnID8gLTEgOiBhbGxvY2F0ZV9w dHkgKHB0eV9uYW1lKTsKKyAgaW50IHB0eV9mZCA9ICEocC0+cHR5X2luIHx8IHAtPnB0eV9v dXQpID8gLTEgOiBhbGxvY2F0ZV9wdHkgKHB0eV9uYW1lKTsKIAogICBpZiAocHR5X2ZkID49 IDApCiAgICAgewpAQCAtMjMwMSw3ICsyMzIxLDcgQEAgY3JlYXRlX3B0eSAoTGlzcF9PYmpl Y3QgcHJvY2VzcykKIAkgd2UganVzdCByZW9wZW4gdGhlIGRldmljZSAoc2VlIGVtYWNzX2dl dF90dHlfcGdycCkgYXMgdGhpcyBpcwogCSBtb3JlIHBvcnRhYmxlIChzZWUgVVNHX1NVQlRU WV9XT1JLUyBhYm92ZSkuICAqLwogCi0gICAgICBwLT5wdHlfZmxhZyA9IDE7CisgICAgICBw LT5wdHlfaW4gPSBwLT5wdHlfb3V0ID0gdHJ1ZTsKICAgICAgIHBzZXRfc3RhdHVzIChwLCBR cnVuKTsKICAgICAgIHNldHVwX3Byb2Nlc3NfY29kaW5nX3N5c3RlbXMgKHByb2Nlc3MpOwog CkBAIC0yNDEyLDcgKzI0MzIsNyBAQCBERUZVTiAoIm1ha2UtcGlwZS1wcm9jZXNzIiwgRm1h a2VfcGlwZV9wcm9jZXNzLCBTbWFrZV9waXBlX3Byb2Nlc3MsCiAgICAgcC0+a2lsbF93aXRo b3V0X3F1ZXJ5ID0gMTsKICAgaWYgKHRlbSA9IHBsaXN0X2dldCAoY29udGFjdCwgUUNzdG9w KSwgIU5JTFAgKHRlbSkpCiAgICAgcHNldF9jb21tYW5kIChwLCBRdCk7Ci0gIGVhc3NlcnQg KCEgcC0+cHR5X2ZsYWcpOworICBlYXNzZXJ0ICghIHAtPnB0eV9pbiAmJiAhIHAtPnB0eV9v dXQpOwogCiAgIGlmICghRVEgKHAtPmNvbW1hbmQsIFF0KQogICAgICAgJiYgIUVRIChwLT5m aWx0ZXIsIFF0KSkKQEAgLTMxNDcsNyArMzE2Nyw3IEBAIERFRlVOICgibWFrZS1zZXJpYWwt cHJvY2VzcyIsIEZtYWtlX3NlcmlhbF9wcm9jZXNzLCBTbWFrZV9zZXJpYWxfcHJvY2VzcywK ICAgICBwLT5raWxsX3dpdGhvdXRfcXVlcnkgPSAxOwogICBpZiAodGVtID0gcGxpc3RfZ2V0 IChjb250YWN0LCBRQ3N0b3ApLCAhTklMUCAodGVtKSkKICAgICBwc2V0X2NvbW1hbmQgKHAs IFF0KTsKLSAgZWFzc2VydCAoISBwLT5wdHlfZmxhZyk7CisgIGVhc3NlcnQgKCEgcC0+cHR5 X2luICYmICEgcC0+cHR5X291dCk7CiAKICAgaWYgKCFFUSAocC0+Y29tbWFuZCwgUXQpCiAg ICAgICAmJiAhRVEgKHAtPmZpbHRlciwgUXQpKQpAQCAtNjc5OCw3ICs2ODE4LDcgQEAgcHJv Y2Vzc19zZW5kX3NpZ25hbCAoTGlzcF9PYmplY3QgcHJvY2VzcywgaW50IHNpZ25vLCBMaXNw X09iamVjdCBjdXJyZW50X2dyb3VwLAogICAgIGVycm9yICgiUHJvY2VzcyAlcyBpcyBub3Qg YWN0aXZlIiwKIAkgICBTREFUQSAocC0+bmFtZSkpOwogCi0gIGlmICghcC0+cHR5X2ZsYWcp CisgIGlmICghIHAtPnB0eV9pbikKICAgICBjdXJyZW50X2dyb3VwID0gUW5pbDsKIAogICAv KiBJZiB3ZSBhcmUgdXNpbmcgcGdycHMsIGdldCBhIHBncnAgbnVtYmVyIGFuZCBtYWtlIGl0 IG5lZ2F0aXZlLiAgKi8KQEAgLTcxNjcsNyArNzE4Nyw3IEBAIERFRlVOICgicHJvY2Vzcy1z ZW5kLWVvZiIsIEZwcm9jZXNzX3NlbmRfZW9mLCBTcHJvY2Vzc19zZW5kX2VvZiwgMCwgMSwg MCwKICAgICAgIHNlbmRfcHJvY2VzcyAocHJvYywgIiIsIDAsIFFuaWwpOwogICAgIH0KIAot ICBpZiAoWFBST0NFU1MgKHByb2MpLT5wdHlfZmxhZykKKyAgaWYgKFhQUk9DRVNTIChwcm9j KS0+cHR5X2luKQogICAgIHNlbmRfcHJvY2VzcyAocHJvYywgIlwwMDQiLCAxLCBRbmlsKTsK ICAgZWxzZSBpZiAoRVEgKFhQUk9DRVNTIChwcm9jKS0+dHlwZSwgUXNlcmlhbCkpCiAgICAg ewpkaWZmIC0tZ2l0IGEvc3JjL3Byb2Nlc3MuaCBiL3NyYy9wcm9jZXNzLmgKaW5kZXggMzky YjY2MWNlNi4uOTJiYWYwYzRjYiAxMDA2NDQKLS0tIGEvc3JjL3Byb2Nlc3MuaAorKysgYi9z cmMvcHJvY2Vzcy5oCkBAIC0xNTYsOCArMTU2LDkgQEAgI2RlZmluZSBFTUFDU19QUk9DRVNT X0gKICAgICAvKiBUcnVlIG1lYW5zIGtpbGwgc2lsZW50bHkgaWYgRW1hY3MgaXMgZXhpdGVk LgogICAgICAgIFRoaXMgaXMgdGhlIGludmVyc2Ugb2YgdGhlIGBxdWVyeS1vbi1leGl0JyBm bGFnLiAgKi8KICAgICBib29sX2JmIGtpbGxfd2l0aG91dF9xdWVyeSA6IDE7Ci0gICAgLyog VHJ1ZSBpZiBjb21tdW5pY2F0aW5nIHRocm91Z2ggYSBwdHkuICAqLwotICAgIGJvb2xfYmYg cHR5X2ZsYWcgOiAxOworICAgIC8qIFRydWUgaWYgY29tbXVuaWNhdGluZyB0aHJvdWdoIGEg cHR5IGZvciBpbnB1dCBvciBvdXRwdXQuICAqLworICAgIGJvb2xfYmYgcHR5X2luIDogMTsK KyAgICBib29sX2JmIHB0eV9vdXQgOiAxOwogICAgIC8qIEZsYWcgdG8gc2V0IGNvZGluZy1z eXN0ZW0gb2YgdGhlIHByb2Nlc3MgYnVmZmVyIGZyb20gdGhlCiAgICAgICAgY29kaW5nX3N5 c3RlbSB1c2VkIHRvIGRlY29kZSBwcm9jZXNzIG91dHB1dC4gICovCiAgICAgYm9vbF9iZiBp bmhlcml0X2NvZGluZ19zeXN0ZW1fZmxhZyA6IDE7Ci0tIAoyLjI1LjEKCg== --------------B0DEB3A7C96BD1A90E852CB5--