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 1ttTnU-00CzTC-Ip for pgsql-bugs@arkaria.postgresql.org; Sat, 15 Mar 2025 15:51:36 +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 1ttTnS-00GDRZ-Ju for pgsql-bugs@arkaria.postgresql.org; Sat, 15 Mar 2025 15:51:34 +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 1ttTVW-00Fxrv-H4 for pgsql-bugs@lists.postgresql.org; Sat, 15 Mar 2025 15:33:02 +0000 Received: from out-03.pe-bsn.jellyfish.systems ([66.29.159.81]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1ttTVR-0031xl-2j for pgsql-bugs@lists.postgresql.org; Sat, 15 Mar 2025 15:33:02 +0000 Received: from prod-lbout-phx.jellyfish.systems (bsn-02-6.privateemail.com [198.54.118.197]) by pe-bsn.jellyfish.systems (Postfix) with ESMTPA id 4ZFQGt08Xbz3013; Sat, 15 Mar 2025 15:32:54 +0000 (UTC) Received: from MTA-07.privateemail.com (unknown [10.50.14.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by BSN-02.privateemail.com (Postfix) with ESMTPS id 4ZFQGs5x3dz3hhTg; Sat, 15 Mar 2025 11:32:53 -0400 (EDT) Received: from mta-07.privateemail.com (localhost [127.0.0.1]) by mta-07.privateemail.com (Postfix) with ESMTP id 4ZFQGs4dTYz3hhVq; Sat, 15 Mar 2025 11:32:53 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=viktorh.net; s=default; t=1742052773; bh=C1EC6oYI7+QrjbjwzuE8yf5QcYea1cBer0KIc98RFPI=; h=Date:From:To:Cc:In-Reply-To:References:Subject:From; b=VwGdrXgwlyK82XsexASt0QzuFSGEexjG3wTFillOQd5CEGL3jnq+jAKmIRLb1Bvk7 F0PrkGjzsr/EEFrfZ494kD2wjm1tvVnPjcDA2xF/lMKcISpjYqzoM4X83HR8XQso4t OL6ijG/a7rdRy/YQCHDUhrO9TSo38WgS04JzsWpWYokRa1beFwI7z1+GAVSLFGIbjn iIDY3tGefJtkc2qpqXZfNa0ZAMvjabUh+mKFque7d7hq8cqd2iuy1mpvBvE1PAi3Wn 39QIYkveFNZeHGwEeF8tQ0xkRmo9GlnL4JR4OU2c9bKvM7Xu2Rcvlj+EsaQARR/YRK 0kbAIzuzFOqZg== Received: from [192.168.1.100] (unknown [143.58.148.107]) by mta-07.privateemail.com (Postfix) with ESMTPA; Sat, 15 Mar 2025 11:32:50 -0400 (EDT) Date: Sat, 15 Mar 2025 15:32:39 +0000 From: Viktor Holmberg To: Tom Lane Cc: daniel@yesql.se, pgsql-bugs@lists.postgresql.org Message-ID: <742add6c-02ac-42e4-97a3-f2ebd1520d64@Spark> In-Reply-To: <3080651.1741969122@sss.pgh.pa.us> References: <790bc1f9-74dc-4b50-94d2-8147315b1556@Spark> <51C655A4-46FB-4A40-BAE5-26A76B31D3EE@yesql.se> <3052531.1741961784@sss.pgh.pa.us> <3074065.1741965229@sss.pgh.pa.us> <3080651.1741969122@sss.pgh.pa.us> Subject: Re: ISN extension - wrong volatility level for isn_weak() function X-Readdle-Message-ID: 742add6c-02ac-42e4-97a3-f2ebd1520d64@Spark MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="67d59d9f_216231b_5a54" X-Virus-Scanned: ClamAV using ClamSMTP List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --67d59d9f_216231b_5a54 Content-Type: multipart/alternative; boundary="67d59d9f_4db127f8_5a54" --67d59d9f_4db127f8_5a54 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On 14 Mar 2025 at 16:18 +0000, Tom Lane , wrote: > Viktor Holmberg writes: > > However, cleaning things up to use GUC seems like it=E2=80=99d be big= ger task, and also would only be an extra thing, as isn=5Fweak function w= ould need to stay in for backwards compatibility I assume. > > Wouldn't be a big deal --- yes, accept=5Fweak=5Finput would need a bit = of > modification, but it's not much. The main reason I suggested it was > that a GUC would be subject to RESET ALL and so it'd fix the pooler > hazard you pointed out. You=E2=80=99re right it=E2=80=99d definitely be much nicer. I=E2=80=99ll = give it a go. > > > In terms of just fixing the immediate bug, I believe it=E2=80=99d jus= t be to change isn.sql line 3423 and 2433: > > No, we'd need to create an update script that uses ALTER =46UNCTION. > Extension scripts are basically frozen once shipped. Ah, thanks for the clarification. I=E2=80=99ve attached a patch that fixe= s the volatility. I thought it best to at least get some feedback on that= before I try to dust off my C knowledge and try to fix the GUC stuff. > > regards, tom lane --67d59d9f_4db127f8_5a54 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
On 14 Mar 2025 at 16:18 +0000, Tom Lane <tgl=40s= ss.pgh.pa.us>, wrote:
Viktor Holmberg <v=40viktorh.net> writes:
However, cleaning things up to use GUC seems like it=E2=80=99d be bigger= task, and also would only be an extra thing, as isn=5Fweak function woul= d need to stay in for backwards compatibility I assume.

Wouldn't be a big deal --- yes, accept=5Fweak=5Finput would need a bit of=
modification, but it's not much. The main reason I suggested it was
= that a GUC would be subject to RESET ALL and so it'd fix the pooler
= hazard you pointed out.
You=E2=80=99re right it=E2=80=99d definitely be muc= h nicer. I=E2=80=99ll give it a go.&=23160;

In terms of just fixing the immediate bug, I believe it=E2=80=99d just b= e to change isn.sql line 3423 and 2433:

No, we'd need to create an update script that uses ALTER =46UNCTION.
Extension scripts are basically frozen once shipped.
Ah, thanks for the clarification. I=E2=80=99ve atta= ched a patch that fixes the volatility. I thought it best to at least get= some feedback on that before I try to dust off my C knowledge and try to= fix the GUC stuff.

regards, tom lane
--67d59d9f_4db127f8_5a54-- --67d59d9f_216231b_5a54 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v10-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" RnJvbSAwNTA3MDNjY2I0ZTE3ODY3MTA3MjJiNDUxZWFiY2YxYTkwOGNkNzYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFNhdCwgMSBBcHIgMjAyMyAxNjoyMToyMCArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djEwIDIvN10gQWxsb3cgR2VuZXJpYyBUeXBlIFN1YnNjcmlwdGluZyB0byBBY2NlcHQgRG90CiBO b3RhdGlvbiAoLikgYXMgSW5wdXQKClRoaXMgY2hhbmdlIGV4dGVuZHMgZ2VuZXJpYyB0eXBlIHN1 YnNjcmlwdGluZyB0byByZWNvZ25pemUgZG90Cm5vdGF0aW9uICguKSBpbiBhZGRpdGlvbiB0byBi cmFja2V0IG5vdGF0aW9uIChbXSkuIFdoaWxlIHRoaXMgZG9lcyBub3QKeWV0IHByb3ZpZGUgZnVs bCBzdXBwb3J0IGZvciBkb3Qgbm90YXRpb24sIGl0IGVuYWJsZXMgc3Vic2NyaXB0aW5nCmNvbnRh aW5lcnMgdG8gcHJvY2VzcyBpdCBpbiB0aGUgZnV0dXJlLgoKRm9yIG5vdywgY29udGFpbmVyLXNw ZWNpZmljIHRyYW5zZm9ybSBmdW5jdGlvbnMgb25seSBoYW5kbGUKc3Vic2NyaXB0aW5nIGluZGlj ZXMgYW5kIHN0b3AgcHJvY2Vzc2luZyB3aGVuIGVuY291bnRlcmluZyBkb3QKbm90YXRpb24uIEl0 IGlzIHVwIHRvIGluZGl2aWR1YWwgY29udGFpbmVycyB0byBkZWNpZGUgaG93IHRvIHRyYW5zZm9y bQpkb3Qgbm90YXRpb24gaW4gc3Vic2VxdWVudCB1cGRhdGVzLgotLS0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICB8IDY2ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMgICB8IDQxICsrKysrKysrKysrKysrKysr LS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyB8ICAzICstCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvYXJyYXlzdWJzLmMgfCAxMyArKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYyB8IDExICsrKysrLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aCAgIHwgIDMgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyksIDMyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDJjMGY0YTUwYjIxLi44ZWE1MTE3 NjE5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00NDIsOCArNDQyLDkgQEAgdHJhbnNm b3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJ TGlzdENlbGwgICAqaTsKIAogCS8qCi0JICogV2UgaGF2ZSB0byBzcGxpdCBhbnkgZmllbGQtc2Vs ZWN0aW9uIG9wZXJhdGlvbnMgYXBhcnQgZnJvbQotCSAqIHN1YnNjcmlwdGluZy4gIEFkamFjZW50 IEFfSW5kaWNlcyBub2RlcyBoYXZlIHRvIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUKKwkgKiBDb21i aW5lIGZpZWxkIG5hbWVzIGFuZCBzdWJzY3JpcHRzIGludG8gYSBzaW5nbGUgaW5kaXJlY3Rpb24g bGlzdCwgYXMKKwkgKiBzb21lIHN1YnNjcmlwdGluZyBjb250YWluZXJzLCBzdWNoIGFzIGpzb25i LCBzdXBwb3J0IGZpZWxkIGFjY2VzcyB1c2luZworCSAqIGRvdCBub3RhdGlvbi4gQWRqYWNlbnQg QV9JbmRpY2VzIG5vZGVzIGhhdmUgdG8gYmUgdHJlYXRlZCBhcyBhIHNpbmdsZQogCSAqIG11bHRp ZGltZW5zaW9uYWwgc3Vic2NyaXB0IG9wZXJhdGlvbi4KIAkgKi8KIAlmb3JlYWNoKGksIGluZC0+ aW5kaXJlY3Rpb24pCkBAIC00NjEsMTkgKzQ2Miw0MyBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJfQogCQllbHNlCiAJCXsK LQkJCU5vZGUJICAgKm5ld3Jlc3VsdDsKLQogCQkJQXNzZXJ0KElzQShuLCBTdHJpbmcpKTsKKwkJ CXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNjcmlwdHMsIG4pOworCQl9CisJfQorCisJd2hpbGUg KHN1YnNjcmlwdHMpCisJeworCQkvKiB0cnkgcHJvY2Vzc2luZyBjb250YWluZXIgc3Vic2NyaXB0 cyBmaXJzdCAqLworCQlOb2RlCSAgICpuZXdyZXN1bHQgPSAoTm9kZSAqKQorCQkJdHJhbnNmb3Jt Q29udGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUsCisJCQkJCQkJCQkJIHJlc3VsdCwKKwkJCQkJCQkJ CQkgZXhwclR5cGUocmVzdWx0KSwKKwkJCQkJCQkJCQkgZXhwclR5cG1vZChyZXN1bHQpLAorCQkJ CQkJCQkJCSAmc3Vic2NyaXB0cywKKwkJCQkJCQkJCQkgZmFsc2UsCisJCQkJCQkJCQkJIHRydWUp OworCisJCWlmICghbmV3cmVzdWx0KQorCQl7CisJCQkvKgorCQkJICogZ2VuZXJpYyBzdWJzY3Jp cHRpbmcgZmFpbGVkOyBmYWxsaW5nIGJhY2sgdG8gZnVuY3Rpb24gY2FsbCBvcgorCQkJICogZmll bGQgc2VsZWN0aW9uIGZvciBhIGNvbXBvc2l0ZSB0eXBlLgorCQkJICovCisJCQlOb2RlCSAgICpu OworCisJCQlBc3NlcnQoc3Vic2NyaXB0cyk7CiAKLQkJCS8qIHByb2Nlc3Mgc3Vic2NyaXB0cyBi ZWZvcmUgdGhpcyBmaWVsZCBzZWxlY3Rpb24gKi8KLQkJCXdoaWxlIChzdWJzY3JpcHRzKQotCQkJ CXJlc3VsdCA9IChOb2RlICopIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMocHN0YXRlLAot CQkJCQkJCQkJCQkJCQkJICAgcmVzdWx0LAotCQkJCQkJCQkJCQkJCQkJICAgZXhwclR5cGUocmVz dWx0KSwKLQkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBtb2QocmVzdWx0KSwKLQkJCQkJCQkJCQkJ CQkJCSAgICZzdWJzY3JpcHRzLAotCQkJCQkJCQkJCQkJCQkJICAgZmFsc2UpOworCQkJbiA9IGxp bml0aWFsKHN1YnNjcmlwdHMpOworCisJCQlpZiAoIUlzQShuLCBTdHJpbmcpKQorCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJ CQkJCSBlcnJtc2coImNhbm5vdCBzdWJzY3JpcHQgdHlwZSAlcyBiZWNhdXNlIGl0IGRvZXMgbm90 IHN1cHBvcnQgc3Vic2NyaXB0aW5nIiwKKwkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwclR5cGUo cmVzdWx0KSkpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlv bihyZXN1bHQpKSkpOwogCisJCQkvKiB0cnkgdG8gZmluZCBmdW5jdGlvbiBmb3IgZmllbGQgc2Vs ZWN0aW9uICovCiAJCQluZXdyZXN1bHQgPSBQYXJzZUZ1bmNPckNvbHVtbihwc3RhdGUsCiAJCQkJ CQkJCQkJICBsaXN0X21ha2UxKG4pLAogCQkJCQkJCQkJCSAgbGlzdF9tYWtlMShyZXN1bHQpLApA QCAtNDgxLDE5ICs1MDYsMTYgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJCQkJCQkJCQkJICBOVUxMLAogCQkJCQkJCQkJCSAg ZmFsc2UsCiAJCQkJCQkJCQkJICBsb2NhdGlvbik7Ci0JCQlpZiAobmV3cmVzdWx0ID09IE5VTEwp CisKKwkJCWlmICghbmV3cmVzdWx0KQogCQkJCXVua25vd25fYXR0cmlidXRlKHBzdGF0ZSwgcmVz dWx0LCBzdHJWYWwobiksIGxvY2F0aW9uKTsKLQkJCXJlc3VsdCA9IG5ld3Jlc3VsdDsKKworCQkJ LyogY29uc3VtZSBmaWVsZCBzZWxlY3QgKi8KKwkJCXN1YnNjcmlwdHMgPSBsaXN0X2RlbGV0ZV9m aXJzdChzdWJzY3JpcHRzKTsKIAkJfQorCisJCXJlc3VsdCA9IG5ld3Jlc3VsdDsKIAl9Ci0JLyog cHJvY2VzcyB0cmFpbGluZyBzdWJzY3JpcHRzLCBpZiBhbnkgKi8KLQl3aGlsZSAoc3Vic2NyaXB0 cykKLQkJcmVzdWx0ID0gKE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3Rh dGUsCi0JCQkJCQkJCQkJCQkJICAgcmVzdWx0LAotCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJl c3VsdCksCi0JCQkJCQkJCQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJ CSAgICZzdWJzY3JpcHRzLAotCQkJCQkJCQkJCQkJCSAgIGZhbHNlKTsKIAogCXJldHVybiByZXN1 bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYwppbmRleCAxOWE2YjY3OGU2Ny4uYjNlNDc2ZWIx ODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYwpAQCAtMjM4LDYgKzIzOCw4IEBAIHRyYW5zZm9y bUNvbnRhaW5lclR5cGUoT2lkICpjb250YWluZXJUeXBlLCBpbnQzMiAqY29udGFpbmVyVHlwbW9k KQogICogY29udGFpbmVyVHlwTW9kCXR5cG1vZCBmb3IgdGhlIGNvbnRhaW5lcgogICogaW5kaXJl Y3Rpb24JCVVudHJhbnNmb3JtZWQgbGlzdCBvZiBzdWJzY3JpcHRzIChtdXN0IG5vdCBiZSBOSUwp CiAgKiBpc0Fzc2lnbm1lbnQJCVRydWUgaWYgdGhpcyB3aWxsIGJlY29tZSBhIGNvbnRhaW5lciBh c3NpZ25tZW50LgorICogbm9FcnJvcgkJCVRydWUgZm9yIHJldHVybiBOVUxMIHdpdGggbm8gZXJy b3IsIGlmIHRoZSBjb250YWluZXIgdHlwZQorICogCQkJCQlpcyBub3Qgc3Vic2NyaXB0YWJsZS4K ICAqLwogU3Vic2NyaXB0aW5nUmVmICoKIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFy c2VTdGF0ZSAqcHN0YXRlLApAQCAtMjQ1LDEzICsyNDcsMTUgQEAgdHJhbnNmb3JtQ29udGFpbmVy U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJIE9pZCBjb250YWluZXJUeXBl LAogCQkJCQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCiAJCQkJCQkJIExpc3QgKippbmRpcmVj dGlvbiwKLQkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1lbnQpCisJCQkJCQkJIGJvb2wgaXNBc3NpZ25t ZW50LAorCQkJCQkJCSBib29sIG5vRXJyb3IpCiB7CiAJU3Vic2NyaXB0aW5nUmVmICpzYnNyZWY7 CiAJY29uc3QgU3Vic2NyaXB0Um91dGluZXMgKnNic3JvdXRpbmVzOwogCU9pZAkJCWVsZW1lbnRU eXBlOwogCWJvb2wJCWlzU2xpY2UgPSBmYWxzZTsKIAlMaXN0Q2VsbCAgICppZHg7CisJaW50CQkJ aW5kaXJlY3Rpb25fbGVuZ3RoID0gbGlzdF9sZW5ndGgoKmluZGlyZWN0aW9uKTsKIAogCS8qCiAJ ICogRGV0ZXJtaW5lIHRoZSBhY3R1YWwgY29udGFpbmVyIHR5cGUsIHNtYXNoaW5nIGFueSBkb21h aW4uICBJbiB0aGUKQEAgLTI2NywxMSArMjcxLDE2IEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNj cmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqLwogCXNic3JvdXRpbmVzID0gZ2V0U3Vic2Ny aXB0aW5nUm91dGluZXMoY29udGFpbmVyVHlwZSwgJmVsZW1lbnRUeXBlKTsKIAlpZiAoIXNic3Jv dXRpbmVzKQorCXsKKwkJaWYgKG5vRXJyb3IpCisJCQlyZXR1cm4gTlVMTDsKKwogCQllcmVwb3J0 KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAogCQkJCSBl cnJtc2coImNhbm5vdCBzdWJzY3JpcHQgdHlwZSAlcyBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBv cnQgc3Vic2NyaXB0aW5nIiwKIAkJCQkJCWZvcm1hdF90eXBlX2JlKGNvbnRhaW5lclR5cGUpKSwK IAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGNvbnRhaW5lckJh c2UpKSkpOworCX0KIAogCS8qCiAJICogRGV0ZWN0IHdoZXRoZXIgYW55IG9mIHRoZSBpbmRpcmVj dGlvbiBpdGVtcyBhcmUgc2xpY2Ugc3BlY2lmaWVycy4KQEAgLTI4Miw5ICsyOTEsOSBAQCB0cmFu c2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkgKi8KIAlmb3Jl YWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKLQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9k ZShBX0luZGljZXMsIGlkeCk7CisJCU5vZGUJICAgKmFpID0gbGZpcnN0KGlkeCk7CiAKLQkJaWYg KGFpLT5pc19zbGljZSkKKwkJaWYgKElzQShhaSwgQV9JbmRpY2VzKSAmJiBjYXN0Tm9kZShBX0lu ZGljZXMsIGFpKS0+aXNfc2xpY2UpCiAJCXsKIAkJCWlzU2xpY2UgPSB0cnVlOwogCQkJYnJlYWs7 CkBAIC0zMTIsNiArMzIxLDMyIEBAIHRyYW5zZm9ybUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCXNic3JvdXRpbmVzLT50cmFuc2Zvcm0oc2JzcmVmLCBpbmRpcmVjdGlv biwgcHN0YXRlLAogCQkJCQkJICAgaXNTbGljZSwgaXNBc3NpZ25tZW50KTsKIAorCS8qCisJICog RXJyb3Igb3V0LCBpZiBkYXRhdHlwZSBmYWlsZWQgdG8gY29uc3VtZSBhbnkgaW5kaXJlY3Rpb24g ZWxlbWVudHMuCisJICovCisJaWYgKGxpc3RfbGVuZ3RoKCppbmRpcmVjdGlvbikgPT0gaW5kaXJl Y3Rpb25fbGVuZ3RoKQorCXsKKwkJTm9kZQkgICAqaW5kID0gbGluaXRpYWwoKmluZGlyZWN0aW9u KTsKKworCQlpZiAobm9FcnJvcikKKwkJCXJldHVybiBOVUxMOworCisJCWlmIChJc0EoaW5kLCBT dHJpbmcpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQ RV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInR5cGUgJXMgZG9lcyBub3Qgc3VwcG9ydCBkb3Qg bm90YXRpb24iLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvbnRhaW5lclR5cGUpKSwKKwkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihjb250YWluZXJCYXNlKSkp KTsKKwkJZWxzZSBpZiAoSXNBKGluZCwgQV9JbmRpY2VzKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ0 eXBlICVzIGRvZXMgbm90IHN1cHBvcnQgYXJyYXkgc3Vic2NyaXB0aW5nIiwKKwkJCQkJCQlmb3Jt YXRfdHlwZV9iZShjb250YWluZXJUeXBlKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24oY29udGFpbmVyQmFzZSkpKSk7CisJCWVsc2UKKwkJCWVsb2coRVJS T1IsICJpbnZhbGlkIGluZGlyZWN0aW9uIG9wZXJhdGlvbjogJWQiLCBub2RlVGFnKGluZCkpOwor CX0KKwogCS8qCiAJICogVmVyaWZ5IHdlIGdvdCBhIHZhbGlkIHR5cGUgKHRoaXMgZGVmZW5kcywg Zm9yIGV4YW1wbGUsIGFnYWluc3Qgc29tZW9uZQogCSAqIHVzaW5nIGFycmF5X3N1YnNjcmlwdF9o YW5kbGVyIGFzIHR5cHN1YnNjcmlwdCB3aXRob3V0IHNldHRpbmcgdHlwZWxlbSkuCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggNDY3NWE1MjMwNDUuLjNlZjU4OTdmMmViIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3RhcmdldC5jCkBAIC05MzcsNyArOTM3LDggQEAgdHJhbnNmb3JtQXNzaWdu bWVudFN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSAgY29udGFpbmVy VHlwZSwKIAkJCQkJCQkJCQkgIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkJCQkgICZzdWJzY3Jp cHRzLAotCQkJCQkJCQkJCSAgdHJ1ZSk7CisJCQkJCQkJCQkJICB0cnVlLAorCQkJCQkJCQkJCSAg ZmFsc2UpOwogCiAJdHlwZU5lZWRlZCA9IHNic3JlZi0+cmVmcmVzdHlwZTsKIAl0eXBtb2ROZWVk ZWQgPSBzYnNyZWYtPnJlZnR5cG1vZDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheXN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYwppbmRleCAy MzRjMmMyNzhjMS4uZDAzZDM1MTlkZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9hcnJheXN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKQEAg LTYyLDYgKzYyLDcgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYg KnNic3JlZiwKIAlMaXN0CSAgICp1cHBlckluZGV4cHIgPSBOSUw7CiAJTGlzdAkgICAqbG93ZXJJ bmRleHByID0gTklMOwogCUxpc3RDZWxsICAgKmlkeDsKKwlpbnQJCQluZGltOwogCiAJLyoKIAkg KiBUcmFuc2Zvcm0gdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucywgYW5kIHNlcGFyYXRlIHVwcGVy IGFuZCBsb3dlcgpAQCAtNzMsOSArNzQsMTQgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShT dWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkgKi8KIAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9u KQogCXsKLQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisJ CUFfSW5kaWNlcyAgKmFpOwogCQlOb2RlCSAgICpzdWJleHByOwogCisJCWlmICghSXNBKGxmaXJz dChpZHgpLCBBX0luZGljZXMpKQorCQkJYnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0lu ZGljZXMsIGlkeCk7CisKIAkJaWYgKGlzU2xpY2UpCiAJCXsKIAkJCWlmIChhaS0+bGlkeCkKQEAg LTE0NSwxNCArMTUxLDE1IEBAIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5n UmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIgPSBsb3dlckluZGV4cHI7CiAK IAkvKiBWZXJpZnkgc3Vic2NyaXB0IGxpc3QgbGVuZ3RocyBhcmUgd2l0aGluIGltcGxlbWVudGF0 aW9uIGxpbWl0ICovCi0JaWYgKGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikgPiBNQVhESU0pCisJ bmRpbSA9IGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcik7CisJaWYgKG5kaW0gPiBNQVhESU0pCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VF REVEKSwKIAkJCQkgZXJybXNnKCJudW1iZXIgb2YgYXJyYXkgZGltZW5zaW9ucyAoJWQpIGV4Y2Vl ZHMgdGhlIG1heGltdW0gYWxsb3dlZCAoJWQpIiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVySW5k ZXhwciksIE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIgc2Vw YXJhdGVseSAqLwogCi0JKmluZGlyZWN0aW9uID0gTklMOworCSppbmRpcmVjdGlvbiA9IGxpc3Rf ZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCBuZGltKTsKIAogCS8qCiAJICogRGV0ZXJtaW5l IHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbi4gIEl0J3MgdGhl IHNhbWUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCA4YWQ2YWExYWQ0Zi4uYTBkMzhh MGZkODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAgLTU1LDkgKzU1LDE0IEBAIGpz b25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICovCiAJ Zm9yZWFjaChpZHgsICppbmRpcmVjdGlvbikKIAl7Ci0JCUFfSW5kaWNlcyAgKmFpID0gbGZpcnN0 X25vZGUoQV9JbmRpY2VzLCBpZHgpOworCQlBX0luZGljZXMgICphaTsKIAkJTm9kZQkgICAqc3Vi RXhwcjsKIAorCQlpZiAoIUlzQShsZmlyc3QoaWR4KSwgQV9JbmRpY2VzKSkKKwkJCWJyZWFrOwor CisJCWFpID0gbGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOworCiAJCWlmIChpc1NsaWNlKQog CQl7CiAJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHggPyBhaS0+dWlkeCA6IGFpLT5saWR4OwpA QCAtMTYwLDcgKzE2NSw5IEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5n UmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZyZXN0eXBlID0gSlNPTkJPSUQ7CiAJc2JzcmVmLT5y ZWZ0eXBtb2QgPSAtMTsKIAotCSppbmRpcmVjdGlvbiA9IE5JTDsKKwkvKiBSZW1vdmUgcHJvY2Vz c2VkIGVsZW1lbnRzICovCisJaWYgKHVwcGVySW5kZXhwcikKKwkJKmluZGlyZWN0aW9uID0gbGlz dF9kZWxldGVfZmlyc3RfbigqaW5kaXJlY3Rpb24sIGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikp OwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBi L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggNWFlMTFjY2VjMzMuLjcxYjA0 YmQ1MDNjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBi L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTM3OCw3ICszNzgsOCBAQCBleHRl cm4gU3Vic2NyaXB0aW5nUmVmICp0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJ CQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkJCQkJCQkgTGlzdCAqKmluZGlyZWN0 aW9uLAotCQkJCQkJCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCk7CisJCQkJCQkJCQkJCQkJIGJv b2wgaXNBc3NpZ25tZW50LAorCQkJCQkJCQkJCQkJCSBib29sIG5vRXJyb3IpOwogZXh0ZXJuIENv bnN0ICptYWtlX2NvbnN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9Db25zdCAqYWNvbnN0KTsKIAog I2VuZGlmCQkJCQkJCS8qIFBBUlNFX05PREVfSCAqLwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0 KQoK --67d59d9f_216231b_5a54--