Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mmjuH-0001SQ-QP for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Nov 2021 21:52:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mmjuG-0005KJ-P5 for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Nov 2021 21:52:52 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mmjuG-0005KA-4w for pgsql-hackers@lists.postgresql.org; Mon, 15 Nov 2021 21:52:52 +0000 Received: from smtp-fw-33001.amazon.com ([207.171.190.10]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mmjuD-0000nW-Po for pgsql-hackers@lists.postgresql.org; Mon, 15 Nov 2021 21:52:51 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1637013170; x=1668549170; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=w/bhXfR5vrop+zsOz9kTPB7/FENcZN6I6nbpc1gZ4Tc=; b=vdcy9dad0xjq6+jtwt8zJ+KPHS72bOwzunYp01gIFG5TxDsgS0awEQbY eEvMErUSll8H6j2VT4bmra79UDRth7e3OqrqY9kYpMzKf3CGzJTDkcCrn OzMThbmRDMlH6pW45bn1U0IvYB1tdfHduMgpOBnaqRoV2UeVTc1gd9upl 8=; X-Amazon-filename: v3-0001-Add-control-C-handling-for-psql-s-password-comman.patch X-IronPort-AV: E=Sophos;i="5.87,237,1631577600"; d="scan'208,223";a="159295229" Subject: Re: Improving psql's \password command Thread-Topic: Improving psql's \password command Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-pdx-2c-b09ea7fa.us-west-2.amazon.com) ([10.43.8.2]) by smtp-border-fw-33001.sea14.amazon.com with ESMTP; 15 Nov 2021 21:52:48 +0000 Received: from EX13MTAUWB001.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan2.pdx.amazon.com [10.236.137.194]) by email-inbound-relay-pdx-2c-b09ea7fa.us-west-2.amazon.com (Postfix) with ESMTPS id E206C41C30; Mon, 15 Nov 2021 21:52:46 +0000 (UTC) Received: from EX13D03UWC004.ant.amazon.com (10.43.162.49) by EX13MTAUWB001.ant.amazon.com (10.43.161.207) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Mon, 15 Nov 2021 21:52:43 +0000 Received: from EX13D03UWC004.ant.amazon.com (10.43.162.49) by EX13D03UWC004.ant.amazon.com (10.43.162.49) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Mon, 15 Nov 2021 21:52:43 +0000 Received: from EX13D03UWC004.ant.amazon.com ([10.43.162.49]) by EX13D03UWC004.ant.amazon.com ([10.43.162.49]) with mapi id 15.00.1497.026; Mon, 15 Nov 2021 21:52:43 +0000 From: "Bossart, Nathan" To: Tom Lane CC: "pgsql-hackers@lists.postgresql.org" Thread-Index: AQHXzP3B9iQCNkm0LUi0LT7YHsPMsavp/IGAgACtnwCAE2FDgIAAiE2AgAEgXoCAALEiAIAEDCqAgACNcAD//6B4gIAAj1mA//+HhwA= Date: Mon, 15 Nov 2021 21:52:42 +0000 Message-ID: References: <747443.1635536754@sss.pgh.pa.us> <765509.1635552418@sss.pgh.pa.us> <7BAC8A28-148B-4B03-A345-D68071388300@amazon.com> <1553329.1636647111@sss.pgh.pa.us> <1847699.1636747076@sss.pgh.pa.us> <2141902.1636999964@sss.pgh.pa.us> <5EDA38EF-C411-4C7D-A9BC-10B1D4584E5E@amazon.com> <2152988.1637010233@sss.pgh.pa.us> In-Reply-To: <2152988.1637010233@sss.pgh.pa.us> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.162.57] Content-Type: multipart/mixed; boundary="_002_E4840C662FD54A0B8CC9A09F8B9126B7amazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_E4840C662FD54A0B8CC9A09F8B9126B7amazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <6BAD25DE82BF0243A69F12FBA657775E@amazon.com> Content-Transfer-Encoding: base64 T24gMTEvMTUvMjEsIDE6MDQgUE0sICJUb20gTGFuZSIgPHRnbEBzc3MucGdoLnBhLnVzPiB3cm90 ZToNCj4gcmVnaXN0ZXIuICBCdXQgcmVhbGx5IHRoYXQgZG9lc24ndCBtYXR0ZXIgYW55aG93LCBz aW5jZSB0aGlzDQo+IGlzIGEgc3RhY2sgbGV2ZWwgYmVsb3cgd2hlcmUgdGhlIHNpZ3NldGptcCBj YWxsIGlzLiAgQUZBSUsgdGhlDQo+IG9ubHkgbG9uZ2ptcCBjbG9iYmVyIHJpc2sgaXMgdG8gcGdf Z2V0X2xpbmVfYXBwZW5kJ3MgbXV0YWJsZQ0KPiBsb2NhbCB2YXJpYWJsZXMsIG9mIHdoaWNoIHRo ZXJlIGFyZSBub25lLg0KDQoqZmFjZXBhbG0qDQoNCllvdSBhcmUgcmlnaHQuICBJJ20gbm90IHN1 cmUgd2hhdCBJIHdhcyB0aGlua2luZy4gIEF0dGFjaGVkIGEgdjMNCndpdGggdGhhdCBwYXJ0IHJl bW92ZWQuDQoNCk5hdGhhbg0KDQo= --_002_E4840C662FD54A0B8CC9A09F8B9126B7amazoncom_ Content-Type: application/octet-stream; name="v3-0001-Add-control-C-handling-for-psql-s-password-comman.patch" Content-Description: v3-0001-Add-control-C-handling-for-psql-s-password-comman.patch Content-Disposition: attachment; filename="v3-0001-Add-control-C-handling-for-psql-s-password-comman.patch"; size=8780; creation-date="Mon, 15 Nov 2021 21:52:42 GMT"; modification-date="Mon, 15 Nov 2021 21:52:42 GMT" Content-ID: <3A674458C2D93B4D8FA31A7C327BD0BE@amazon.com> Content-Transfer-Encoding: base64 RnJvbSAwNWE4ZmU1MmRiOTgzMzBhYWI1NDE3OWUyMDYyOTYwZTkyN2UzMmRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gQm9zc2FydCA8Ym9zc2FydG5AYW1hem9uLmNvbT4K RGF0ZTogTW9uLCAxNSBOb3YgMjAyMSAyMTo0MzoxMSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjMg MS8xXSBBZGQgY29udHJvbC1DIGhhbmRsaW5nIGZvciBwc3FsJ3MgXHBhc3N3b3JkIGNvbW1hbmQu CgotLS0KIHNyYy9iYWNrZW5kL2xpYnBxL2hiYS5jICAgICB8ICAyICstCiBzcmMvYmluL2luaXRk Yi9pbml0ZGIuYyAgICAgfCAgMiArLQogc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyAgICAgIHwgMjQg KysrKysrKysrKysrKysrKy0tLS0tLS0tCiBzcmMvY29tbW9uL3BnX2dldF9saW5lLmMgICAgfCA0 MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9jb21tb24v c3Byb21wdC5jICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysrLQogc3JjL2luY2x1ZGUvY29t bW9uL3N0cmluZy5oIHwgMTMgKysrKysrKysrKystLQogNiBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNl cnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9saWJw cS9oYmEuYyBiL3NyYy9iYWNrZW5kL2xpYnBxL2hiYS5jCmluZGV4IDNiZTg3NzhkMjEuLjQzMjhl Yjc0ZmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBxL2hiYS5jCisrKyBiL3NyYy9iYWNr ZW5kL2xpYnBxL2hiYS5jCkBAIC01MDAsNyArNTAwLDcgQEAgdG9rZW5pemVfZmlsZShjb25zdCBj aGFyICpmaWxlbmFtZSwgRklMRSAqZmlsZSwgTGlzdCAqKnRva19saW5lcywgaW50IGVsZXZlbCkK IAkJLyogQ29sbGVjdCB0aGUgbmV4dCBpbnB1dCBsaW5lLCBoYW5kbGluZyBiYWNrc2xhc2ggY29u dGludWF0aW9ucyAqLwogCQlyZXNldFN0cmluZ0luZm8oJmJ1Zik7CiAKLQkJd2hpbGUgKHBnX2dl dF9saW5lX2FwcGVuZChmaWxlLCAmYnVmKSkKKwkJd2hpbGUgKHBnX2dldF9saW5lX2FwcGVuZChm aWxlLCAmYnVmLCBOVUxMKSkKIAkJewogCQkJLyogU3RyaXAgdHJhaWxpbmcgbmV3bGluZSwgaW5j bHVkaW5nIFxyIGluIGNhc2Ugd2UncmUgb24gV2luZG93cyAqLwogCQkJYnVmLmxlbiA9IHBnX3N0 cmlwX2NybGYoYnVmLmRhdGEpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMg Yi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwppbmRleCAzMTgzOWMxYTE5Li4zYzYxYzc4OWU0IDEw MDY0NAotLS0gYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYworKysgYi9zcmMvYmluL2luaXRkYi9p bml0ZGIuYwpAQCAtMTQ5Nyw3ICsxNDk3LDcgQEAgZ2V0X3N1X3B3ZCh2b2lkKQogCQkJCQkJIHB3 ZmlsZW5hbWUpOwogCQkJZXhpdCgxKTsKIAkJfQotCQlwd2QxID0gcGdfZ2V0X2xpbmUocHdmKTsK KwkJcHdkMSA9IHBnX2dldF9saW5lKHB3ZiwgTlVMTCk7CiAJCWlmICghcHdkMSkKIAkJewogCQkJ aWYgKGZlcnJvcihwd2YpKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3Ny Yy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggM2RlOWQwOTZmZC4uMTQyYzUxYWExNSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5j CkBAIC0yMDI1LDkgKzIwMjUsMTAgQEAgZXhlY19jb21tYW5kX3Bhc3N3b3JkKFBzcWxTY2FuU3Rh dGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoKQogCXsKIAkJY2hhcgkgICAqdXNlciA9 IHBzcWxfc2Nhbl9zbGFzaF9vcHRpb24oc2Nhbl9zdGF0ZSwKIAkJCQkJCQkJCQkJCSAgT1RfU1FM SUQsIE5VTEwsIHRydWUpOwotCQljaGFyCSAgICpwdzE7Ci0JCWNoYXIJICAgKnB3MjsKKwkJY2hh cgkgICAqcHcxID0gTlVMTDsKKwkJY2hhcgkgICAqcHcyID0gTlVMTDsKIAkJUFFFeHBCdWZmZXJE YXRhIGJ1ZjsKKwkJU2lnaW50SW50ZXJydXB0Q29udGV4dCBzaWdpbnRfY3R4OwogCiAJCWlmICh1 c2VyID09IE5VTEwpCiAJCXsKQEAgLTIwNDIsMTggKzIwNDMsMjMgQEAgZXhlY19jb21tYW5kX3Bh c3N3b3JkKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoKQogCQkJ UFFjbGVhcihyZXMpOwogCQl9CiAKKwkJc2lnaW50X2N0eC5qbXBidWYgPSAmc2lnaW50X2ludGVy cnVwdF9qbXA7CisJCXNpZ2ludF9jdHguZW5hYmxlZCA9ICZzaWdpbnRfaW50ZXJydXB0X2VuYWJs ZWQ7CisJCXNpZ2ludF9jdHguY2FuY2VsZWQgPSBmYWxzZTsKKwogCQlpbml0UFFFeHBCdWZmZXIo JmJ1Zik7CiAJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsIF8oIkVudGVyIG5ldyBwYXNzd29yZCBm b3IgdXNlciBcIiVzXCI6ICIpLCB1c2VyKTsKIAotCQlwdzEgPSBzaW1wbGVfcHJvbXB0KGJ1Zi5k YXRhLCBmYWxzZSk7Ci0JCXB3MiA9IHNpbXBsZV9wcm9tcHQoIkVudGVyIGl0IGFnYWluOiAiLCBm YWxzZSk7CisJCXB3MSA9IHNpbXBsZV9wcm9tcHRfZXh0ZW5kZWQoYnVmLmRhdGEsIGZhbHNlLCAm c2lnaW50X2N0eCk7CisJCWlmICghc2lnaW50X2N0eC5jYW5jZWxlZCkKKwkJCXB3MiA9IHNpbXBs ZV9wcm9tcHRfZXh0ZW5kZWQoIkVudGVyIGl0IGFnYWluOiAiLCBmYWxzZSwgJnNpZ2ludF9jdHgp OwogCi0JCWlmIChzdHJjbXAocHcxLCBwdzIpICE9IDApCisJCWlmICghc2lnaW50X2N0eC5jYW5j ZWxlZCAmJiBzdHJjbXAocHcxLCBwdzIpICE9IDApCiAJCXsKIAkJCXBnX2xvZ19lcnJvcigiUGFz c3dvcmRzIGRpZG4ndCBtYXRjaC4iKTsKIAkJCXN1Y2Nlc3MgPSBmYWxzZTsKIAkJfQotCQllbHNl CisJCWVsc2UgaWYgKCFzaWdpbnRfY3R4LmNhbmNlbGVkKQogCQl7CiAJCQljaGFyCSAgICplbmNy eXB0ZWRfcGFzc3dvcmQ7CiAKQEAgLTIwODEsOCArMjA4NywxMCBAQCBleGVjX2NvbW1hbmRfcGFz c3dvcmQoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpCiAJCX0K IAogCQlmcmVlKHVzZXIpOwotCQlmcmVlKHB3MSk7Ci0JCWZyZWUocHcyKTsKKwkJaWYgKHB3MSkK KwkJCWZyZWUocHcxKTsKKwkJaWYgKHB3MikKKwkJCWZyZWUocHcyKTsKIAkJdGVybVBRRXhwQnVm ZmVyKCZidWYpOwogCX0KIAllbHNlCmRpZmYgLS1naXQgYS9zcmMvY29tbW9uL3BnX2dldF9saW5l LmMgYi9zcmMvY29tbW9uL3BnX2dldF9saW5lLmMKaW5kZXggYTgwZDE5NjE1Ni4uNDllMThlZWM4 MiAxMDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9wZ19nZXRfbGluZS5jCisrKyBiL3NyYy9jb21tb24v cGdfZ2V0X2xpbmUuYwpAQCAtMTgsNiArMTgsOCBAQAogI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgi CiAjZW5kaWYKIAorI2luY2x1ZGUgPHNldGptcC5oPgorCiAjaW5jbHVkZSAiY29tbW9uL3N0cmlu Zy5oIgogI2luY2x1ZGUgImxpYi9zdHJpbmdpbmZvLmgiCiAKQEAgLTQ3LDE1ICs0OSwyMCBAQAog ICogdG8gY29sbGVjdCBsb3RzIG9mIGxvbmctbGl2ZWQgZGF0YS4gIEEgbGVzcyBtZW1vcnktaHVu Z3J5IG9wdGlvbgogICogaXMgdG8gdXNlIHBnX2dldF9saW5lX2J1ZigpIG9yIHBnX2dldF9saW5l X2FwcGVuZCgpIGluIGEgbG9vcCwKICAqIHRoZW4gcHN0cmR1cCgpIGVhY2ggbGluZS4KKyAqCisg KiBzaWdpbnRfY3R4IGNhbiBvcHRpb25hbGx5IGJlIHByb3ZpZGVkIHRvIGFsbG93IHRoaXMgZnVu Y3Rpb24gdG8gYmUKKyAqIGNhbmNlbGVkIHZpYSBhbiBleGlzdGluZyBTSUdJTlQgc2lnbmFsIGhh bmRsZXIgdGhhdCB3aWxsIGxvbmdqbXAgdG8gdGhlCisgKiBzcGVjaWZpZWQgcGxhY2Ugb25seSB3 aGVuICooc2lnaW50X2N0eC0+ZW5hYmxlZCkgaXMgdHJ1ZS4gIElmIGNhbmNlbGVkLAorICogdGhp cyBmdW5jdGlvbiByZXR1cm5zIE5VTEwsIGFuZCBzaWdpbnRfY3R4LT5jYW5jZWxlZCBpcyBzZXQg dG8gdHJ1ZS4KICAqLwogY2hhciAqCi1wZ19nZXRfbGluZShGSUxFICpzdHJlYW0pCitwZ19nZXRf bGluZShGSUxFICpzdHJlYW0sIFNpZ2ludEludGVycnVwdENvbnRleHQgKnNpZ2ludF9jdHgpCiB7 CiAJU3RyaW5nSW5mb0RhdGEgYnVmOwogCiAJaW5pdFN0cmluZ0luZm8oJmJ1Zik7CiAKLQlpZiAo IXBnX2dldF9saW5lX2FwcGVuZChzdHJlYW0sICZidWYpKQorCWlmICghcGdfZ2V0X2xpbmVfYXBw ZW5kKHN0cmVhbSwgJmJ1Ziwgc2lnaW50X2N0eCkpCiAJewogCQkvKiBlbnN1cmUgdGhhdCBmcmVl KCkgZG9lc24ndCBtZXNzIHVwIGVycm5vICovCiAJCWludAkJCXNhdmVfZXJybm8gPSBlcnJubzsK QEAgLTg5LDcgKzk2LDcgQEAgcGdfZ2V0X2xpbmVfYnVmKEZJTEUgKnN0cmVhbSwgU3RyaW5nSW5m byBidWYpCiB7CiAJLyogV2UganVzdCBuZWVkIHRvIGRyb3AgYW55IGRhdGEgZnJvbSB0aGUgcHJl dmlvdXMgY2FsbCAqLwogCXJlc2V0U3RyaW5nSW5mbyhidWYpOwotCXJldHVybiBwZ19nZXRfbGlu ZV9hcHBlbmQoc3RyZWFtLCBidWYpOworCXJldHVybiBwZ19nZXRfbGluZV9hcHBlbmQoc3RyZWFt LCBidWYsIE5VTEwpOwogfQogCiAvKgpAQCAtMTA3LDE1ICsxMTQsMzUgQEAgcGdfZ2V0X2xpbmVf YnVmKEZJTEUgKnN0cmVhbSwgU3RyaW5nSW5mbyBidWYpCiAgKgogICogSW4gdGhlIGZhbHNlLXJl c3VsdCBjYXNlLCB0aGUgY29udGVudHMgb2YgKmJ1ZiBhcmUgbG9naWNhbGx5IHVubW9kaWZpZWQs CiAgKiB0aG91Z2ggaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBidWZmZXIgaGFzIGJlZW4gcmVzaXpl ZC4KKyAqCisgKiBzaWdpbnRfY3R4IGNhbiBvcHRpb25hbGx5IGJlIHByb3ZpZGVkIHRvIGFsbG93 IHRoaXMgZnVuY3Rpb24gdG8gYmUKKyAqIGNhbmNlbGVkIHZpYSBhbiBleGlzdGluZyBTSUdJTlQg c2lnbmFsIGhhbmRsZXIgdGhhdCB3aWxsIGxvbmdqbXAgdG8gdGhlCisgKiBzcGVjaWZpZWQgcGxh Y2Ugb25seSB3aGVuICooc2lnaW50X2N0eC0+ZW5hYmxlZCkgaXMgdHJ1ZS4gIElmIGNhbmNlbGVk LAorICogdGhpcyBmdW5jdGlvbiByZXR1cm5zIGZhbHNlLCBhbmQgc2lnaW50X2N0eC0+Y2FuY2Vs ZWQgaXMgc2V0IHRvIHRydWUuCiAgKi8KIGJvb2wKLXBnX2dldF9saW5lX2FwcGVuZChGSUxFICpz dHJlYW0sIFN0cmluZ0luZm8gYnVmKQorcGdfZ2V0X2xpbmVfYXBwZW5kKEZJTEUgKnN0cmVhbSwg U3RyaW5nSW5mbyBidWYsCisJCQkJICAgU2lnaW50SW50ZXJydXB0Q29udGV4dCAqc2lnaW50X2N0 eCkKIHsKIAlpbnQJCQlvcmlnX2xlbiA9IGJ1Zi0+bGVuOwogCisJaWYgKHNpZ2ludF9jdHggJiYg c2lnc2V0am1wKCooKHNpZ2ptcF9idWYgKikgc2lnaW50X2N0eC0+am1wYnVmKSwgMSkgIT0gMCkK Kwl7CisJCS8qIGdvdCBoZXJlIHdpdGggbG9uZ2ptcCAqLworCQlzaWdpbnRfY3R4LT5jYW5jZWxl ZCA9IHRydWU7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKiBlbmFibGUgbG9uZ2ptcCB3aGls ZSB3YWl0aW5nIGZvciBpbnB1dCAqLworCWlmIChzaWdpbnRfY3R4KQorCQkqKHNpZ2ludF9jdHgt PmVuYWJsZWQpID0gdHJ1ZTsKKwogCS8qIFJlYWQgc29tZSBkYXRhLCBhcHBlbmRpbmcgaXQgdG8g d2hhdGV2ZXIgd2UgYWxyZWFkeSBoYXZlICovCiAJd2hpbGUgKGZnZXRzKGJ1Zi0+ZGF0YSArIGJ1 Zi0+bGVuLCBidWYtPm1heGxlbiAtIGJ1Zi0+bGVuLCBzdHJlYW0pICE9IE5VTEwpCiAJeworCQlp ZiAoc2lnaW50X2N0eCkKKwkJCSooc2lnaW50X2N0eC0+ZW5hYmxlZCkgPSBmYWxzZTsKKwogCQli dWYtPmxlbiArPSBzdHJsZW4oYnVmLT5kYXRhICsgYnVmLT5sZW4pOwogCiAJCS8qIERvbmUgaWYg d2UgaGF2ZSBjb2xsZWN0ZWQgYSBuZXdsaW5lICovCkBAIC0xMjQsOCArMTUxLDE1IEBAIHBnX2dl dF9saW5lX2FwcGVuZChGSUxFICpzdHJlYW0sIFN0cmluZ0luZm8gYnVmKQogCiAJCS8qIE1ha2Ug c29tZSBtb3JlIHJvb20gaW4gdGhlIGJ1ZmZlciwgYW5kIGxvb3AgdG8gcmVhZCBtb3JlIGRhdGEg Ki8KIAkJZW5sYXJnZVN0cmluZ0luZm8oYnVmLCAxMjgpOworCisJCS8qIGVuYWJsZSBsb25nam1w IHdoaWxlIHdhaXRpbmcgZm9yIGlucHV0ICovCisJCWlmIChzaWdpbnRfY3R4KQorCQkJKihzaWdp bnRfY3R4LT5lbmFibGVkKSA9IHRydWU7CiAJfQogCisJaWYgKHNpZ2ludF9jdHgpCisJCSooc2ln aW50X2N0eC0+ZW5hYmxlZCkgPSBmYWxzZTsKKwogCS8qIENoZWNrIGZvciBJL08gZXJyb3JzIGFu ZCBFT0YgKi8KIAlpZiAoZmVycm9yKHN0cmVhbSkgfHwgYnVmLT5sZW4gPT0gb3JpZ19sZW4pCiAJ ewpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9zcHJvbXB0LmMgYi9zcmMvY29tbW9uL3Nwcm9tcHQu YwppbmRleCBmM2E4OTFhMjYwLi4yYTg2YmNlZDM4IDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL3Nw cm9tcHQuYworKysgYi9zcmMvY29tbW9uL3Nwcm9tcHQuYwpAQCAtMzYsNiArMzYsMjIgQEAKICAq LwogY2hhciAqCiBzaW1wbGVfcHJvbXB0KGNvbnN0IGNoYXIgKnByb21wdCwgYm9vbCBlY2hvKQor eworCXJldHVybiBzaW1wbGVfcHJvbXB0X2V4dGVuZGVkKHByb21wdCwgZWNobywgTlVMTCk7Cit9 CisKKy8qCisgKiBzaW1wbGVfcHJvbXB0X2V4dGVuZGVkCisgKgorICogVGhpcyBpcyB0aGUgc2Ft ZSBhcyBzaW1wbGVfcHJvbXB0KCksIGV4Y2VwdCB0aGF0IHNpZ2ludF9jdHggY2FuCisgKiBvcHRp b25hbGx5IGJlIHByb3ZpZGVkIHRvIGFsbG93IHRoaXMgZnVuY3Rpb24gdG8gYmUgY2FuY2VsZWQg dmlhIGFuCisgKiBleGlzdGluZyBTSUdJTlQgc2lnbmFsIGhhbmRsZXIgdGhhdCB3aWxsIGxvbmdq bXAgdG8gdGhlIHNwZWNpZmllZCBwbGFjZQorICogb25seSB3aGVuICooc2lnaW50X2N0eC0+ZW5h YmxlZCkgaXMgdHJ1ZS4gIElmIGNhbmNlbGVkLCB0aGlzIGZ1bmN0aW9uCisgKiByZXR1cm5zIGFu IGVtcHR5IHN0cmluZywgYW5kIHNpZ2ludF9jdHgtPmNhbmNlbGVkIGlzIHNldCB0byB0cnVlLgor ICovCitjaGFyICoKK3NpbXBsZV9wcm9tcHRfZXh0ZW5kZWQoY29uc3QgY2hhciAqcHJvbXB0LCBi b29sIGVjaG8sCisJCQkJCSAgIFNpZ2ludEludGVycnVwdENvbnRleHQgKnNpZ2ludF9jdHgpCiB7 CiAJY2hhcgkgICAqcmVzdWx0OwogCUZJTEUJICAgKnRlcm1pbiwKQEAgLTEyNiw3ICsxNDIsNyBA QCBzaW1wbGVfcHJvbXB0KGNvbnN0IGNoYXIgKnByb21wdCwgYm9vbCBlY2hvKQogCQlmZmx1c2go dGVybW91dCk7CiAJfQogCi0JcmVzdWx0ID0gcGdfZ2V0X2xpbmUodGVybWluKTsKKwlyZXN1bHQg PSBwZ19nZXRfbGluZSh0ZXJtaW4sIHNpZ2ludF9jdHgpOwogCiAJLyogSWYgd2UgZmFpbGVkIHRv IHJlYWQgYW55dGhpbmcsIGp1c3QgcmV0dXJuIGFuIGVtcHR5IHN0cmluZyAqLwogCWlmIChyZXN1 bHQgPT0gTlVMTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1vbi9zdHJpbmcuaCBiL3Ny Yy9pbmNsdWRlL2NvbW1vbi9zdHJpbmcuaAppbmRleCA2ODZjMTU4ZWZlLi4yMzhjM2RjODk1IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tb24vc3RyaW5nLmgKKysrIGIvc3JjL2luY2x1ZGUv Y29tbW9uL3N0cmluZy5oCkBAIC0xMiw2ICsxMiwxMiBAQAogCiBzdHJ1Y3QgU3RyaW5nSW5mb0Rh dGE7CQkJLyogYXZvaWQgaW5jbHVkaW5nIHN0cmluZ2luZm8uaCBoZXJlICovCiAKK3R5cGVkZWYg c3RydWN0IFNpZ2ludEludGVycnVwdENvbnRleHQgeworCXZvaWQJICAgKmptcGJ1ZjsJCQkvKiBl eGlzdGluZyBsb25nam1wIGJ1ZmZlciAocmVhbGx5IGEgc2lnam1wX2J1ZiAqKSAqLworCXZvbGF0 aWxlIGJvb2wgKmVuYWJsZWQ7CQkvKiB1c2VkIHRvIGVuYWJsZS9kaXNhYmxlIFNJR0lOVCBoYW5k bGluZyAqLworCWJvb2wJCWNhbmNlbGVkOwkJLyogaW5kaWNhdGVzIHdoZXRoZXIgY2FuY2VsbGF0 aW9uIG9jY3VycmVkICovCit9IFNpZ2ludEludGVycnVwdENvbnRleHQ7CisKIC8qIGZ1bmN0aW9u cyBpbiBzcmMvY29tbW9uL3N0cmluZy5jICovCiBleHRlcm4gYm9vbCBwZ19zdHJfZW5kc3dpdGgo Y29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICplbmQpOwogZXh0ZXJuIGludAlzdHJ0b2ludChj b25zdCBjaGFyICpwZ19yZXN0cmljdCBzdHIsIGNoYXIgKipwZ19yZXN0cmljdCBlbmRwdHIsCkBA IC0yMSwxMSArMjcsMTQgQEAgZXh0ZXJuIGludAlwZ19zdHJpcF9jcmxmKGNoYXIgKnN0cik7CiBl eHRlcm4gYm9vbCBwZ19pc19hc2NpaShjb25zdCBjaGFyICpzdHIpOwogCiAvKiBmdW5jdGlvbnMg aW4gc3JjL2NvbW1vbi9wZ19nZXRfbGluZS5jICovCi1leHRlcm4gY2hhciAqcGdfZ2V0X2xpbmUo RklMRSAqc3RyZWFtKTsKK2V4dGVybiBjaGFyICpwZ19nZXRfbGluZShGSUxFICpzdHJlYW0sIFNp Z2ludEludGVycnVwdENvbnRleHQgKnNpZ2ludF9jdHgpOwogZXh0ZXJuIGJvb2wgcGdfZ2V0X2xp bmVfYnVmKEZJTEUgKnN0cmVhbSwgc3RydWN0IFN0cmluZ0luZm9EYXRhICpidWYpOwotZXh0ZXJu IGJvb2wgcGdfZ2V0X2xpbmVfYXBwZW5kKEZJTEUgKnN0cmVhbSwgc3RydWN0IFN0cmluZ0luZm9E YXRhICpidWYpOworZXh0ZXJuIGJvb2wgcGdfZ2V0X2xpbmVfYXBwZW5kKEZJTEUgKnN0cmVhbSwg c3RydWN0IFN0cmluZ0luZm9EYXRhICpidWYsCisJCQkJCQkJICAgU2lnaW50SW50ZXJydXB0Q29u dGV4dCAqc2lnaW50X2N0eCk7CiAKIC8qIGZ1bmN0aW9ucyBpbiBzcmMvY29tbW9uL3Nwcm9tcHQu YyAqLwogZXh0ZXJuIGNoYXIgKnNpbXBsZV9wcm9tcHQoY29uc3QgY2hhciAqcHJvbXB0LCBib29s IGVjaG8pOworZXh0ZXJuIGNoYXIgKnNpbXBsZV9wcm9tcHRfZXh0ZW5kZWQoY29uc3QgY2hhciAq cHJvbXB0LCBib29sIGVjaG8sCisJCQkJCQkJCQlTaWdpbnRJbnRlcnJ1cHRDb250ZXh0ICpzaWdp bnRfY3R4KTsKIAogI2VuZGlmCQkJCQkJCS8qIENPTU1PTl9TVFJJTkdfSCAqLwotLSAKMi4xNi42 Cgo= --_002_E4840C662FD54A0B8CC9A09F8B9126B7amazoncom_--