Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rSMNf-00DGen-Df for pgsql-bugs@arkaria.postgresql.org; Tue, 23 Jan 2024 19:24:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rSMNe-00FpPV-Cg for pgsql-bugs@arkaria.postgresql.org; Tue, 23 Jan 2024 19:24:18 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rSMNd-00FpPI-TT for pgsql-bugs@lists.postgresql.org; Tue, 23 Jan 2024 19:24:18 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rSMNa-003Ldk-7F for pgsql-bugs@postgresql.org; Tue, 23 Jan 2024 19:24:17 +0000 Received: from [172.30.9.138] (unknown [172.30.9.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: m.zhilin@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 3D029E20E3F; Tue, 23 Jan 2024 22:24:12 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1706037852; bh=5FadJ3VM179vkw9ut9gDFD+TZGVAcKyHYnrzhPZSzZc=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=4Vq+BWe2V0Oo/SGFHmUzQu2fOVYHZj4iHHoFDgaRmt28d3n20GiyLy+GjpUzTucjW I2i+xjzWiKqKnQgKSVdoJ3TLYbk4Z92u3zJ2yY0Z8flecdia6MjZo5imnumB87EIn7 GtBLE7IFED7AE/JinsM1Agt2xnkU2fznrJEzS52nzEWlpdobi2sADqmF1ZxXNhu2CK 9ANXBDLy2YYmcVApxZKgJ3NZuIhFdf0DkjPCW9fPFqxwKXmBpMA63vsWbLk4Mk21r/ OvNLIqvcVm/txFZ8gcMsH6vPuI3xjqz1Rx3RwCwLzbMmgTsVl8i9yFH9I9Otw4XiHt n1aRziHP+4q0w== Content-Type: multipart/mixed; boundary="------------wkXmReYidHqn39fHaSVvYhmb" Message-ID: <68d87456-634d-44dc-b2ae-077f3601f71e@postgrespro.ru> Date: Tue, 23 Jan 2024 22:24:11 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [BUG] false positive in bt_index_check in case of short 4B varlena datum Content-Language: en-US To: "Andrey M. Borodin" , Alexander Lakhin , jian.universality@gmail.com Cc: pgsql-bugs@postgresql.org, Yura Sokolov References: <7bdbe559-d61a-4ae4-a6e1-48abdf3024cc@postgrespro.ru> <0FDE2089-D306-4CBB-AD1F-EC4B419E3B33@yandex-team.ru> <49BBA065-4C9A-4E50-9048-B457907FF219@yandex-team.ru> <76bc0dc9-4e43-4cd8-8eec-249b254ed1c9@postgrespro.ru> <8C83FCCA-2548-499A-8B1C-96C3D8ADB787@yandex-team.ru> From: Michael Zhilin In-Reply-To: X-Virus-Scanned: clamav-milter 0.100.3 at postfix X-Virus-Status: Clean List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------wkXmReYidHqn39fHaSVvYhmb Content-Type: multipart/alternative; boundary="------------lIeuh0j1cnR0UUPN7xKpZIRr" --------------lIeuh0j1cnR0UUPN7xKpZIRr Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, Thank you, Jian, for nice comments! PFA version with your recommendations. Andrey, I didn't yet check your patches, but at least compiler complains about added, but unused variable "miss_oversized_tuple". verify_nbtree.c:2898:7: warning: unused variable 'miss_oversized_tuple' [-Wunused-variable]         bool miss_oversized_tuple = false; So patch has been updated to fix this warning. Attached v4, rebased version with Jian's comments & removed unused variable. Thanks,  Michael. On 1/23/24 21:09, Andrey M. Borodin wrote: > >> On 20 Jan 2024, at 09:00, Alexander Lakhin wrote: >> >>> Alexander, do you plan to provide fixes for bugs you discovered? >> No, I don't have a concrete proposal how to fix those bugs. I'd thought >> that fixing the whole class of such anomalies, not only one case, is a good >> thing to do, but if it's too complicated, maybe other similar bugs could be >> put aside. > PFA draft fixes for both this errors. Alexander, Michael, Jian, what do you think? > > I did not touch anything in first step - fix for original bug in this thread. However, I think that comments from Jian He worth incorporating into the fix. > > > Best regards, Andrey Borodin. > -- Michael Zhilin Postgres Professional +7(925)3366270 https://www.postgrespro.ru --------------lIeuh0j1cnR0UUPN7xKpZIRr Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit Hi,

Thank you, Jian, for nice comments!
PFA version with your recommendations.

Andrey,
I didn't yet check your patches, but at least compiler complains about added, but unused variable "
miss_oversized_tuple".

verify_nbtree.c:2898:7: warning: unused variable 'miss_oversized_tuple' [-Wunused-variable]
        bool miss_oversized_tuple = false;

So patch has been updated to fix this warning.

Attached v4, rebased version with Jian's comments & removed unused variable.

Thanks,
 Michael.

On 1/23/24 21:09, Andrey M. Borodin wrote:

On 20 Jan 2024, at 09:00, Alexander Lakhin <exclusion@gmail.com> wrote:

Alexander, do you plan to provide fixes for bugs you discovered?
No, I don't have a concrete proposal how to fix those bugs. I'd thought
that fixing the whole class of such anomalies, not only one case, is a good
thing to do, but if it's too complicated, maybe other similar bugs could be
put aside.
PFA draft fixes for both this errors. Alexander, Michael, Jian, what do you think?

I did not touch anything in first step - fix for original bug in this thread. However, I think that comments from Jian He worth incorporating into the fix.


Best regards, Andrey Borodin.


-- 
Michael Zhilin
Postgres Professional
+7(925)3366270
https://www.postgrespro.ru
--------------lIeuh0j1cnR0UUPN7xKpZIRr-- --------------wkXmReYidHqn39fHaSVvYhmb Content-Type: text/x-patch; charset=UTF-8; name="v4-0001-contrib-amcheck-must-support-different-header-siz.patch" Content-Disposition: attachment; filename*0="v4-0001-contrib-amcheck-must-support-different-header-siz.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzY2Y0MzE5NWU1NDQzOTQzMzg1NGNiNDM0YTI3ZTg1MWI3YWM2NTI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIFpoaWxpbiA8bWl6aGthQEZyZWVCU0Qu b3JnPgpEYXRlOiBUaHUsIDE0IERlYyAyMDIzIDE2OjA4OjE1ICswMzAwClN1YmplY3Q6IFtQ QVRDSCB2NCAxLzNdIGNvbnRyaWIvYW1jaGVjazogbXVzdCBzdXBwb3J0IGRpZmZlcmVudCBo ZWFkZXIgc2l6ZSBvZgogc2hvcnQgdmFybGVuYSBkYXR1bQoKLS0tCiBjb250cmliL2FtY2hl Y2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0IHwgMTcgKysrKysrKysrKysKIGNvbnRyaWIv YW1jaGVjay9zcWwvY2hlY2tfYnRyZWUuc3FsICAgICAgfCAxNiArKysrKysrKysrKwogY29u dHJpYi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYyAgICAgICAgICB8IDM2ICsrKysrKysrKysr KysrKysrKysrLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay9leHBlY3RlZC9jaGVj a19idHJlZS5vdXQgYi9jb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0 CmluZGV4IDg2YjM4ZDkzZjQxLi42ZWY3OTE1YjMxOSAxMDA2NDQKLS0tIGEvY29udHJpYi9h bWNoZWNrL2V4cGVjdGVkL2NoZWNrX2J0cmVlLm91dAorKysgYi9jb250cmliL2FtY2hlY2sv ZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0CkBAIC0xLDMgKzEsNCBAQAorLS0gZGlyZWN0b3J5 IHBhdGhzIGFyZSBwYXNzZWQgdG8gdXMgaW4gZW52aXJvbm1lbnQgdmFyaWFibGVzCiBDUkVB VEUgVEFCTEUgYnR0ZXN0X2EoaWQgaW50OCk7CiBDUkVBVEUgVEFCTEUgYnR0ZXN0X2IoaWQg aW50OCk7CiBDUkVBVEUgVEFCTEUgYnR0ZXN0X211bHRpKGlkIGludDgsIGRhdGEgaW50OCk7 CkBAIC0yNDAsNiArMjQxLDIxIEBAIFNFTEVDVCBidF9pbmRleF9jaGVjaygnYnR0ZXN0X3Vu aXF1ZV9udWxsc19iX2NfaWR4JywgaGVhcGFsbGluZGV4ZWQgPT4gdHJ1ZSwgY2hlCiAgCiAo MSByb3cpCiAKKy0tCistLSBCVUc6IG11c3Qgc3VwcG9ydCBkaWZmZXJlbnQgaGVhZGVyIHNp emUgb2Ygc2hvcnQgdmFybGVuYSBkYXR1bQorLS0gaHR0cHM6Ly9wb3N0Z3IuZXMvbS83YmRi ZTU1OS1kNjFhLTRhZTQtYTZlMS00OGFiZGYzMDI0Y2NAcG9zdGdyZXNwcm8ucnUKKy0tCitD UkVBVEUgVEFCTEUgdmFybGVuYV9idWcgKHYgdGV4dCk7CitBTFRFUiBUQUJMRSB2YXJsZW5h X2J1ZyBBTFRFUiBjb2x1bW4gdiBTRVQgc3RvcmFnZSBwbGFpbjsKK0lOU0VSVCBJTlRPIHZh cmxlbmFfYnVnIFZBTFVFUyAoJ3gnKTsKK0NPUFkgdmFybGVuYV9idWcgZnJvbSBzdGRpbjsK K0NSRUFURSBJTkRFWCB2YXJsZW5hX2J1Z19pZHggb24gdmFybGVuYV9idWcodik7CitTRUxF Q1QgYnRfaW5kZXhfY2hlY2soJ3ZhcmxlbmFfYnVnX2lkeCcsIHRydWUpOworIGJ0X2luZGV4 X2NoZWNrIAorLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCiAtLSBjbGVhbnVwCiBE Uk9QIFRBQkxFIGJ0dGVzdF9hOwogRFJPUCBUQUJMRSBidHRlc3RfYjsKQEAgLTI1MCwzICsy NjYsNCBAQCBEUk9QIEZVTkNUSU9OIGlmdW4oaW50OCk7CiBEUk9QIFRBQkxFIGJ0dGVzdF91 bmlxdWVfbnVsbHM7CiBEUk9QIE9XTkVEIEJZIHJlZ3Jlc3NfYnR0ZXN0X3JvbGU7IC0tIHBl cm1pc3Npb25zCiBEUk9QIFJPTEUgcmVncmVzc19idHRlc3Rfcm9sZTsKK0RST1AgVEFCTEUg dmFybGVuYV9idWc7CmRpZmYgLS1naXQgYS9jb250cmliL2FtY2hlY2svc3FsL2NoZWNrX2J0 cmVlLnNxbCBiL2NvbnRyaWIvYW1jaGVjay9zcWwvY2hlY2tfYnRyZWUuc3FsCmluZGV4IGFh NDYxZjdmYjk3Li5lMTc5MjRiMTU0OSAxMDA2NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL3Nx bC9jaGVja19idHJlZS5zcWwKKysrIGIvY29udHJpYi9hbWNoZWNrL3NxbC9jaGVja19idHJl ZS5zcWwKQEAgLTEsMyArMSw0IEBACistLSBkaXJlY3RvcnkgcGF0aHMgYXJlIHBhc3NlZCB0 byB1cyBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMKIENSRUFURSBUQUJMRSBidHRlc3RfYShp ZCBpbnQ4KTsKIENSRUFURSBUQUJMRSBidHRlc3RfYihpZCBpbnQ4KTsKIENSRUFURSBUQUJM RSBidHRlc3RfbXVsdGkoaWQgaW50OCwgZGF0YSBpbnQ4KTsKQEAgLTE0OCw2ICsxNDksMjAg QEAgU0VMRUNUIGJ0X2luZGV4X2NoZWNrKCdidHRlc3RfdW5pcXVlX251bGxzX2Nfa2V5Jywg aGVhcGFsbGluZGV4ZWQgPT4gdHJ1ZSwgY2hlY2sKIENSRUFURSBJTkRFWCBvbiBidHRlc3Rf dW5pcXVlX251bGxzIChiLGMpOwogU0VMRUNUIGJ0X2luZGV4X2NoZWNrKCdidHRlc3RfdW5p cXVlX251bGxzX2JfY19pZHgnLCBoZWFwYWxsaW5kZXhlZCA9PiB0cnVlLCBjaGVja3VuaXF1 ZSA9PiB0cnVlKTsKIAorLS0KKy0tIEJVRzogbXVzdCBzdXBwb3J0IGRpZmZlcmVudCBoZWFk ZXIgc2l6ZSBvZiBzaG9ydCB2YXJsZW5hIGRhdHVtCistLSBodHRwczovL3Bvc3Rnci5lcy9t LzdiZGJlNTU5LWQ2MWEtNGFlNC1hNmUxLTQ4YWJkZjMwMjRjY0Bwb3N0Z3Jlc3Byby5ydQor LS0KKworQ1JFQVRFIFRBQkxFIHZhcmxlbmFfYnVnICh2IHRleHQpOworQUxURVIgVEFCTEUg dmFybGVuYV9idWcgQUxURVIgY29sdW1uIHYgU0VUIHN0b3JhZ2UgcGxhaW47CitJTlNFUlQg SU5UTyB2YXJsZW5hX2J1ZyBWQUxVRVMgKCd4Jyk7CitDT1BZIHZhcmxlbmFfYnVnIGZyb20g c3RkaW47Cit4CitcLgorQ1JFQVRFIElOREVYIHZhcmxlbmFfYnVnX2lkeCBvbiB2YXJsZW5h X2J1Zyh2KTsKK1NFTEVDVCBidF9pbmRleF9jaGVjaygndmFybGVuYV9idWdfaWR4JywgdHJ1 ZSk7CisKIC0tIGNsZWFudXAKIERST1AgVEFCTEUgYnR0ZXN0X2E7CiBEUk9QIFRBQkxFIGJ0 dGVzdF9iOwpAQCAtMTU4LDMgKzE3Myw0IEBAIERST1AgRlVOQ1RJT04gaWZ1bihpbnQ4KTsK IERST1AgVEFCTEUgYnR0ZXN0X3VuaXF1ZV9udWxsczsKIERST1AgT1dORUQgQlkgcmVncmVz c19idHRlc3Rfcm9sZTsgLS0gcGVybWlzc2lvbnMKIERST1AgUk9MRSByZWdyZXNzX2J0dGVz dF9yb2xlOworRFJPUCBUQUJMRSB2YXJsZW5hX2J1ZzsKZGlmZiAtLWdpdCBhL2NvbnRyaWIv YW1jaGVjay92ZXJpZnlfbmJ0cmVlLmMgYi9jb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJl ZS5jCmluZGV4IDkxY2FhNTNkZDhiLi5lN2YwMWMyYWRkYiAxMDA2NDQKLS0tIGEvY29udHJp Yi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYworKysgYi9jb250cmliL2FtY2hlY2svdmVyaWZ5 X25idHJlZS5jCkBAIC0yOTQyLDcgKzI5NDIsNyBAQCBidF9ub3JtYWxpemVfdHVwbGUoQnRy ZWVDaGVja1N0YXRlICpzdGF0ZSwgSW5kZXhUdXBsZSBpdHVwKQogCVR1cGxlRGVzYwl0dXBs ZURlc2NyaXB0b3IgPSBSZWxhdGlvbkdldERlc2NyKHN0YXRlLT5yZWwpOwogCURhdHVtCQlu b3JtYWxpemVkW0lOREVYX01BWF9LRVlTXTsKIAlib29sCQlpc251bGxbSU5ERVhfTUFYX0tF WVNdOwotCWJvb2wJCXRvYXN0X2ZyZWVbSU5ERVhfTUFYX0tFWVNdOworCWJvb2wJCW5lZWRf ZnJlZVtJTkRFWF9NQVhfS0VZU107CiAJYm9vbAkJZm9ybW5ld3R1cCA9IGZhbHNlOwogCUlu ZGV4VHVwbGUJcmVmb3JtZWQ7CiAJaW50CQkJaTsKQEAgLTI5NjEsNyArMjk2MSw3IEBAIGJ0 X25vcm1hbGl6ZV90dXBsZShCdHJlZUNoZWNrU3RhdGUgKnN0YXRlLCBJbmRleFR1cGxlIGl0 dXApCiAJCWF0dCA9IFR1cGxlRGVzY0F0dHIodHVwbGVEZXNjcmlwdG9yLCBpKTsKIAogCQkv KiBBc3N1bWUgdW50b2FzdGVkL2FscmVhZHkgbm9ybWFsaXplZCBkYXR1bSBpbml0aWFsbHkg Ki8KLQkJdG9hc3RfZnJlZVtpXSA9IGZhbHNlOworCQluZWVkX2ZyZWVbaV0gPSBmYWxzZTsK IAkJbm9ybWFsaXplZFtpXSA9IGluZGV4X2dldGF0dHIoaXR1cCwgYXR0LT5hdHRudW0sCiAJ CQkJCQkJCQkgIHR1cGxlRGVzY3JpcHRvciwKIAkJCQkJCQkJCSAgJmlzbnVsbFtpXSk7CkBA IC0yOTczLDYgKzI5NzMsNyBAQCBidF9ub3JtYWxpemVfdHVwbGUoQnRyZWVDaGVja1N0YXRl ICpzdGF0ZSwgSW5kZXhUdXBsZSBpdHVwKQogCQkgKiBpbmRleCB3aXRob3V0IGZ1cnRoZXIg cHJvY2Vzc2luZywgc28gYW4gZXh0ZXJuYWwgdmFybGVuYSBoZWFkZXIKIAkJICogc2hvdWxk IG5ldmVyIGJlIGVuY291bnRlcmVkIGhlcmUKIAkJICovCisKIAkJaWYgKFZBUkFUVF9JU19F WFRFUk5BTChEYXR1bUdldFBvaW50ZXIobm9ybWFsaXplZFtpXSkpKQogCQkJZXJlcG9ydChF UlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTkRFWF9DT1JSVVBURUQpLApAQCAtMjk4 NCwxMSArMjk4NSwzMiBAQCBidF9ub3JtYWxpemVfdHVwbGUoQnRyZWVDaGVja1N0YXRlICpz dGF0ZSwgSW5kZXhUdXBsZSBpdHVwKQogCQl7CiAJCQlmb3JtbmV3dHVwID0gdHJ1ZTsKIAkJ CW5vcm1hbGl6ZWRbaV0gPSBQb2ludGVyR2V0RGF0dW0oUEdfREVUT0FTVF9EQVRVTShub3Jt YWxpemVkW2ldKSk7Ci0JCQl0b2FzdF9mcmVlW2ldID0gdHJ1ZTsKKwkJCW5lZWRfZnJlZVtp XSA9IHRydWU7CiAJCX0KKwkJLyoKKwkJICogU2hvcnQgdHVwbGVzIG1heSBoYXZlIDFCIG9y IDRCIGhlYWRlci4gQ29udmVydCA0QiBoZWFkZXIgb2Ygc2hvcnQKKwkJICogdHVwbGVzIHRv IDFCCisJCSAqLworCQllbHNlIGlmIChWQVJBVFRfQ0FOX01BS0VfU0hPUlQoRGF0dW1HZXRQ b2ludGVyKG5vcm1hbGl6ZWRbaV0pKSkKKwkJeworCQkJLyogY29udmVydCB0byBzaG9ydCB2 YXJsZW5hICovCisJCQlTaXplIGxlbiA9IFZBUkFUVF9DT05WRVJURURfU0hPUlRfU0laRShE YXR1bUdldFBvaW50ZXIobm9ybWFsaXplZFtpXSkpOworCQkJY2hhciAqZGF0YSA9IHBhbGxv YyhsZW4pOworCisJCQlTRVRfVkFSU0laRV9TSE9SVChkYXRhLCBsZW4pOworCQkJbWVtY3B5 KGRhdGEgKyAxLCBWQVJEQVRBKERhdHVtR2V0UG9pbnRlcihub3JtYWxpemVkW2ldKSksIGxl biAtIDEpOworCisJCQlmb3JtbmV3dHVwID0gdHJ1ZTsKKwkJCW5vcm1hbGl6ZWRbaV0gPSBQ b2ludGVyR2V0RGF0dW0oZGF0YSk7CisJCQluZWVkX2ZyZWVbaV0gPSB0cnVlOworCQl9CisK IAl9CiAKLQkvKiBFYXNpZXIgY2FzZTogVHVwbGUgaGFzIHZhcmxlbmEgZGF0dW1zLCBub25l IG9mIHdoaWNoIGFyZSBjb21wcmVzc2VkICovCisJLyoKKwkgKiBFYXNpZXIgY2FzZTogVHVw bGUgaGFzIHZhcmxlbmEgZGF0dW1zLCBub25lIG9mIHdoaWNoIGFyZSBjb21wcmVzc2VkIG9y CisJICogc2hvcnQgd2l0aCA0QiBoZWFkZXIKKwkgKi8KIAlpZiAoIWZvcm1uZXd0dXApCiAJ CXJldHVybiBpdHVwOwogCkBAIC0yOTk3LDYgKzMwMTksMTAgQEAgYnRfbm9ybWFsaXplX3R1 cGxlKEJ0cmVlQ2hlY2tTdGF0ZSAqc3RhdGUsIEluZGV4VHVwbGUgaXR1cCkKIAkgKiBjcmVh dGluZyBub3JtYWxpemVkIHZlcnNpb24gb2YgdGhlIHR1cGxlIGZyb20gdW5jb21wcmVzc2Vk IGlucHV0IGRhdHVtcwogCSAqIChub3JtYWxpemVkIGlucHV0IGRhdHVtcykuICBUaGlzIGlz IHJhdGhlciBuYWl2ZSwgYnV0IHNob3VsZG4ndCBiZQogCSAqIG5lY2Vzc2FyeSB0b28gb2Z0 ZW4uCisJICogQWxzbyB0dXBsZSBoYWQgc2hvcnQgdmFybGVuYSBkYXR1bXMgd2l0aCA0QiBo ZWFkZXIuIEFjdHVhbGx5IHRoZXJlIGlzIG5vCisJICogcmVzdHJpY3Rpb24gd2l0aCBoYXZl IGhlYXAgdHVwbGUgY29udGFpbmluZyB2YXJsZW5hIGRhdHVtIHdpdGggNEIgaGVhZGVyCisJ ICogYW5kIGNvcnJlc3BvbmRpbmcgaW5kZXggdHVwbGUgY29udGFpbmluZyB2YXJsZW5hIGRh dHVtIHdpdGggMUIgaGVhZGVyLgorCSAqIEZvciBmaW5nZXJwcmludGluZyBsZXQncyBjb252 ZXJ0IGhlYXAgdHVwbGUgdmFybGVuYSBkYXR1bSB0byAxQiBmb3JtYXQuCiAJICoKIAkgKiBO b3RlIHRoYXQgd2UgcmVseSBvbiBkZXRlcm1pbmlzdGljIGluZGV4X2Zvcm1fdHVwbGUoKSBU T0FTVCBjb21wcmVzc2lvbgogCSAqIG9mIG5vcm1hbGl6ZWQgaW5wdXQuCkBAIC0zMDA2LDcg KzMwMzIsNyBAQCBidF9ub3JtYWxpemVfdHVwbGUoQnRyZWVDaGVja1N0YXRlICpzdGF0ZSwg SW5kZXhUdXBsZSBpdHVwKQogCiAJLyogQ2Fubm90IGxlYWsgbWVtb3J5IGhlcmUgKi8KIAlm b3IgKGkgPSAwOyBpIDwgdHVwbGVEZXNjcmlwdG9yLT5uYXR0czsgaSsrKQotCQlpZiAodG9h c3RfZnJlZVtpXSkKKwkJaWYgKG5lZWRfZnJlZVtpXSkKIAkJCXBmcmVlKERhdHVtR2V0UG9p bnRlcihub3JtYWxpemVkW2ldKSk7CiAKIAlyZXR1cm4gcmVmb3JtZWQ7Ci0tIAoyLjQzLjAK Cg== --------------wkXmReYidHqn39fHaSVvYhmb Content-Type: text/x-patch; charset=UTF-8; name="v4-0002-amcheck-prevent-false-positives-from-extended-dat.patch" Content-Disposition: attachment; filename*0="v4-0002-amcheck-prevent-false-positives-from-extended-dat.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmMjMxNjQzYTJlOTkwZDc2N2Q3ODc2NmEyYmJkMDczZDMwYmM2ZTRkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IE0uIEJvcm9kaW4iIDx4NG1tbUBuaWdo dC5sb2NhbD4KRGF0ZTogVHVlLCAyMyBKYW4gMjAyNCAyMTo1NzowMiArMDUwMApTdWJqZWN0 OiBbUEFUQ0ggdjQgMi8zXSBhbWNoZWNrOiBwcmV2ZW50IGZhbHNlIHBvc2l0aXZlcyBmcm9t IGV4dGVuZGVkIGRhdHVtcwoKUmVwb3J0ZWQtYnk6IEFsZXhhbmRlciBMYWtoaW4KLS0tCiBj b250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0IHwgMTIgKysrKysrKysr KysrCiBjb250cmliL2FtY2hlY2svc3FsL2NoZWNrX2J0cmVlLnNxbCAgICAgIHwgIDkgKysr KysrKysrCiBjb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5jICAgICAgICAgIHwgMTIg KysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9jb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0IGIvY29u dHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2J0cmVlLm91dAppbmRleCA2ZWY3OTE1YjMx OS4uZjg2Mzg1ODIxODAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYW1jaGVjay9leHBlY3RlZC9j aGVja19idHJlZS5vdXQKKysrIGIvY29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2J0 cmVlLm91dApAQCAtMjU2LDYgKzI1NiwxOCBAQCBTRUxFQ1QgYnRfaW5kZXhfY2hlY2soJ3Zh cmxlbmFfYnVnX2lkeCcsIHRydWUpOwogIAogKDEgcm93KQogCistLSBDaGVjayBleHRlbmRl ZCB2YXJsZW5hCitDUkVBVEUgVEFCTEUgdGJsKHQgdGV4dCk7CitBTFRFUiBUQUJMRSB0Ymwg QUxURVIgQ09MVU1OIHQgU0VUIFNUT1JBR0UgcGxhaW47CitDUkVBVEUgSU5ERVggdGJsX2lk eCBPTiB0YmwgKHQpOworSU5TRVJUIElOVE8gdGJsIFZBTFVFUyAocmVwZWF0KCdUZXN0Jywg MjUwKSk7CitBTFRFUiBUQUJMRSB0YmwgQUxURVIgQ09MVU1OIHQgU0VUIFNUT1JBR0UgZXh0 ZW5kZWQ7CitTRUxFQ1QgYnRfaW5kZXhfY2hlY2soJ3RibF9pZHgnLCB0cnVlKTsKKyBidF9p bmRleF9jaGVjayAKKy0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogLS0gY2xlYW51 cAogRFJPUCBUQUJMRSBidHRlc3RfYTsKIERST1AgVEFCTEUgYnR0ZXN0X2I7CmRpZmYgLS1n aXQgYS9jb250cmliL2FtY2hlY2svc3FsL2NoZWNrX2J0cmVlLnNxbCBiL2NvbnRyaWIvYW1j aGVjay9zcWwvY2hlY2tfYnRyZWUuc3FsCmluZGV4IGUxNzkyNGIxNTQ5Li41ZGE0OWVhOTRm ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL3NxbC9jaGVja19idHJlZS5zcWwKKysr IGIvY29udHJpYi9hbWNoZWNrL3NxbC9jaGVja19idHJlZS5zcWwKQEAgLTE2Myw2ICsxNjMs MTUgQEAgeAogQ1JFQVRFIElOREVYIHZhcmxlbmFfYnVnX2lkeCBvbiB2YXJsZW5hX2J1Zyh2 KTsKIFNFTEVDVCBidF9pbmRleF9jaGVjaygndmFybGVuYV9idWdfaWR4JywgdHJ1ZSk7CiAK Ky0tIENoZWNrIGV4dGVuZGVkIHZhcmxlbmEKK0NSRUFURSBUQUJMRSB0YmwodCB0ZXh0KTsK K0FMVEVSIFRBQkxFIHRibCBBTFRFUiBDT0xVTU4gdCBTRVQgU1RPUkFHRSBwbGFpbjsKK0NS RUFURSBJTkRFWCB0YmxfaWR4IE9OIHRibCAodCk7CitJTlNFUlQgSU5UTyB0YmwgVkFMVUVT IChyZXBlYXQoJ1Rlc3QnLCAyNTApKTsKK0FMVEVSIFRBQkxFIHRibCBBTFRFUiBDT0xVTU4g dCBTRVQgU1RPUkFHRSBleHRlbmRlZDsKKworU0VMRUNUIGJ0X2luZGV4X2NoZWNrKCd0Ymxf aWR4JywgdHJ1ZSk7CisKIC0tIGNsZWFudXAKIERST1AgVEFCTEUgYnR0ZXN0X2E7CiBEUk9Q IFRBQkxFIGJ0dGVzdF9iOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9u YnRyZWUuYyBiL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfbmJ0cmVlLmMKaW5kZXggZTdmMDFj MmFkZGIuLjY2NTRiNWFmZTczIDEwMDY0NAotLS0gYS9jb250cmliL2FtY2hlY2svdmVyaWZ5 X25idHJlZS5jCisrKyBiL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfbmJ0cmVlLmMKQEAgLTIz LDYgKzIzLDcgQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJh Y2Nlc3MvaGVhcHRvYXN0LmgiCiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgog I2luY2x1ZGUgImFjY2Vzcy9uYnRyZWUuaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIK QEAgLTI5ODEsNiArMjk4MiwxNyBAQCBidF9ub3JtYWxpemVfdHVwbGUoQnRyZWVDaGVja1N0 YXRlICpzdGF0ZSwgSW5kZXhUdXBsZSBpdHVwKQogCQkJCQkJCUl0ZW1Qb2ludGVyR2V0Qmxv Y2tOdW1iZXIoJihpdHVwLT50X3RpZCkpLAogCQkJCQkJCUl0ZW1Qb2ludGVyR2V0T2Zmc2V0 TnVtYmVyKCYoaXR1cC0+dF90aWQpKSwKIAkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShzdGF0ZS0+cmVsKSkpKTsKKwkJZWxzZSBpZiAoIVZBUkFUVF9JU19FWFRFTkRFRChEYXR1 bUdldFBvaW50ZXIobm9ybWFsaXplZFtpXSkpICYmCisJCQlWQVJTSVpFKERhdHVtR2V0UG9p bnRlcihub3JtYWxpemVkW2ldKSkgPiBUT0FTVF9JTkRFWF9UQVJHRVQgJiYKKwkJCShhdHQt PmF0dHN0b3JhZ2UgPT0gVFlQU1RPUkFHRV9FWFRFTkRFRCB8fAorCQkJIGF0dC0+YXR0c3Rv cmFnZSA9PSBUWVBTVE9SQUdFX01BSU4pKQorCQl7CisJCQkvKgorCQkJICogdGhpcyBhdHRy aWJ1dGUgd2lsbCBiZSBjb21wcmVzc2VkIGJ5IGluZGV4X2Zvcm1fdHVwbGUoKSwKKwkJCSAq IHRoaXMgbWlnaHQgYmUgYWxyZWFkeSBkb25lIGluIGhlYXAsIHNvIGZvcmNlIGZvcm1pbmcu CisJCQkgKi8KKwkJCWZvcm1uZXd0dXAgPSB0cnVlOworCQl9CiAJCWVsc2UgaWYgKFZBUkFU VF9JU19DT01QUkVTU0VEKERhdHVtR2V0UG9pbnRlcihub3JtYWxpemVkW2ldKSkpCiAJCXsK IAkJCWZvcm1uZXd0dXAgPSB0cnVlOwotLSAKMi40My4wCgo= --------------wkXmReYidHqn39fHaSVvYhmb Content-Type: text/x-patch; charset=UTF-8; name="v4-0003-amcheck-avoid-failing-on-oversized-tuples.patch" Content-Disposition: attachment; filename="v4-0003-amcheck-avoid-failing-on-oversized-tuples.patch" Content-Transfer-Encoding: base64 RnJvbSBhYTYxMTg0N2U4ZmVlMDk5NGIzNWNkYTg4MTA1OGNjNzRhN2E1YWIwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IE0uIEJvcm9kaW4iIDx4NG1tbUBuaWdo dC5sb2NhbD4KRGF0ZTogVHVlLCAyMyBKYW4gMjAyNCAyMzowMzoyOCArMDUwMApTdWJqZWN0 OiBbUEFUQ0ggdjQgMy8zXSBhbWNoZWNrOiBhdm9pZCBmYWlsaW5nIG9uIG92ZXJzaXplZCB0 dXBsZXMKCkR1ZSB0byBjaGFuZ2VzIGluIHRvYXN0IHBvbGljaWVzLCBzb21lIGhlYXAgdHVw bGVzIG1pZ2h0IGJlY29tZSB0b28KYmlnIGluZGV4IHR1cGxlcy4gVGhpcyBjb21taXQgcHJl dmVudHMgRVJST1JzIGluIHRoaXMgY2FzZSwgYmVjYXVzZQp0aGlzIGFub21hbHkgZG9lcyBu b3QgY3JlYXRlIGRhbmdlcm91cyBjb25kaXRpb25zIHRvIERNUy4gSG93ZXZlciwKdGhlIGRh dGFiYXNlIGNhbm5vdCBiZSBkdW1wZWQtcmVzdG9yZWQsIHNvIHdlIGVtaXQgYSBOT1RJQ0Uu CgpSZXBvcnRlZC1ieTogQWxleGFuZGVyIExha2hpbgotLS0KIGNvbnRyaWIvYW1jaGVjay9l eHBlY3RlZC9jaGVja19idHJlZS5vdXQgfCAxNCArKysrKysrCiBjb250cmliL2FtY2hlY2sv c3FsL2NoZWNrX2J0cmVlLnNxbCAgICAgIHwgMTEgKysrKysKIGNvbnRyaWIvYW1jaGVjay92 ZXJpZnlfbmJ0cmVlLmMgICAgICAgICAgfCA1MyArKysrKysrKysrKysrKysrKysrKystLS0K IDMgZmlsZXMgY2hhbmdlZCwgNzIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0IGIv Y29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2J0cmVlLm91dAppbmRleCBmODYzODU4 MjE4MC4uMGVhMmUzZTFmMzggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYW1jaGVjay9leHBlY3Rl ZC9jaGVja19idHJlZS5vdXQKKysrIGIvY29udHJpYi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNr X2J0cmVlLm91dApAQCAtMjY4LDYgKzI2OCwyMCBAQCBTRUxFQ1QgYnRfaW5kZXhfY2hlY2so J3RibF9pZHgnLCB0cnVlKTsKICAKICgxIHJvdykKIAorRFJPUCBUQUJMRSB0Ymw7CistLSBD aGVjayBvdmVyc2l6ZWQgZGF0dW1zIHRoYXQgY2Fubm90IGJlIGluc2VydGVkIGludG8gaW5k ZXgKK0NSRUFURSBUQUJMRSB0KGYxIHRleHQpOworQ1JFQVRFIElOREVYIHRfaWR4IE9OIHQo ZjEpOworSU5TRVJUIElOVE8gdCBWQUxVRVMocmVwZWF0KCcxMjM0NTY3ODkwJywgMTAwMCkp OworQUxURVIgVEFCTEUgdCBBTFRFUiBDT0xVTU4gZjEgU0VUIFNUT1JBR0UgcGxhaW47CitT RUxFQ1QgYnRfaW5kZXhfY2hlY2soJ3RfaWR4JywgdHJ1ZSk7CitOT1RJQ0U6ICBJbmRleCBj b250YWluIHR1cGxlcyB0aGF0IGNhbm5vdCBmaXQgaW50byBpbmRleCBwYWdlLCBpZiB0b2Fz dGVkIHdpdGggY3VycmVudCB0b2FzdCBwb2xpY3kKKyBidF9pbmRleF9jaGVjayAKKy0tLS0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRFJPUCBUQUJMRSB0OwogLS0gY2xlYW51cAog RFJPUCBUQUJMRSBidHRlc3RfYTsKIERST1AgVEFCTEUgYnR0ZXN0X2I7CmRpZmYgLS1naXQg YS9jb250cmliL2FtY2hlY2svc3FsL2NoZWNrX2J0cmVlLnNxbCBiL2NvbnRyaWIvYW1jaGVj ay9zcWwvY2hlY2tfYnRyZWUuc3FsCmluZGV4IDVkYTQ5ZWE5NGZkLi5jZWViNzI1ODc1NCAx MDA2NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL3NxbC9jaGVja19idHJlZS5zcWwKKysrIGIv Y29udHJpYi9hbWNoZWNrL3NxbC9jaGVja19idHJlZS5zcWwKQEAgLTE3MSw2ICsxNzEsMTcg QEAgSU5TRVJUIElOVE8gdGJsIFZBTFVFUyAocmVwZWF0KCdUZXN0JywgMjUwKSk7CiBBTFRF UiBUQUJMRSB0YmwgQUxURVIgQ09MVU1OIHQgU0VUIFNUT1JBR0UgZXh0ZW5kZWQ7CiAKIFNF TEVDVCBidF9pbmRleF9jaGVjaygndGJsX2lkeCcsIHRydWUpOworRFJPUCBUQUJMRSB0Ymw7 CisKKy0tIENoZWNrIG92ZXJzaXplZCBkYXR1bXMgdGhhdCBjYW5ub3QgYmUgaW5zZXJ0ZWQg aW50byBpbmRleAorCitDUkVBVEUgVEFCTEUgdChmMSB0ZXh0KTsKK0NSRUFURSBJTkRFWCB0 X2lkeCBPTiB0KGYxKTsKK0lOU0VSVCBJTlRPIHQgVkFMVUVTKHJlcGVhdCgnMTIzNDU2Nzg5 MCcsIDEwMDApKTsKK0FMVEVSIFRBQkxFIHQgQUxURVIgQ09MVU1OIGYxIFNFVCBTVE9SQUdF IHBsYWluOworCitTRUxFQ1QgYnRfaW5kZXhfY2hlY2soJ3RfaWR4JywgdHJ1ZSk7CitEUk9Q IFRBQkxFIHQ7CiAKIC0tIGNsZWFudXAKIERST1AgVEFCTEUgYnR0ZXN0X2E7CmRpZmYgLS1n aXQgYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5jIGIvY29udHJpYi9hbWNoZWNr L3ZlcmlmeV9uYnRyZWUuYwppbmRleCA2NjU0YjVhZmU3My4uZTMwZjE2MmUwZmIgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfbmJ0cmVlLmMKKysrIGIvY29udHJpYi9h bWNoZWNrL3ZlcmlmeV9uYnRyZWUuYwpAQCAtMTI4LDYgKzEyOCwxMSBAQCB0eXBlZGVmIHN0 cnVjdCBCdHJlZUNoZWNrU3RhdGUKIAlibG9vbV9maWx0ZXIgKmZpbHRlcjsKIAkvKiBEZWJ1 ZyBjb3VudGVyICovCiAJaW50NjQJCWhlYXB0dXBsZXNwcmVzZW50OworCS8qCisJICogRHVy aW5nIGNoZWNrIHdlIG1pZ2h0IGZpbmQgdHVwbGVzIHRoYXQgZHVlIHRvIGN1cnJlbnQgVE9B U1QgcG9saWNpZXMKKwkgKiBzaG91bGQgbm90IHJlc2lkZSBpbiBpbmRleCwgYnV0IHN0aWxs IGFyZSB0aGVyZS4KKwkgKi8KKwlib29sIGhhc19vdmVyc2l6ZWRfdHVwbGVzOwogfSBCdHJl ZUNoZWNrU3RhdGU7CiAKIC8qCkBAIC0xNjI0LDEwICsxNjI5LDE3IEBAIGJ0X3RhcmdldF9w YWdlX2NoZWNrKEJ0cmVlQ2hlY2tTdGF0ZSAqc3RhdGUpCiAKIAkJCQkJbG9ndHVwbGUgPSBi dF9wb3N0aW5nX3BsYWluX3R1cGxlKGl0dXAsIGkpOwogCQkJCQlub3JtID0gYnRfbm9ybWFs aXplX3R1cGxlKHN0YXRlLCBsb2d0dXBsZSk7Ci0JCQkJCWJsb29tX2FkZF9lbGVtZW50KHN0 YXRlLT5maWx0ZXIsICh1bnNpZ25lZCBjaGFyICopIG5vcm0sCisJCQkJCWlmIChub3JtID09 IE5VTEwpCisJCQkJCXsKKwkJCQkJCWlmICghc3RhdGUtPmhhc19vdmVyc2l6ZWRfdHVwbGVz KQorCQkJCQkJCWVsb2coTk9USUNFLCAiSW5kZXggY29udGFpbiB0dXBsZXMgdGhhdCBjYW5u b3QgZml0IGludG8gaW5kZXggcGFnZSwgaWYgdG9hc3RlZCB3aXRoIGN1cnJlbnQgdG9hc3Qg cG9saWN5Iik7CisJCQkJCQlzdGF0ZS0+aGFzX292ZXJzaXplZF90dXBsZXMgPSB0cnVlOwor CQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCWJsb29tX2FkZF9lbGVtZW50KHN0YXRlLT5maWx0 ZXIsICh1bnNpZ25lZCBjaGFyICopIG5vcm0sCiAJCQkJCQkJCQkgIEluZGV4VHVwbGVTaXpl KG5vcm0pKTsKIAkJCQkJLyogQmUgdGlkeSAqLwotCQkJCQlpZiAobm9ybSAhPSBsb2d0dXBs ZSkKKwkJCQkJaWYgKG5vcm0gIT0gbG9ndHVwbGUgJiYgbm9ybSAhPSBOVUxMKQogCQkJCQkJ cGZyZWUobm9ybSk7CiAJCQkJCXBmcmVlKGxvZ3R1cGxlKTsKIAkJCQl9CkBAIC0xNjM1LDEw ICsxNjQ3LDE3IEBAIGJ0X3RhcmdldF9wYWdlX2NoZWNrKEJ0cmVlQ2hlY2tTdGF0ZSAqc3Rh dGUpCiAJCQllbHNlCiAJCQl7CiAJCQkJbm9ybSA9IGJ0X25vcm1hbGl6ZV90dXBsZShzdGF0 ZSwgaXR1cCk7Ci0JCQkJYmxvb21fYWRkX2VsZW1lbnQoc3RhdGUtPmZpbHRlciwgKHVuc2ln bmVkIGNoYXIgKikgbm9ybSwKLQkJCQkJCQkJICBJbmRleFR1cGxlU2l6ZShub3JtKSk7CisJ CQkJaWYgKG5vcm0gPT0gTlVMTCkKKwkJCQl7CisJCQkJCWlmICghc3RhdGUtPmhhc19vdmVy c2l6ZWRfdHVwbGVzKQorCQkJCQkJZWxvZyhOT1RJQ0UsICJJbmRleCBjb250YWluIHR1cGxl cyB0aGF0IGNhbm5vdCBmaXQgaW50byBpbmRleCBwYWdlLCBpZiB0b2FzdGVkIHdpdGggY3Vy cmVudCB0b2FzdCBwb2xpY3kiKTsKKwkJCQkJc3RhdGUtPmhhc19vdmVyc2l6ZWRfdHVwbGVz ID0gdHJ1ZTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCQlibG9vbV9hZGRfZWxlbWVudChzdGF0 ZS0+ZmlsdGVyLCAodW5zaWduZWQgY2hhciAqKSBub3JtLAorCQkJCQkJCQlJbmRleFR1cGxl U2l6ZShub3JtKSk7CiAJCQkJLyogQmUgdGlkeSAqLwotCQkJCWlmIChub3JtICE9IGl0dXAp CisJCQkJaWYgKG5vcm0gIT0gaXR1cCAmJiBub3JtICE9IE5VTEwpCiAJCQkJCXBmcmVlKG5v cm0pOwogCQkJfQogCQl9CkBAIC0yODgzLDkgKzI5MDIsMTkgQEAgYnRfdHVwbGVfcHJlc2Vu dF9jYWxsYmFjayhSZWxhdGlvbiBpbmRleCwgSXRlbVBvaW50ZXIgdGlkLCBEYXR1bSAqdmFs dWVzLAogCWl0dXAgPSBpbmRleF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IoaW5kZXgp LCB2YWx1ZXMsIGlzbnVsbCk7CiAJaXR1cC0+dF90aWQgPSAqdGlkOwogCW5vcm0gPSBidF9u b3JtYWxpemVfdHVwbGUoc3RhdGUsIGl0dXApOworCWlmIChub3JtID09IE5VTEwpCisJewor CQlpZiAoc3RhdGUtPmhhc19vdmVyc2l6ZWRfdHVwbGVzKQorCQl7CisJCQkvKiBleGVtcHQg dGhpcyBvdmVyc2l6ZWQgdHVwbGUgKi8KKwkJCXN0YXRlLT5oZWFwdHVwbGVzcHJlc2VudCsr OworCQkJcGZyZWUoaXR1cCk7CisJCQlyZXR1cm47CisJCX0KKwl9CiAKIAkvKiBQcm9iZSBC bG9vbSBmaWx0ZXIgLS0gdHVwbGUgc2hvdWxkIGJlIHByZXNlbnQgKi8KLQlpZiAoYmxvb21f bGFja3NfZWxlbWVudChzdGF0ZS0+ZmlsdGVyLCAodW5zaWduZWQgY2hhciAqKSBub3JtLAor CWlmICgobm9ybSA9PSBOVUxMKSB8fCBibG9vbV9sYWNrc19lbGVtZW50KHN0YXRlLT5maWx0 ZXIsICh1bnNpZ25lZCBjaGFyICopIG5vcm0sCiAJCQkJCQkJSW5kZXhUdXBsZVNpemUobm9y bSkpKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JS VVBURUQpLApAQCAtMjkzNiw2ICsyOTY1LDkgQEAgYnRfdHVwbGVfcHJlc2VudF9jYWxsYmFj ayhSZWxhdGlvbiBpbmRleCwgSXRlbVBvaW50ZXIgdGlkLCBEYXR1bSAqdmFsdWVzLAogICog Q2FsbGVyIGRvZXMgbm9ybWFsaXphdGlvbiBmb3Igbm9uLXBpdm90IHR1cGxlcyB0aGF0IGhh dmUgYSBwb3N0aW5nIGxpc3QsCiAgKiBzaW5jZSBkdW1teSBDUkVBVEUgSU5ERVggY2FsbGJh Y2sgY29kZSBnZW5lcmF0ZXMgbmV3IHR1cGxlcyB3aXRoIHRoZSBzYW1lCiAgKiBub3JtYWxp emVkIHJlcHJlc2VudGF0aW9uLgorICogCisgKiBJZiB0aGUgdHVwbGUgaXMgZXhhbXB0IGZy b20gY2hlY2tpbmcgZHVlIHRvIGhhc19vdmVyc2l6ZWRfdHVwbGVzIHRoaXMgZnVuY3Rpb24K KyAqIHJldHVybnMgTlVMTC4KICAqLwogc3RhdGljIEluZGV4VHVwbGUKIGJ0X25vcm1hbGl6 ZV90dXBsZShCdHJlZUNoZWNrU3RhdGUgKnN0YXRlLCBJbmRleFR1cGxlIGl0dXApCkBAIC0y OTQ3LDYgKzI5NzksNyBAQCBidF9ub3JtYWxpemVfdHVwbGUoQnRyZWVDaGVja1N0YXRlICpz dGF0ZSwgSW5kZXhUdXBsZSBpdHVwKQogCWJvb2wJCWZvcm1uZXd0dXAgPSBmYWxzZTsKIAlJ bmRleFR1cGxlCXJlZm9ybWVkOwogCWludAkJCWk7CisJU2l6ZQkJZGF0YV9zaXplOwogCiAJ LyogQ2FsbGVyIHNob3VsZCBvbmx5IHBhc3MgImxvZ2ljYWwiIG5vbi1waXZvdCB0dXBsZXMg aGVyZSAqLwogCUFzc2VydCghQlRyZWVUdXBsZUlzUG9zdGluZyhpdHVwKSAmJiAhQlRyZWVU dXBsZUlzUGl2b3QoaXR1cCkpOwpAQCAtMzAyNiw2ICszMDU5LDE0IEBAIGJ0X25vcm1hbGl6 ZV90dXBsZShCdHJlZUNoZWNrU3RhdGUgKnN0YXRlLCBJbmRleFR1cGxlIGl0dXApCiAJaWYg KCFmb3JtbmV3dHVwKQogCQlyZXR1cm4gaXR1cDsKIAorCWRhdGFfc2l6ZSA9IE1BWEFMSUdO KGhlYXBfY29tcHV0ZV9kYXRhX3NpemUodHVwbGVEZXNjcmlwdG9yLAorCQkJCQkJCQkJICAg bm9ybWFsaXplZCwgaXNudWxsKQorCQkJCSsgTUFYQUxJR04oc2l6ZW9mKEluZGV4VHVwbGVE YXRhKSArIHNpemVvZihJbmRleEF0dHJpYnV0ZUJpdE1hcERhdGEpKSk7CisJaWYgKChkYXRh X3NpemUgJiBJTkRFWF9TSVpFX01BU0spICE9IGRhdGFfc2l6ZSkKKwl7CisJCXJldHVybiBO VUxMOworCX0KKwogCS8qCiAJICogSGFyZCBjYXNlOiBUdXBsZSBoYWQgY29tcHJlc3NlZCB2 YXJsZW5hIGRhdHVtcyB0aGF0IG5lY2Vzc2l0YXRlCiAJICogY3JlYXRpbmcgbm9ybWFsaXpl ZCB2ZXJzaW9uIG9mIHRoZSB0dXBsZSBmcm9tIHVuY29tcHJlc3NlZCBpbnB1dCBkYXR1bXMK LS0gCjIuNDMuMAoK --------------wkXmReYidHqn39fHaSVvYhmb--