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 1mmg47-00025Q-Ba for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Nov 2021 17:46:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mmg46-00012Z-BL for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Nov 2021 17:46:46 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mmg45-00012Q-US for pgsql-hackers@lists.postgresql.org; Mon, 15 Nov 2021 17:46:46 +0000 Received: from smtp-fw-2101.amazon.com ([72.21.196.25]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mmg43-0007FX-Dt for pgsql-hackers@lists.postgresql.org; Mon, 15 Nov 2021 17:46:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1636998403; x=1668534403; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=eF+F0/w+ErE3Y0Xwavxott6vTLnW221icdKsCHK/vGc=; b=tOZdTWRAaJlkewxso+HYFFJYfP31RqnwzeKV9O9hCY87kUL7Pqvpm5kZ kW3aLrnogEUOEiQVMM+9ZiuJAuAADd7HGd/DGEWZmIs1dyyIiMrDSQX0H OywVtZFxZ28PPrjETgeqQvA3NTPmx6XxKEHC0bna3yj/4xNhwm1uQt69R 0=; X-Amazon-filename: v1-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="152045627" 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-iad-1d-5a6d5c37.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-2101.iad2.amazon.com with ESMTP; 15 Nov 2021 17:46:41 +0000 Received: from EX13MTAUWB001.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan2.iad.amazon.com [10.40.163.34]) by email-inbound-relay-iad-1d-5a6d5c37.us-east-1.amazon.com (Postfix) with ESMTPS id 0E6F5C0913; Mon, 15 Nov 2021 17:46:40 +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 17:46:33 +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 17:46:32 +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 17:46:32 +0000 From: "Bossart, Nathan" To: Tom Lane CC: "pgsql-hackers@lists.postgresql.org" Thread-Index: AQHXzP3B9iQCNkm0LUi0LT7YHsPMsavp/IGAgACtnwCAE2FDgIAAiE2AgAEgXoCAALEiAIAEDCqA Date: Mon, 15 Nov 2021 17:46:31 +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> In-Reply-To: <1847699.1636747076@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.153] Content-Type: multipart/mixed; boundary="_002_AEA1BA57BD21423798591C04FE38602Bamazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_AEA1BA57BD21423798591C04FE38602Bamazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <456F3028446E5F4B82C90D44FB006EC4@amazon.com> Content-Transfer-Encoding: base64 T24gMTEvMTIvMjEsIDExOjU4IEFNLCAiVG9tIExhbmUiIDx0Z2xAc3NzLnBnaC5wYS51cz4gd3Jv dGU6DQo+IFJpZ2h0LCBpdCBtYWtlcyBzZW5zZSB0byBjb25zaWRlciBqdXN0IHRoaXMgbXVjaCBh cyB0aGUgYmFjay1wYXRjaGFibGUNCj4gcGFydCwgYW5kIGxlYXZlIHRoZSBtb3JlIGNvbXBsaWNh dGVkIG1lc3Npbmcgd2l0aCBzaW1wbGVfcHJvbXB0KCkNCj4gZm9yIEhFQUQgb25seS4gIEkgbWFk ZSBhIGNvdXBsZSBmdXJ0aGVyIGNvc21ldGljIHR3ZWFrcyBhbmQgcHVzaGVkIGl0Lg0KDQpIZXJl IGlzIGFuIGF0dGVtcHQgYXQgYWRkaW5nIGNvbnRyb2wtQyBzdXBwb3J0IGZvciBccGFzc3dvcmQu ICBXaXRoDQp0aGlzIHBhdGNoLCB3ZSBwYXNzIHNpZ2ludF9pbnRlcnJ1cHRfam1wIGFuZCBzaWdp bnRfaW50ZXJydXB0X2VuYWJsZWQNCmFsbCB0aGUgd2F5IGRvd24gdG8gcGdfZ2V0X2xpbmVfYXBw ZW5kKCksIHdoaWNoIGlzIGFkbWl0dGVkbHkgYSBiaXQNCm1vcmUgY29tcGxpY2F0ZWQgdGhhbiBJ IHRoaW5rIHdvdWxkIGJlIGlkZWFsLiAgSSBzZWUgYSBjb3VwbGUgb2Ygb3RoZXINCmNhbGxzIHRv IHNpbXBsZV9wcm9tcHQoKSAoZS5nLiwgXHByb21wdCBhbmQgXGNvbm5lY3QpLCBhbmQgSSB0aGlu ayB0aGUNCnNhbWUgaW5mcmFzdHJ1Y3R1cmUgY291bGQgYmUgdXNlZCBmb3IgdGhvc2UgYXMgd2Vs bC4gIEknbGwgc2VuZCBzb21lDQpmb2xsb3ctdXAgcGF0Y2hlcyBmb3IgdGhvc2UgaWYgdGhpcyBh cHByb2FjaCBzZWVtcyByZWFzb25hYmxlLg0KDQpOYXRoYW4NCg0K --_002_AEA1BA57BD21423798591C04FE38602Bamazoncom_ Content-Type: application/octet-stream; name="v1-0001-Add-control-C-handling-for-psql-s-password-comman.patch" Content-Description: v1-0001-Add-control-C-handling-for-psql-s-password-comman.patch Content-Disposition: attachment; filename="v1-0001-Add-control-C-handling-for-psql-s-password-comman.patch"; size=8553; creation-date="Mon, 15 Nov 2021 17:46:31 GMT"; modification-date="Mon, 15 Nov 2021 17:46:31 GMT" Content-ID: <73264022F6F658478580B6910A128C87@amazon.com> Content-Transfer-Encoding: base64 RnJvbSA0NTdkNzJkZjQ0ZTE3Nzc3NGM3MjA0OTM0NTY0OWU2YTYzNTQ0YmI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gQm9zc2FydCA8Ym9zc2FydG5AYW1hem9uLmNvbT4K RGF0ZTogU2F0LCAxMyBOb3YgMjAyMSAyMjo1NjowOCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjEg MS8xXSBBZGQgY29udHJvbC1DIGhhbmRsaW5nIGZvciBwc3FsJ3MgXHBhc3N3b3JkIGNvbW1hbmQu CgotLS0KIHNyYy9iYWNrZW5kL2xpYnBxL2hiYS5jICAgICB8ICAyICstCiBzcmMvYmluL2luaXRk Yi9pbml0ZGIuYyAgICAgfCAgMiArLQogc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyAgICAgIHwgMjQg KysrKysrKysrKysrKysrLS0tLS0tLS0KIHNyYy9jb21tb24vcGdfZ2V0X2xpbmUuYyAgICB8IDQ3 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL2NvbW1v bi9zcHJvbXB0LmMgICAgICAgIHwgMTcgKysrKysrKysrKysrKysrLQogc3JjL2luY2x1ZGUvY29t bW9uL3N0cmluZy5oIHwgMTUgKysrKysrKysrKysrKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDg2IGlu c2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xp YnBxL2hiYS5jIGIvc3JjL2JhY2tlbmQvbGlicHEvaGJhLmMKaW5kZXggM2JlODc3OGQyMS4uNDMy OGViNzRmZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbGlicHEvaGJhLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbGlicHEvaGJhLmMKQEAgLTUwMCw3ICs1MDAsNyBAQCB0b2tlbml6ZV9maWxlKGNvbnN0 IGNoYXIgKmZpbGVuYW1lLCBGSUxFICpmaWxlLCBMaXN0ICoqdG9rX2xpbmVzLCBpbnQgZWxldmVs KQogCQkvKiBDb2xsZWN0IHRoZSBuZXh0IGlucHV0IGxpbmUsIGhhbmRsaW5nIGJhY2tzbGFzaCBj b250aW51YXRpb25zICovCiAJCXJlc2V0U3RyaW5nSW5mbygmYnVmKTsKIAotCQl3aGlsZSAocGdf Z2V0X2xpbmVfYXBwZW5kKGZpbGUsICZidWYpKQorCQl3aGlsZSAocGdfZ2V0X2xpbmVfYXBwZW5k KGZpbGUsICZidWYsIE5VTEwpKQogCQl7CiAJCQkvKiBTdHJpcCB0cmFpbGluZyBuZXdsaW5lLCBp bmNsdWRpbmcgXHIgaW4gY2FzZSB3ZSdyZSBvbiBXaW5kb3dzICovCiAJCQlidWYubGVuID0gcGdf c3RyaXBfY3JsZihidWYuZGF0YSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL2luaXRkYi9pbml0ZGIu YyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmluZGV4IDMxODM5YzFhMTkuLjNjNjFjNzg5ZTQg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCisrKyBiL3NyYy9iaW4vaW5pdGRi L2luaXRkYi5jCkBAIC0xNDk3LDcgKzE0OTcsNyBAQCBnZXRfc3VfcHdkKHZvaWQpCiAJCQkJCQkg cHdmaWxlbmFtZSk7CiAJCQlleGl0KDEpOwogCQl9Ci0JCXB3ZDEgPSBwZ19nZXRfbGluZShwd2Yp OworCQlwd2QxID0gcGdfZ2V0X2xpbmUocHdmLCBOVUxMKTsKIAkJaWYgKCFwd2QxKQogCQl7CiAJ CQlpZiAoZmVycm9yKHB3ZikpCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jIGIv c3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRleCAzZGU5ZDA5NmZkLi4xNDJjNTFhYTE1IDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tYW5k LmMKQEAgLTIwMjUsOSArMjAyNSwxMCBAQCBleGVjX2NvbW1hbmRfcGFzc3dvcmQoUHNxbFNjYW5T dGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpCiAJewogCQljaGFyCSAgICp1c2Vy ID0gcHNxbF9zY2FuX3NsYXNoX29wdGlvbihzY2FuX3N0YXRlLAogCQkJCQkJCQkJCQkJICBPVF9T UUxJRCwgTlVMTCwgdHJ1ZSk7Ci0JCWNoYXIJICAgKnB3MTsKLQkJY2hhcgkgICAqcHcyOworCQlj aGFyCSAgICpwdzEgPSBOVUxMOworCQljaGFyCSAgICpwdzIgPSBOVUxMOwogCQlQUUV4cEJ1ZmZl ckRhdGEgYnVmOworCQlTaWdpbnRJbnRlcnJ1cHRDb250ZXh0IHNpZ2ludF9jdHg7CiAKIAkJaWYg KHVzZXIgPT0gTlVMTCkKIAkJewpAQCAtMjA0MiwxOCArMjA0MywyMyBAQCBleGVjX2NvbW1hbmRf cGFzc3dvcmQoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpCiAJ CQlQUWNsZWFyKHJlcyk7CiAJCX0KIAorCQlzaWdpbnRfY3R4LmptcGJ1ZiA9ICZzaWdpbnRfaW50 ZXJydXB0X2ptcDsKKwkJc2lnaW50X2N0eC5lbmFibGVkID0gJnNpZ2ludF9pbnRlcnJ1cHRfZW5h YmxlZDsKKwkJc2lnaW50X2N0eC5jYW5jZWxlZCA9IGZhbHNlOworCiAJCWluaXRQUUV4cEJ1ZmZl cigmYnVmKTsKIAkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgXygiRW50ZXIgbmV3IHBhc3N3b3Jk IGZvciB1c2VyIFwiJXNcIjogIiksIHVzZXIpOwogCi0JCXB3MSA9IHNpbXBsZV9wcm9tcHQoYnVm LmRhdGEsIGZhbHNlKTsKLQkJcHcyID0gc2ltcGxlX3Byb21wdCgiRW50ZXIgaXQgYWdhaW46ICIs IGZhbHNlKTsKKwkJcHcxID0gc2ltcGxlX3Byb21wdF9leHRlbmRlZChidWYuZGF0YSwgZmFsc2Us ICZzaWdpbnRfY3R4KTsKKwkJaWYgKCFzaWdpbnRfY3R4LmNhbmNlbGVkKQorCQkJcHcyID0gc2lt cGxlX3Byb21wdF9leHRlbmRlZCgiRW50ZXIgaXQgYWdhaW46ICIsIGZhbHNlLCAmc2lnaW50X2N0 eCk7CiAKLQkJaWYgKHN0cmNtcChwdzEsIHB3MikgIT0gMCkKKwkJaWYgKCFzaWdpbnRfY3R4LmNh bmNlbGVkICYmIHN0cmNtcChwdzEsIHB3MikgIT0gMCkKIAkJewogCQkJcGdfbG9nX2Vycm9yKCJQ YXNzd29yZHMgZGlkbid0IG1hdGNoLiIpOwogCQkJc3VjY2VzcyA9IGZhbHNlOwogCQl9Ci0JCWVs c2UKKwkJZWxzZSBpZiAoIXNpZ2ludF9jdHguY2FuY2VsZWQpCiAJCXsKIAkJCWNoYXIJICAgKmVu Y3J5cHRlZF9wYXNzd29yZDsKIApAQCAtMjA4MSw4ICsyMDg3LDEwIEBAIGV4ZWNfY29tbWFuZF9w YXNzd29yZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCkKIAkJ fQogCiAJCWZyZWUodXNlcik7Ci0JCWZyZWUocHcxKTsKLQkJZnJlZShwdzIpOworCQlpZiAocHcx KQorCQkJZnJlZShwdzEpOworCQlpZiAocHcyKQorCQkJZnJlZShwdzIpOwogCQl0ZXJtUFFFeHBC dWZmZXIoJmJ1Zik7CiAJfQogCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vcGdfZ2V0X2xp bmUuYyBiL3NyYy9jb21tb24vcGdfZ2V0X2xpbmUuYwppbmRleCBhODBkMTk2MTU2Li5iZDJmODEz ZDgyIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL3BnX2dldF9saW5lLmMKKysrIGIvc3JjL2NvbW1v bi9wZ19nZXRfbGluZS5jCkBAIC00NywyNSArNDcsMzQgQEAKICAqIHRvIGNvbGxlY3QgbG90cyBv ZiBsb25nLWxpdmVkIGRhdGEuICBBIGxlc3MgbWVtb3J5LWh1bmdyeSBvcHRpb24KICAqIGlzIHRv IHVzZSBwZ19nZXRfbGluZV9idWYoKSBvciBwZ19nZXRfbGluZV9hcHBlbmQoKSBpbiBhIGxvb3As CiAgKiB0aGVuIHBzdHJkdXAoKSBlYWNoIGxpbmUuCisgKgorICogc2lnaW50X2N0eCBjYW4gb3B0 aW9uYWxseSBiZSBwcm92aWRlZCB0byBhbGxvdyB0aGlzIGZ1bmN0aW9uIHRvIGJlCisgKiBjYW5j ZWxlZCB2aWEgYW4gZXhpc3RpbmcgU0lHSU5UIHNpZ25hbCBoYW5kbGVyLiAgSWYgY2FuY2VsZWQs IHRoaXMKKyAqIGZ1bmN0aW9uIHJldHVybnMgTlVMTCwgYW5kIHNpZ2ludF9jdHgtPmNhbmNlbGVk IGlzIHNldCB0byB0cnVlLgogICovCiBjaGFyICoKLXBnX2dldF9saW5lKEZJTEUgKnN0cmVhbSkK K3BnX2dldF9saW5lKEZJTEUgKnN0cmVhbSwgU2lnaW50SW50ZXJydXB0Q29udGV4dCAqc2lnaW50 X2N0eCkKIHsKLQlTdHJpbmdJbmZvRGF0YSBidWY7CisJU3RyaW5nSW5mbyBidWY7CisJY2hhciAq cmV0OwogCi0JaW5pdFN0cmluZ0luZm8oJmJ1Zik7CisJLyogbWFrZSBzdXJlIGJ1ZiBpcyBwYWxs b2MnZCBzbyB3ZSBkb24ndCBsb3NlIGNoYW5nZXMgYWZ0ZXIgYSBsb25nam1wICovCisJYnVmID0g bWFrZVN0cmluZ0luZm8oKTsKIAotCWlmICghcGdfZ2V0X2xpbmVfYXBwZW5kKHN0cmVhbSwgJmJ1 ZikpCisJaWYgKCFwZ19nZXRfbGluZV9hcHBlbmQoc3RyZWFtLCBidWYsIHNpZ2ludF9jdHgpKQog CXsKIAkJLyogZW5zdXJlIHRoYXQgZnJlZSgpIGRvZXNuJ3QgbWVzcyB1cCBlcnJubyAqLwogCQlp bnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAKLQkJcGZyZWUoYnVmLmRhdGEpOworCQlwZnJlZShi dWYtPmRhdGEpOworCQlwZnJlZShidWYpOwogCQllcnJubyA9IHNhdmVfZXJybm87CiAJCXJldHVy biBOVUxMOwogCX0KIAotCXJldHVybiBidWYuZGF0YTsKKwlyZXQgPSBidWYtPmRhdGE7CisJcGZy ZWUoYnVmKTsKKwlyZXR1cm4gcmV0OzsKIH0KIAogLyoKQEAgLTg5LDcgKzk4LDcgQEAgcGdfZ2V0 X2xpbmVfYnVmKEZJTEUgKnN0cmVhbSwgU3RyaW5nSW5mbyBidWYpCiB7CiAJLyogV2UganVzdCBu ZWVkIHRvIGRyb3AgYW55IGRhdGEgZnJvbSB0aGUgcHJldmlvdXMgY2FsbCAqLwogCXJlc2V0U3Ry aW5nSW5mbyhidWYpOwotCXJldHVybiBwZ19nZXRfbGluZV9hcHBlbmQoc3RyZWFtLCBidWYpOwor CXJldHVybiBwZ19nZXRfbGluZV9hcHBlbmQoc3RyZWFtLCBidWYsIE5VTEwpOwogfQogCiAvKgpA QCAtMTA3LDE1ICsxMTYsMzQgQEAgcGdfZ2V0X2xpbmVfYnVmKEZJTEUgKnN0cmVhbSwgU3RyaW5n SW5mbyBidWYpCiAgKgogICogSW4gdGhlIGZhbHNlLXJlc3VsdCBjYXNlLCB0aGUgY29udGVudHMg b2YgKmJ1ZiBhcmUgbG9naWNhbGx5IHVubW9kaWZpZWQsCiAgKiB0aG91Z2ggaXQncyBwb3NzaWJs ZSB0aGF0IHRoZSBidWZmZXIgaGFzIGJlZW4gcmVzaXplZC4KKyAqCisgKiBzaWdpbnRfY3R4IGNh biBvcHRpb25hbGx5IGJlIHByb3ZpZGVkIHRvIGFsbG93IHRoaXMgZnVuY3Rpb24gdG8gYmUKKyAq IGNhbmNlbGVkIHZpYSBhbiBleGlzdGluZyBTSUdJTlQgc2lnbmFsIGhhbmRsZXIuICBJZiBjYW5j ZWxlZCwgdGhpcworICogZnVuY3Rpb24gcmV0dXJucyBmYWxzZSwgYW5kIHNpZ2ludF9jdHgtPmNh bmNlbGVkIGlzIHNldCB0byB0cnVlLgogICovCiBib29sCi1wZ19nZXRfbGluZV9hcHBlbmQoRklM RSAqc3RyZWFtLCBTdHJpbmdJbmZvIGJ1ZikKK3BnX2dldF9saW5lX2FwcGVuZChGSUxFICpzdHJl YW0sIFN0cmluZ0luZm8gYnVmLAorCQkJCSAgIFNpZ2ludEludGVycnVwdENvbnRleHQgKnNpZ2lu dF9jdHgpCiB7CiAJaW50CQkJb3JpZ19sZW4gPSBidWYtPmxlbjsKIAorCWlmIChzaWdpbnRfY3R4 ICYmIHNpZ3NldGptcCgqc2lnaW50X2N0eC0+am1wYnVmLCAxKSAhPSAwKQorCXsKKwkJLyogZ290 IGhlcmUgd2l0aCBsb25nam1wICovCisJCXNpZ2ludF9jdHgtPmNhbmNlbGVkID0gdHJ1ZTsKKwkJ cmV0dXJuIGZhbHNlOworCX0KKworCS8qIGVuYWJsZSBsb25nam1wIHdoaWxlIHdhaXRpbmcgZm9y IGlucHV0ICovCisJaWYgKHNpZ2ludF9jdHgpCisJCSpzaWdpbnRfY3R4LT5lbmFibGVkID0gdHJ1 ZTsKKwogCS8qIFJlYWQgc29tZSBkYXRhLCBhcHBlbmRpbmcgaXQgdG8gd2hhdGV2ZXIgd2UgYWxy ZWFkeSBoYXZlICovCiAJd2hpbGUgKGZnZXRzKGJ1Zi0+ZGF0YSArIGJ1Zi0+bGVuLCBidWYtPm1h eGxlbiAtIGJ1Zi0+bGVuLCBzdHJlYW0pICE9IE5VTEwpCiAJeworCQlpZiAoc2lnaW50X2N0eCkK KwkJCSpzaWdpbnRfY3R4LT5lbmFibGVkID0gZmFsc2U7CisKIAkJYnVmLT5sZW4gKz0gc3RybGVu KGJ1Zi0+ZGF0YSArIGJ1Zi0+bGVuKTsKIAogCQkvKiBEb25lIGlmIHdlIGhhdmUgY29sbGVjdGVk IGEgbmV3bGluZSAqLwpAQCAtMTI2LDYgKzE1NCw5IEBAIHBnX2dldF9saW5lX2FwcGVuZChGSUxF ICpzdHJlYW0sIFN0cmluZ0luZm8gYnVmKQogCQllbmxhcmdlU3RyaW5nSW5mbyhidWYsIDEyOCk7 CiAJfQogCisJaWYgKHNpZ2ludF9jdHgpCisJCSpzaWdpbnRfY3R4LT5lbmFibGVkID0gZmFsc2U7 CisKIAkvKiBDaGVjayBmb3IgSS9PIGVycm9ycyBhbmQgRU9GICovCiAJaWYgKGZlcnJvcihzdHJl YW0pIHx8IGJ1Zi0+bGVuID09IG9yaWdfbGVuKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9jb21tb24v c3Byb21wdC5jIGIvc3JjL2NvbW1vbi9zcHJvbXB0LmMKaW5kZXggZjNhODkxYTI2MC4uNmZiMTMz MTE0YSAxMDA2NDQKLS0tIGEvc3JjL2NvbW1vbi9zcHJvbXB0LmMKKysrIGIvc3JjL2NvbW1vbi9z cHJvbXB0LmMKQEAgLTM2LDYgKzM2LDIxIEBACiAgKi8KIGNoYXIgKgogc2ltcGxlX3Byb21wdChj b25zdCBjaGFyICpwcm9tcHQsIGJvb2wgZWNobykKK3sKKwlyZXR1cm4gc2ltcGxlX3Byb21wdF9l eHRlbmRlZChwcm9tcHQsIGVjaG8sIE5VTEwpOworfQorCisvKgorICogc2ltcGxlX3Byb21wdF9l eHRlbmRlZAorICoKKyAqIFRoaXMgaXMgdGhlIHNhbWUgYXMgc2ltcGxlX3Byb21wdCgpLCBleGNl cHQgdGhhdCBzaWdpbnRfY3R4IGNhbgorICogb3B0aW9uYWxseSBiZSBwcm92aWRlZCB0byBhbGxv dyB0aGlzIGZ1bmN0aW9uIHRvIGJlIGNhbmNlbGVkIHZpYSBhbgorICogZXhpc3RpbmcgU0lHSU5U IHNpZ25hbCBoYW5kbGVyLiAgSWYgY2FuY2VsZWQsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbgor ICogZW1wdHkgc3RyaW5nLCBhbmQgc2lnaW50X2N0eC0+Y2FuY2VsZWQgaXMgc2V0IHRvIHRydWUu CisgKi8KK2NoYXIgKgorc2ltcGxlX3Byb21wdF9leHRlbmRlZChjb25zdCBjaGFyICpwcm9tcHQs IGJvb2wgZWNobywKKwkJCQkJICAgU2lnaW50SW50ZXJydXB0Q29udGV4dCAqc2lnaW50X2N0eCkK IHsKIAljaGFyCSAgICpyZXN1bHQ7CiAJRklMRQkgICAqdGVybWluLApAQCAtMTI2LDcgKzE0MSw3 IEBAIHNpbXBsZV9wcm9tcHQoY29uc3QgY2hhciAqcHJvbXB0LCBib29sIGVjaG8pCiAJCWZmbHVz aCh0ZXJtb3V0KTsKIAl9CiAKLQlyZXN1bHQgPSBwZ19nZXRfbGluZSh0ZXJtaW4pOworCXJlc3Vs dCA9IHBnX2dldF9saW5lKHRlcm1pbiwgc2lnaW50X2N0eCk7CiAKIAkvKiBJZiB3ZSBmYWlsZWQg dG8gcmVhZCBhbnl0aGluZywganVzdCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nICovCiAJaWYgKHJl c3VsdCA9PSBOVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbW9uL3N0cmluZy5oIGIv c3JjL2luY2x1ZGUvY29tbW9uL3N0cmluZy5oCmluZGV4IDY4NmMxNThlZmUuLjMzMWYyM2VmMzMg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1vbi9zdHJpbmcuaAorKysgYi9zcmMvaW5jbHVk ZS9jb21tb24vc3RyaW5nLmgKQEAgLTEwLDggKzEwLDE2IEBACiAjaWZuZGVmIENPTU1PTl9TVFJJ TkdfSAogI2RlZmluZSBDT01NT05fU1RSSU5HX0gKIAorI2luY2x1ZGUgPHNldGptcC5oPgorCiBz dHJ1Y3QgU3RyaW5nSW5mb0RhdGE7CQkJLyogYXZvaWQgaW5jbHVkaW5nIHN0cmluZ2luZm8uaCBo ZXJlICovCiAKK3R5cGVkZWYgc3RydWN0IFNpZ2ludEludGVycnVwdENvbnRleHQgeworCXNpZ2pt cF9idWYgKmptcGJ1ZjsJCQkvKiBwcmVleGlzdGluZyBsb25nam1wIGJ1ZmZlciAqLworCXZvbGF0 aWxlIGJvb2wgKmVuYWJsZWQ7CQkvKiB1c2VkIHRvIGVuYWJsZS9kaXNhYmxlIFNJR0lOVCBoYW5k bGluZyAqLworCWJvb2wgY2FuY2VsZWQ7CQkJCS8qIGluZGljYXRlcyB3aGV0aGVyIGNhbmNlbGxh dGlvbiBvY2N1cnJlZCAqLworfSBTaWdpbnRJbnRlcnJ1cHRDb250ZXh0OworCiAvKiBmdW5jdGlv bnMgaW4gc3JjL2NvbW1vbi9zdHJpbmcuYyAqLwogZXh0ZXJuIGJvb2wgcGdfc3RyX2VuZHN3aXRo KGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhciAqZW5kKTsKIGV4dGVybiBpbnQJc3RydG9pbnQo Y29uc3QgY2hhciAqcGdfcmVzdHJpY3Qgc3RyLCBjaGFyICoqcGdfcmVzdHJpY3QgZW5kcHRyLApA QCAtMjEsMTEgKzI5LDE0IEBAIGV4dGVybiBpbnQJcGdfc3RyaXBfY3JsZihjaGFyICpzdHIpOwog ZXh0ZXJuIGJvb2wgcGdfaXNfYXNjaWkoY29uc3QgY2hhciAqc3RyKTsKIAogLyogZnVuY3Rpb25z IGluIHNyYy9jb21tb24vcGdfZ2V0X2xpbmUuYyAqLwotZXh0ZXJuIGNoYXIgKnBnX2dldF9saW5l KEZJTEUgKnN0cmVhbSk7CitleHRlcm4gY2hhciAqcGdfZ2V0X2xpbmUoRklMRSAqc3RyZWFtLCBT aWdpbnRJbnRlcnJ1cHRDb250ZXh0ICpzaWdpbnRfY3R4KTsKIGV4dGVybiBib29sIHBnX2dldF9s aW5lX2J1ZihGSUxFICpzdHJlYW0sIHN0cnVjdCBTdHJpbmdJbmZvRGF0YSAqYnVmKTsKLWV4dGVy biBib29sIHBnX2dldF9saW5lX2FwcGVuZChGSUxFICpzdHJlYW0sIHN0cnVjdCBTdHJpbmdJbmZv RGF0YSAqYnVmKTsKK2V4dGVybiBib29sIHBnX2dldF9saW5lX2FwcGVuZChGSUxFICpzdHJlYW0s IHN0cnVjdCBTdHJpbmdJbmZvRGF0YSAqYnVmLAorCQkJCQkJCSAgIFNpZ2ludEludGVycnVwdENv bnRleHQgKnNpZ2ludF9jdHgpOwogCiAvKiBmdW5jdGlvbnMgaW4gc3JjL2NvbW1vbi9zcHJvbXB0 LmMgKi8KIGV4dGVybiBjaGFyICpzaW1wbGVfcHJvbXB0KGNvbnN0IGNoYXIgKnByb21wdCwgYm9v bCBlY2hvKTsKK2V4dGVybiBjaGFyICpzaW1wbGVfcHJvbXB0X2V4dGVuZGVkKGNvbnN0IGNoYXIg KnByb21wdCwgYm9vbCBlY2hvLAorCQkJCQkJCQkJU2lnaW50SW50ZXJydXB0Q29udGV4dCAqc2ln aW50X2N0eCk7CiAKICNlbmRpZgkJCQkJCQkvKiBDT01NT05fU1RSSU5HX0ggKi8KLS0gCjIuMTYu NgoK --_002_AEA1BA57BD21423798591C04FE38602Bamazoncom_--