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.96) (envelope-from ) id 1wAtso-000YCN-1u for pgsql-bugs@arkaria.postgresql.org; Thu, 09 Apr 2026 18:13:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wAtsm-007922-3C for pgsql-bugs@arkaria.postgresql.org; Thu, 09 Apr 2026 18:13:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wAtsm-00791u-1b for pgsql-bugs@lists.postgresql.org; Thu, 09 Apr 2026 18:13:37 +0000 Received: from mail-qv1-xf2a.google.com ([2607:f8b0:4864:20::f2a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wAtsl-00000000Chs-187S for pgsql-bugs@lists.postgresql.org; Thu, 09 Apr 2026 18:13:36 +0000 Received: by mail-qv1-xf2a.google.com with SMTP id 6a1803df08f44-8a58057d7baso14070146d6.1 for ; Thu, 09 Apr 2026 11:13:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775758415; cv=none; d=google.com; s=arc-20240605; b=bDoLdpoV6BzWPSydZS261gVv+Z86wOTaaFFXZqk72XS100CpmufXB00Mr99RBCLsAD RtTIRO1PJ+606fd/Fx7KyS6++0+mLV4W5mPpol7ggHACE2dJEjlTe9fr96KjYVIQImQg Krc24T5nCuaJaqvMsz42DtAM1bnHxSI+jYoYSijPBTQBu5lPdfP+QJ55NRKNFCwg1f0q u+8DjD9zCp17SMvtOBx+Qj4IE/ZyQlh6OR7EMhAEJMO6+ISgraWWxoyOUydy/XpY/Njs zn++31SvP0X98JCXAWK7fM1HGNirzHmCnN1LmCDbjjTjH8/tIsgXbvxPXVdVXeL12aBk cx5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=KjvmG2BQuuWrITccj/imTAR80kxBDYYJ8YokNVeLDa0=; fh=7HUUlL46K/PRxCvms3+80dvQkoKNPaCX4RQV4Hi5Ugs=; b=ioafErASsDQj/cIyopN+zqElb4hV+xFnMXdNipvijJTItx7gHx68emrTjXWhIR+Ab4 0g+/ADgEJD8qQ/KgAOOh/RPv6kDooWvQHDGW5BlbkJ54/1ulEVbrpE/KUKZyn1yJ59JG P0wjySjPaKZtibm8uHrxCbnfrHRhmVd1N8KQprtW8wD3HzXweQa9tVTAJVR4u4F+qJLA 2iCdTu9ThRcCHoM8THnC97o6dOL9Ae3YPyDPYKn67zCAKxIc7Ay1DpalrpCCOetftx3g six649yoHZSXlH09bZC64K9ay6M4Vpgyy21pfqODVdPRmjnePGwNb/tq/YDom8LlVM4P dEEg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775758415; x=1776363215; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=KjvmG2BQuuWrITccj/imTAR80kxBDYYJ8YokNVeLDa0=; b=MYhDfaUUZqz3yILgkyIbp3qZgab4L0hg+nL0YIwLRRDcVL6+Gur7/Mga78nr7DiAKv lao+tXIxrla2nZWl/mzC1FKWuA9+4K8WROctj0HRudg+zcW70hUQx0TXb4+n/kPzvAAU 0t5ArcZRGHP9ztEDQIDGnia59rHv1ze85EGp3GglLQY9nqjQMjWbArbnbPgsLVYpCv7U yxtIi21f0EE7WL0oVgI/g/jJ/gIcVLexUbxwUha7DET2R+TNVvNOf5XOgVk0puBCcS7k 4/zqglMuwOHSr50X+lcL1bG2HiatPNbmfHf0uNQL/BETvjtfcW1LSAWhuVOq3QxFHzt6 Ir1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775758415; x=1776363215; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KjvmG2BQuuWrITccj/imTAR80kxBDYYJ8YokNVeLDa0=; b=PHigCl0YxHYO82pBTeLESLZDI4H5rxzIAFW5sFE1ghey8ltJPU4e5BwN/QVZPRo9XY hJK9vCvtBCe/6yepgNYBC6/3KOaU+O3UEX244ijR8sCE8a4gGNN1tZcE5xPCiK5BgGWm a85l93T8e6qVfh4dQ0rdu7vqFtl+4Ll3V79VlpYu1ZD6McYIEe/yQVaaJK3SqZ9XZlmF wq7jf94Kj/JyZOKdNWEOer23WXs0ipTCanf36F52Cr5ZXxY/6kxR7pT/xKvO8wlhctKk BEMcJWHfCGQwqpwFsAXOcp8VWmbWJdL6vJBXr98vJRVzUTLomVkJpA/TY55YrkaDS+q9 xn+g== X-Forwarded-Encrypted: i=1; AJvYcCXD9XNM8JQEz5D6IyBsJpCwz0xd0XmiNp9FrFL4ZuFMtW5ElymMLKrJEhpqIatg1ifyJz49bNQ9n/HM@lists.postgresql.org X-Gm-Message-State: AOJu0Yy2Y+RQojcrPad/enEABmbc9e5zlS7C8e1dA5cMkz4LxoH3+bRa AT0lnXynjLpgVk/X2rfnHIIw2gLI6RYJp46p0kdMrZjYk/s9WH9KYqr418Hopb/Lq/0+5GlInmT 5Wuo3zbbob8VB7NECSsCQIDKjzgusrTc= X-Gm-Gg: AeBDievVeSnaLwhmWNq/CQPNMfIpo56CNfBRqKruygjpIWM+qYGUO9mNZkxTqIM07Nj pxqMXRppxFsaPNR9LnlHLr2XLCxJocHgKm/r5mUQiDPBEH8Y8LM5HDhUVVQj5Lf1RH0fG0mnD6+ Oeyhz8UdrVc+kisS5NGwdrwJagB4Xjy4PkMmHwT4Gat9f1PbQPX6eZzi5V/Do1XnUhhIv0lph8V WbR7Dv9FaL6Oos4IY8qI/nNOSFmiQuhemHKM8V91z27EQFiQMLrWIWlKk2ZhcZAH8T2qor19D7o oh3ZRG/k X-Received: by 2002:ad4:5f88:0:b0:8a7:14a7:fd48 with SMTP id 6a1803df08f44-8ac74280fb9mr69056736d6.25.1775758414651; Thu, 09 Apr 2026 11:13:34 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Matheus Alcantara Date: Thu, 9 Apr 2026 15:13:07 -0300 X-Gm-Features: AQROBzDRAfUYGvVYrgL9PpYPTznhVfTzCwO6DqsIdoD0fuAOTudkUTaG7g_lPd8 Message-ID: Subject: Re: BUG: PostgreSQL 19devel throws internal opfamily error for FK with reordered referenced columns To: Fredrik Widlert , pgsql-bugs@lists.postgresql.org Cc: Junwang Zhao , Amit Langote Content-Type: multipart/mixed; boundary="000000000000836b29064f0af9f9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000836b29064f0af9f9 Content-Type: text/plain; charset="UTF-8" On Thu Apr 9, 2026 at 12:27 PM -03, Fredrik Widlert wrote: > Hello, > > I believe I may have found a regression in PostgreSQL 19devel, downloaded > on 2026-04-09 > from https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.gz. > > postgres=# select version(); > version > ----------------------------------------------------------------------------------------------------- > PostgreSQL 19devel on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu > 13.2.0-23ubuntu4) 13.2.0, 64-bit > > > With the reproducer below, PostgreSQL 18 reports a normal foreign-key > violation > at INSERT time, but PostgreSQL 19devel instead throws an internal-looking > error: > > ERROR: operator 98 is not a member of opfamily 1976 > > > > -- reproducer: > drop table if exists parent, child; > > create table parent ( > app_id varchar(256) not null, > report_id smallint not null, > otype integer not null, > subtype integer not null, > ctype integer not null, > column_name varchar(30) not null, > primary key (app_id, report_id, otype, subtype, ctype, column_name) > ); > > create table child ( > app_id varchar(256) not null, > report_id smallint not null, > otype integer not null, > subtype integer not null, > column_name varchar(30) not null, > ctype integer, > -- intentionally swapped: column_name, ctype > constraint child_fk > foreign key (app_id, report_id, otype, subtype, column_name, ctype) > references parent (app_id, report_id, otype, subtype, column_name, > ctype) > ); > > > -- trigger the problem > insert into child (app_id, report_id, otype, subtype, column_name, ctype) > values ('DEFAULT_APP', 0, -1, -1, 'ID', -1); > Hi, thanks for reporting the issue. This seems to be related to commit 2da86c1ef9b. The issue is that in ri_populate_fastpath_metadata, the code uses idx_rel->rd_opfamily[i] where i is the constraint key position, but it should find the actual index column position for pk_attnums[i]. When FK columns are in a different order than PK columns, the constraint key position doesn't match the index column position. I didn't participate in the discussion of the feature but I studied the code a little bit after it was committed, so I'm taking a try to fix this issue with the attached patch, which seems to work for this case. CC Junwang Zhao and Amit Langote since they are involved in the original commit. -- Matheus Alcantara EDB: https://www.enterprisedb.com --000000000000836b29064f0af9f9 Content-Type: application/octet-stream; name="v1-0001-Fix-FK-fast-path-scan-key-ordering-for-mismatched.patch" Content-Disposition: attachment; filename="v1-0001-Fix-FK-fast-path-scan-key-ordering-for-mismatched.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnrso8a10 RnJvbSA2ZWRmYWJiYjcxNDI2NzEwNGMyNGFkNzNkMmVkNjk5ZTQ3NDBkOTA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0ubWU+CkRh dGU6IFRodSwgOSBBcHIgMjAyNiAxNDozOTowMSAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjFdIEZp eCBGSyBmYXN0LXBhdGggc2NhbiBrZXkgb3JkZXJpbmcgZm9yIG1pc21hdGNoZWQgY29sdW1uCiBv cmRlcgoKVGhlIGZhc3QtcGF0aCBmb3JlaWduIGtleSBjaGVjayBpbnRyb2R1Y2VkIGluIDJkYTg2 YzFlZjliIGFzc3VtZWQgdGhhdApjb25zdHJhaW50IGtleSBwb3NpdGlvbnMgZGlyZWN0bHkgY29y cmVzcG9uZCB0byBpbmRleCBjb2x1bW4gcG9zaXRpb25zLgpUaGlzIGlzIG5vdCBhbHdheXMgdHJ1 ZSBhcyBhIEZLIGNvbnN0cmFpbnQgY2FuIHJlZmVyZW5jZSBQSyBjb2x1bW5zIGluIGEKZGlmZmVy ZW50IG9yZGVyIHRoYW4gdGhleSBhcHBlYXIgaW4gdGhlIFBLJ3MgdW5pcXVlIGluZGV4LgoKRm9y IGV4YW1wbGUsIGlmIHRoZSBQSyBpcyAoYSwgYiwgYykgYW5kIHRoZSBGSyByZWZlcmVuY2VzIHRo ZW0gYXMKKGEsIGMsIGIpLCB0aGUgY29uc3RyYWludCBzdG9yZXMga2V5cyBpbiB0aGUgRkstc3Bl Y2lmaWVkIG9yZGVyLCBidXQKdGhlIGluZGV4IGhhcyBjb2x1bW5zIGluIFBLIG9yZGVyLiBUaGUg YnVnZ3kgY29kZSB1c2VkIHRoZSBjb25zdHJhaW50CmtleSBpbmRleCB0byBhY2Nlc3MgcmRfb3Bm YW1pbHlbaV0sIHdoaWNoIHJldHJpZXZlZCB0aGUgd3Jvbmcgb3BlcmF0b3IKZmFtaWx5IHdoZW4g Y29sdW1ucyB3ZXJlIHJlb3JkZXJlZCwgY2F1c2luZyAib3BlcmF0b3IgWCBpcyBub3QgYSBtZW1i ZXIKb2Ygb3BmYW1pbHkgWSIgZXJyb3JzLgoKQWZ0ZXIgZml4aW5nIHRoZSBvcGZhbWlseSBsb29r dXAsIGEgc2Vjb25kIGlzc3VlIHN0YXJ0ZWQgdG8gaGFwcGVuOgpidHJlZSBpbmRleCBzY2FucyBy ZXF1aXJlIHNjYW4ga2V5cyB0byBiZSBvcmRlcmVkIGJ5IGF0dHJpYnV0ZSBudW1iZXIuClRoZSBj b2RlIHdhcyBwbGFjaW5nIHNjYW4ga2V5cyBhdCBhcnJheSBwb3NpdGlvbiBpIHdpdGggYXR0cmli dXRlIG51bWJlcgppZHhfYXR0bm8sIHByb2R1Y2luZyBvdXQtb2Ytb3JkZXIga2V5cyB3aGVuIGNv bHVtbnMgd2VyZSBzd2FwcGVkLiBUaGlzCmNhdXNlZCAiYnRyZWUgaW5kZXgga2V5cyBtdXN0IGJl IG9yZGVyZWQgYnkgYXR0cmlidXRlIiBlcnJvcnMuCgpUaGUgZml4IGFkZHMgYW4gaW5kZXhfYXR0 bm9zIGFycmF5IHRvIEZhc3RQYXRoTWV0YSB0aGF0IG1hcHMgZWFjaApjb25zdHJhaW50IGtleSBw b3NpdGlvbiB0byBpdHMgY29ycmVzcG9uZGluZyBpbmRleCBjb2x1bW4gcG9zaXRpb24uCkluIHJp X3BvcHVsYXRlX2Zhc3RwYXRoX21ldGFkYXRhKCksIHdlIHNlYXJjaCBpbmRrZXkgdG8gZmluZCB0 aGUgYWN0dWFsCmluZGV4IGNvbHVtbiBmb3IgZWFjaCBwa19hdHRudW1zW2ldIGFuZCB1c2UgdGhh dCBwb3NpdGlvbiBmb3IgdGhlCm9wZmFtaWx5IGxvb2t1cC4gSW4gYnVpbGRfaW5kZXhfc2Nhbmtl eXMoKSwgd2UgcGxhY2UgZWFjaCBzY2FuIGtleSBhdAp0aGUgYXJyYXkgcG9zaXRpb24gY29ycmVz cG9uZGluZyB0byBpdHMgaW5kZXggY29sdW1uIChza2V5c1tpZHhfYXR0bm8tMV0pCnJhdGhlciB0 aGFuIGF0IHRoZSBjb25zdHJhaW50IGtleSBwb3NpdGlvbiwgZW5zdXJpbmcgc2NhbiBrZXlzIGFy ZQpwcm9wZXJseSBvcmRlcmVkIGJ5IGF0dHJpYnV0ZSBudW1iZXIgYXMgYnRyZWUgcmVxdWlyZXMu CgpSZXBvcnRlZC1ieTogRnJlZHJpayBXaWRsZXJ0IDxmcmVkcmlrLndpZGxlcnRAZGlncHJvLnNl PgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL0NBRGZo U3ItcENrYkR4bWlPVllTQUdFNVFHanNRNDhLS0hfVzQyNFNQayUyQnB3ektaRmFRJTQwbWFpbC5n bWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyAgICAgICB8 IDQwICsrKysrKysrKysrKysrKysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zv cmVpZ25fa2V5Lm91dCB8IDE5ICsrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3Jl aWduX2tleS5zcWwgICAgICB8IDE4ICsrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNzAgaW5z ZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcmlfdHJpZ2dlcnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5j CmluZGV4IDE4ZWM4NTgzNTdkLi4wOWE1YWIyNGU1NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3Ry aWdnZXJzLmMKQEAgLTE1Niw2ICsxNTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBGYXN0UGF0aE1ldGEK IAlSZWdQcm9jZWR1cmUgcmVnb3BzW1JJX01BWF9OVU1LRVlTXTsKIAlPaWQJCQlzdWJ0eXBlc1tS SV9NQVhfTlVNS0VZU107CiAJaW50CQkJc3RyYXRzW1JJX01BWF9OVU1LRVlTXTsKKwlBdHRyTnVt YmVyCWluZGV4X2F0dG5vc1tSSV9NQVhfTlVNS0VZU107CS8qIGluZGV4IGNvbHVtbiBwb3NpdGlv bnMgKi8KIH0gRmFzdFBhdGhNZXRhOwogCiAvKgpAQCAtMzA5NSwxNCArMzA5NiwxNyBAQCByaV9G YXN0UGF0aEZsdXNoQXJyYXkoUklfRmFzdFBhdGhFbnRyeSAqZnBlbnRyeSwgVHVwbGVUYWJsZVNs b3QgKmZrX3Nsb3QsCiAJICogc29ydCBhbmQgZGVkdXBsaWNhdGUsIHRoZW4gd2FsayBsZWFmIHBh Z2VzIGluIG9yZGVyLgogCSAqCiAJICogUEsgaW5kZXhlcyBhcmUgYWx3YXlzIGJ0cmVlLCB3aGlj aCBzdXBwb3J0cyBTS19TRUFSQ0hBUlJBWS4KKwkgKgorCSAqIFJlZmVyZW5jZSBpbmRleF9hdHRu b3NbMF0gZm9yIGF0dHJpYnV0ZSBudW1iZXIgYW5kIGNvbGxhdGlvbiBzaW5jZSB0aGlzCisJICog aXMgYSBzaW5nbGUtY29sdW1uIGZhc3QgcGF0aC4KIAkgKi8KIAlBc3NlcnQoaWR4X3JlbC0+cmRf aW5kYW0tPmFtc2VhcmNoYXJyYXkpOwogCVNjYW5LZXlFbnRyeUluaXRpYWxpemUoJnNrZXlbMF0s CiAJCQkJCQkgICBTS19TRUFSQ0hBUlJBWSwKLQkJCQkJCSAgIDEsCS8qIGF0dG5vICovCisJCQkJ CQkgICBmcG1ldGEtPmluZGV4X2F0dG5vc1swXSwKIAkJCQkJCSAgIGZwbWV0YS0+c3RyYXRzWzBd LAogCQkJCQkJICAgZnBtZXRhLT5zdWJ0eXBlc1swXSwKLQkJCQkJCSAgIGlkeF9yZWwtPnJkX2lu ZGNvbGxhdGlvblswXSwKKwkJCQkJCSAgIGlkeF9yZWwtPnJkX2luZGNvbGxhdGlvbltmcG1ldGEt PmluZGV4X2F0dG5vc1swXSAtIDFdLAogCQkJCQkJICAgZnBtZXRhLT5yZWdvcHNbMF0sCiAJCQkJ CQkgICBQb2ludGVyR2V0RGF0dW0oYXJyKSk7CiAKQEAgLTM0MTQsMTUgKzM0MTgsMjAgQEAgYnVp bGRfaW5kZXhfc2NhbmtleXMoY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAogCS8q CiAJICogU2V0IHVwIFNjYW5LZXlzIGZvciB0aGUgaW5kZXggc2Nhbi4gVGhpcyBpcyBlc3NlbnRp YWxseSBob3cKLQkgKiBFeGVjSW5kZXhCdWlsZFNjYW5LZXlzKCkgc2V0cyB0aGVtIHVwLgorCSAq IEV4ZWNJbmRleEJ1aWxkU2NhbktleXMoKSBzZXRzIHRoZW0gdXAuICBVc2UgdGhlIGNhY2hlZCBp bmRleF9hdHRub3MgYW5kCisJICogdGhlIGNvcnJlc3BvbmRpbmcgY29sbGF0aW9uIHNpbmNlIEZL IGNvbHVtbnMgbWF5IGJlIGluIGEgZGlmZmVyZW50CisJICogb3JkZXIgdGhhbiBQSyBpbmRleCBj b2x1bW5zLiAgUGxhY2UgZWFjaCBzY2FuIGtleSBhdCB0aGUgYXJyYXkgcG9zaXRpb24KKwkgKiBj b3JyZXNwb25kaW5nIHRvIGl0cyBpbmRleCBjb2x1bW4sIHNpbmNlIGJ0cmVlIHJlcXVpcmVzIGtl eXMgdG8gYmUKKwkgKiBvcmRlcmVkIGJ5IGF0dHJpYnV0ZSBudW1iZXIuCiAJICovCiAJZm9yIChp bnQgaSA9IDA7IGkgPCByaWluZm8tPm5rZXlzOyBpKyspCiAJewotCQlpbnQJCQlwa2F0dHJubyA9 IGkgKyAxOworCQlBdHRyTnVtYmVyCXBrYXR0cm5vID0gZnBtZXRhLT5pbmRleF9hdHRub3NbaV07 CisJCWludAkJCXNrZXlfcG9zID0gcGthdHRybm8gLSAxOwkvKiAwLWJhc2VkIGFycmF5IHBvc2l0 aW9uICovCiAKLQkJU2NhbktleUVudHJ5SW5pdGlhbGl6ZSgmc2tleXNbaV0sIDAsIHBrYXR0cm5v LAorCQlTY2FuS2V5RW50cnlJbml0aWFsaXplKCZza2V5c1tza2V5X3Bvc10sIDAsIHBrYXR0cm5v LAogCQkJCQkJCSAgIGZwbWV0YS0+c3RyYXRzW2ldLCBmcG1ldGEtPnN1YnR5cGVzW2ldLAotCQkJ CQkJCSAgIGlkeF9yZWwtPnJkX2luZGNvbGxhdGlvbltpXSwgZnBtZXRhLT5yZWdvcHNbaV0sCisJ CQkJCQkJICAgaWR4X3JlbC0+cmRfaW5kY29sbGF0aW9uW3NrZXlfcG9zXSwgZnBtZXRhLT5yZWdv cHNbaV0sCiAJCQkJCQkJICAgcGtfdmFsc1tpXSk7CiAJfQogfQpAQCAtMzQ1MSw2ICszNDYwLDIz IEBAIHJpX3BvcHVsYXRlX2Zhc3RwYXRoX21ldGFkYXRhKFJJX0NvbnN0cmFpbnRJbmZvICpyaWlu Zm8sCiAJCU9pZAkJCXR5cGVpZCA9IFJJQXR0VHlwZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVt c1tpXSk7CiAJCU9pZAkJCWxlZnR0eXBlOwogCQlSSV9Db21wYXJlSGFzaEVudHJ5ICplbnRyeSA9 IHJpX0hhc2hDb21wYXJlT3AoZXFfb3ByLCB0eXBlaWQpOworCQlpbnQJCQlpZHhfY29sOworCisJ CS8qCisJCSAqIEZpbmQgdGhlIGluZGV4IGNvbHVtbiBwb3NpdGlvbiBmb3IgdGhpcyBjb25zdHJh aW50IGtleS4gIFRoZSBGSworCQkgKiBjb25zdHJhaW50IG1heSByZWZlcmVuY2UgY29sdW1ucyBp biBhIGRpZmZlcmVudCBvcmRlciB0aGFuIHRoZXkKKwkJICogYXBwZWFyIGluIHRoZSBQSyBpbmRl eCwgc28gd2UgbXVzdCBtYXAgcGtfYXR0bnVtc1tpXSB0byB0aGUKKwkJICogY29ycmVzcG9uZGlu ZyBpbmRleCBjb2x1bW4gcG9zaXRpb24uCisJCSAqLworCQlmb3IgKGlkeF9jb2wgPSAwOyBpZHhf Y29sIDwgcmlpbmZvLT5ua2V5czsgaWR4X2NvbCsrKQorCQl7CisJCQlpZiAoaWR4X3JlbC0+cmRf aW5kZXgtPmluZGtleS52YWx1ZXNbaWR4X2NvbF0gPT0gcmlpbmZvLT5wa19hdHRudW1zW2ldKQor CQkJCWJyZWFrOworCQl9CisJCUFzc2VydChpZHhfY29sIDwgcmlpbmZvLT5ua2V5cyk7CisKKwkJ LyogMS1iYXNlZCBhdHRyaWJ1dGUgbnVtYmVyICovCisJCWZwbWV0YS0+aW5kZXhfYXR0bm9zW2ld ID0gaWR4X2NvbCArIDE7CiAKIAkJZm1ncl9pbmZvX2NvcHkoJmZwbWV0YS0+Y2FzdF9mdW5jX2Zp bmZvW2ldLCAmZW50cnktPmNhc3RfZnVuY19maW5mbywKIAkJCQkJICAgQ3VycmVudE1lbW9yeUNv bnRleHQpOwpAQCAtMzQ1OSw3ICszNDg1LDcgQEAgcmlfcG9wdWxhdGVfZmFzdHBhdGhfbWV0YWRh dGEoUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAkJZnBtZXRhLT5yZWdvcHNbaV0gPSBnZXRf b3Bjb2RlKGVxX29wcik7CiAKIAkJZ2V0X29wX29wZmFtaWx5X3Byb3BlcnRpZXMoZXFfb3ByLAot CQkJCQkJCQkgICBpZHhfcmVsLT5yZF9vcGZhbWlseVtpXSwKKwkJCQkJCQkJICAgaWR4X3JlbC0+ cmRfb3BmYW1pbHlbaWR4X2NvbF0sCiAJCQkJCQkJCSAgIGZhbHNlLAogCQkJCQkJCQkgICAmZnBt ZXRhLT5zdHJhdHNbaV0sCiAJCQkJCQkJCSAgICZsZWZ0dHlwZSwKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9rZXkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9mb3JlaWduX2tleS5vdXQKaW5kZXggOTEyOTU3NTRiYWIuLjlmYTJlMjIzMjlhIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fa2V5Lm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fa2V5Lm91dApAQCAtMzY1Myw2ICsz NjUzLDI1IEBAIElOU0VSVCBJTlRPIGZwX2ZrX211bHRpIFZBTFVFUyAoMSwgOTk5LCA5OTkpOwog RVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJmcF9ma19tdWx0aSIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAiZnBfZmtfbXVsdGlfYV9iX2ZrZXkiCiBERVRBSUw6ICBL ZXkgKGEsIGIpPSg5OTksIDk5OSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgImZwX3BrX211bHRp Ii4KIERST1AgVEFCTEUgZnBfZmtfbXVsdGksIGZwX3BrX211bHRpOworLS0gTXVsdGktY29sdW1u IEZLIHdpdGggY29sdW1ucyBpbiBkaWZmZXJlbnQgb3JkZXIgdGhhbiBQSyBpbmRleC4KKy0tIFRo ZSBGSyByZWZlcmVuY2VzIGNvbHVtbnMgaW4gYSBkaWZmZXJlbnQgb3JkZXIgdGhhbiB0aGV5IGFw cGVhciBpbiB0aGUKKy0tIFBLJ3MgcHJpbWFyeSBrZXksIHdoaWNoIHJlcXVpcmVzIG1hcHBpbmcg Y29uc3RyYWludCBrZXkgcG9zaXRpb25zIHRvCistLSBpbmRleCBjb2x1bW4gcG9zaXRpb25zIHdo ZW4gYnVpbGRpbmcgc2NhbiBrZXlzLgorQ1JFQVRFIFRBQkxFIGZwX3BrX29yZGVyIChhIGludCwg YiB0ZXh0LCBjIGludCwgUFJJTUFSWSBLRVkgKGEsIGIsIGMpKTsKK0lOU0VSVCBJTlRPIGZwX3Br X29yZGVyIFZBTFVFUyAoMSwgJ29uZScsIDEwKSwgKDIsICd0d28nLCAyMCk7CitDUkVBVEUgVEFC TEUgZnBfZmtfb3JkZXIgKAorICAgIHggaW50LAorICAgIGMgaW50LAorICAgIGIgdGV4dCwKKyAg ICBhIGludCwKKyAgICBGT1JFSUdOIEtFWSAoYSwgYywgYikgUkVGRVJFTkNFUyBmcF9wa19vcmRl ciAoYSwgYywgYikgIC0tIGMgYW5kIGIgc3dhcHBlZAorKTsKK0lOU0VSVCBJTlRPIGZwX2ZrX29y ZGVyIFZBTFVFUyAoMSwgMTAsICdvbmUnLCAxKTsgIC0tIHNob3VsZCBzdWNjZWVkCitJTlNFUlQg SU5UTyBmcF9ma19vcmRlciBWQUxVRVMgKDIsIDIwLCAndHdvJywgMik7ICAtLSBzaG91bGQgc3Vj Y2VlZAorSU5TRVJUIElOVE8gZnBfZmtfb3JkZXIgVkFMVUVTICgzLCA5OSwgJ25vbmUnLCA5KTsg IC0tIHNob3VsZCBmYWlsCitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgImZwX2Zr X29yZGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJmcF9ma19vcmRlcl9hX2Nf Yl9ma2V5IgorREVUQUlMOiAgS2V5IChhLCBjLCBiKT0oOSwgOTksIG5vbmUpIGlzIG5vdCBwcmVz ZW50IGluIHRhYmxlICJmcF9wa19vcmRlciIuCitEUk9QIFRBQkxFIGZwX2ZrX29yZGVyLCBmcF9w a19vcmRlcjsKIC0tIERlZmVycmVkIGNvbnN0cmFpbnQ6IGJhdGNoIGZsdXNoZWQgYXQgQ09NTUlU LCBub3QgYXQgc3RhdGVtZW50IGVuZAogQ1JFQVRFIFRBQkxFIGZwX3BrX2NvbW1pdCAoYSBpbnQg UFJJTUFSWSBLRVkpOwogQ1JFQVRFIFRBQkxFIGZwX2ZrX2NvbW1pdCAoYSBpbnQgUkVGRVJFTkNF UyBmcF9wa19jb21taXQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25f a2V5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fa2V5LnNxbAppbmRleCBmNjQ2 ZGQxMDQwMS4uOWFmZWU2NGQxZTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zv cmVpZ25fa2V5LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JlaWduX2tleS5zcWwK QEAgLTI2MjUsNiArMjYyNSwyNCBAQCBJTlNFUlQgSU5UTyBmcF9ma19tdWx0aSBTRUxFQ1QgaSwg aSwgaSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIGk7CiBJTlNFUlQgSU5UTyBmcF9ma19t dWx0aSBWQUxVRVMgKDEsIDk5OSwgOTk5KTsKIERST1AgVEFCTEUgZnBfZmtfbXVsdGksIGZwX3Br X211bHRpOwogCistLSBNdWx0aS1jb2x1bW4gRksgd2l0aCBjb2x1bW5zIGluIGRpZmZlcmVudCBv cmRlciB0aGFuIFBLIGluZGV4LgorLS0gVGhlIEZLIHJlZmVyZW5jZXMgY29sdW1ucyBpbiBhIGRp ZmZlcmVudCBvcmRlciB0aGFuIHRoZXkgYXBwZWFyIGluIHRoZQorLS0gUEsncyBwcmltYXJ5IGtl eSwgd2hpY2ggcmVxdWlyZXMgbWFwcGluZyBjb25zdHJhaW50IGtleSBwb3NpdGlvbnMgdG8KKy0t IGluZGV4IGNvbHVtbiBwb3NpdGlvbnMgd2hlbiBidWlsZGluZyBzY2FuIGtleXMuCitDUkVBVEUg VEFCTEUgZnBfcGtfb3JkZXIgKGEgaW50LCBiIHRleHQsIGMgaW50LCBQUklNQVJZIEtFWSAoYSwg YiwgYykpOworSU5TRVJUIElOVE8gZnBfcGtfb3JkZXIgVkFMVUVTICgxLCAnb25lJywgMTApLCAo MiwgJ3R3bycsIDIwKTsKK0NSRUFURSBUQUJMRSBmcF9ma19vcmRlciAoCisgICAgeCBpbnQsCisg ICAgYyBpbnQsCisgICAgYiB0ZXh0LAorICAgIGEgaW50LAorICAgIEZPUkVJR04gS0VZIChhLCBj LCBiKSBSRUZFUkVOQ0VTIGZwX3BrX29yZGVyIChhLCBjLCBiKSAgLS0gYyBhbmQgYiBzd2FwcGVk CispOworSU5TRVJUIElOVE8gZnBfZmtfb3JkZXIgVkFMVUVTICgxLCAxMCwgJ29uZScsIDEpOyAg LS0gc2hvdWxkIHN1Y2NlZWQKK0lOU0VSVCBJTlRPIGZwX2ZrX29yZGVyIFZBTFVFUyAoMiwgMjAs ICd0d28nLCAyKTsgIC0tIHNob3VsZCBzdWNjZWVkCitJTlNFUlQgSU5UTyBmcF9ma19vcmRlciBW QUxVRVMgKDMsIDk5LCAnbm9uZScsIDkpOyAgLS0gc2hvdWxkIGZhaWwKK0RST1AgVEFCTEUgZnBf Zmtfb3JkZXIsIGZwX3BrX29yZGVyOworCiAtLSBEZWZlcnJlZCBjb25zdHJhaW50OiBiYXRjaCBm bHVzaGVkIGF0IENPTU1JVCwgbm90IGF0IHN0YXRlbWVudCBlbmQKIENSRUFURSBUQUJMRSBmcF9w a19jb21taXQgKGEgaW50IFBSSU1BUlkgS0VZKTsKIENSRUFURSBUQUJMRSBmcF9ma19jb21taXQg KGEgaW50IFJFRkVSRU5DRVMgZnBfcGtfY29tbWl0Ci0tIAoyLjUzLjAKCg== --000000000000836b29064f0af9f9--