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 1wWy6R-002yaa-2h for pgsql-bugs@arkaria.postgresql.org; Tue, 09 Jun 2026 15:10:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wWy6P-007WBJ-1m for pgsql-bugs@arkaria.postgresql.org; Tue, 09 Jun 2026 15:10:53 +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.96) (envelope-from ) id 1wWy6P-007WBA-0i for pgsql-bugs@lists.postgresql.org; Tue, 09 Jun 2026 15:10:53 +0000 Received: from mail-dl1-x1229.google.com ([2607:f8b0:4864:20::1229]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wWy6L-00000002AaC-1IfG for pgsql-bugs@lists.postgresql.org; Tue, 09 Jun 2026 15:10:52 +0000 Received: by mail-dl1-x1229.google.com with SMTP id a92af1059eb24-1382533d428so1110173c88.1 for ; Tue, 09 Jun 2026 08:10:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781017846; x=1781622646; darn=lists.postgresql.org; h=in-reply-to:references:to:from:subject:cc:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=leJhVc82N3OgQfA9CwZHKlRQ2w8PU0NoI5kGfDXYFKc=; b=rEAO20g3PzS/wrnKQIbzLYJRSpL7pr2OjzU6ve3ISxxfx0FAtTDwsE7W7t5qzr+XvO 8TG91nEWgAgg3yi0+Im8lUHP4Q1yjotX697No08S8GDnwL18u+vN22CNCzlqaffL+1Ky kEcVviTz+GHXmKNcjd+G/BdLwm7R/7KrDkdDLCAC8yCHNjg/vx/0d2HEdURXl2r5HA6m 522TCRasOB1eqiPWEdqssPFw2rTUk5ZwVkEjBIMeuVY69tVlUMmFSwhyBExKjpokq/E3 621VIbD1VCoGQLcRWbrWBy9BlBdS1cSnqLaFUKL1YrKbf7EZx+Lzl/wdVMJNHmzZEy/P jH0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781017846; x=1781622646; h=in-reply-to:references:to:from:subject:cc:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=leJhVc82N3OgQfA9CwZHKlRQ2w8PU0NoI5kGfDXYFKc=; b=YSNsdI2sIIy91ojG8uipsngJ1TQnDqMHa4EFCT0QAccXqOXO8oWJop+QYviUQFLMuT qCgXhZjiR18h9w1f6PDD60BGvydMsziaMkiDGg2D+nuijItBUUBfUswzS4RFw7dno6kq 6DrhSO1e2V2z7JChuK6PXaUxUF8pluFAp1DntCvJ2hNIhzXshpeQ5WRsISG+eGIpQB9p KEcsKzSgWQ9kD+E3OnYDmpT54xwatQuLMQvFWq5NY6n9Xyrhvs+P+DRiHsYugbhpermm ylGd43Gdo11mp7KB6S+k166TmuQjyIHTiUyysw+DRxzGHuGp8HdC0DB0cjmxRgPmyghT xkew== X-Forwarded-Encrypted: i=1; AFNElJ9dnFWxyXva1str5O8XmyFAHaUHXcBBudIv4pGyBEtg1lKUIM0n77noEVgVnTdUAwU5gKt+3szuoScc@lists.postgresql.org X-Gm-Message-State: AOJu0Yx2esnqgg7M2re7gQwNQm97ogmg72S3C3BOx3aEg8TytvBfvwIO tecJhq32Y5hBnPLF/bC3Gzirc10z2mLSwukd04s1xBT0U/qtCHWoxJhU X-Gm-Gg: Acq92OE8IybQcYmY5lZi3sr3allpPRu0JOuCGaEo/rVIbmFAcf3MTerNFEZOwIj9pc3 YUJ4A1aWaS9FWgOLlf4hg+ziWvJbtdu4gIeEbHZsMp6S3mh2MptWaqaRYLAsGqqJkh/ZUCXFXnO m8dNXaEsA5p1gfsCsCI+IavBnudkbFBj8yZxVpLBqwVogBwcaNpUVF1wGmLLbf6gqIwfV1CtYAl 0x2vtwcLZRyXch2zhwFuakAWr3e8YZflSf2Jmeu3pinDtZ/OXRKCT+LG16S+KjVU+Yx263vieYv m1zNumppq9RZFdWYH1R7NrJX71UhQp9QKpkntorGYXwdYY2UfoIx7QKJHKBqV3Z0V84KHK+worx FJyH3FUlnjKZxKwPlSTslrm9z0YOVQseWl7NKWqiD5JnI3RnV0D74U5bPkG6cV55hCY2jXc08Dl 4ZlgF1SBrGgpk7BZzW/Un1QziWDQKWXVt1NUCsEJcTA0iNxDU1jveNIYA1ZjsADQ4BnL4= X-Received: by 2002:a05:7022:f415:b0:12c:6a24:a24f with SMTP id a92af1059eb24-1380672b0b1mr9932393c88.33.1781017846311; Tue, 09 Jun 2026 08:10:46 -0700 (PDT) Received: from localhost ([2804:14d:328a:a59c:6551:f299:454e:9985]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-137f5489d17sm15034963c88.1.2026.06.09.08.10.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 09 Jun 2026 08:10:45 -0700 (PDT) Content-Type: multipart/mixed; boundary=0f80be63bc703bbf937c548b6585d0f2abed82c280aab2fc8a60cc1d544b Mime-Version: 1.0 Date: Tue, 09 Jun 2026 12:10:42 -0300 Message-Id: Cc: "Ayush Tiwari" , <798604270@qq.com>, , "Etsuro Fujita" Subject: Re: BUG #19484: Segmentation fault triggered by FDW From: "Matheus Alcantara" To: "Rafia Sabih" X-Mailer: aerc 0.21.0 References: <19484-a3cb82c8cde3c8fa@postgresql.org> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0f80be63bc703bbf937c548b6585d0f2abed82c280aab2fc8a60cc1d544b Content-Type: multipart/alternative; boundary=fadce7b02ade607b84410665c9b66ff57b4b910a7d6ac034c9130c9c203b --fadce7b02ade607b84410665c9b66ff57b4b910a7d6ac034c9130c9c203b Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8 On Sat May 30, 2026 at 3:18 AM -03, Rafia Sabih wrote: > A good catch. However there is one issue that remains here, > in show_modifytable_info still is using the old index here fdw_private = =3D > (List *) list_nth(node->fdwPrivLists, j) i.e. the one before pruning. > In fact I found a scenario where it is causing crash, try this > > create table fdw_part_update2 (a int not null, b int) partition by list (= a); > create table fdw_part_update2_p1 partition of fdw_part_update2 for values > in (1); > create table fdw_part_update2_remote (a int not null, b int); > create foreign table fdw_part_update2_p2 partition of fdw_part_update2 > for values in (2) > server loopback options (table_name 'fdw_part_update2_remote'); > insert into fdw_part_update2_p1 values (1, 10); > insert into fdw_part_update2_remote values (2, 20); > set plan_cache_mode =3D force_generic_plan; > prepare fdw_part_upd2(int) as > update fdw_part_update2 set b =3D b + random()::int * 0 + 1 where a= =3D $1 > returning tableoid::regclass, a, b; > execute fdw_part_upd2(2); > explain (analyze, verbose, costs off, timing off, summary off) > execute fdw_part_upd2(2); > > Please find the attached file for the patch to fix this. This patch appli= es > over the earlier patch (given by Ayush) in this thread. > Thanks for catching this, Rafia. The fix is correct =E2=80=94 show_modifytable_info() was indeed still reading from node->fdwPrivLists using the post-pruning index j, which causes an out-of-bounds access when partitions are pruned. I think both patches should be squashed into a single one since they fix the same underlying issue. I've done this locally and also ran pg_indent over the result. Attached is the combined patch. One minor naming observation: the new fdwPrivLists field in ModifyTableState doesn't follow the mt_ prefix convention used by the other re-indexed lists (mt_updateColnosLists, mt_mergeActionLists, mt_mergeJoinConditions). Should we rename it to mt_fdwPrivLists for consistency? -- Matheus Alcantara EDB: https://www.enterprisedb.com --fadce7b02ade607b84410665c9b66ff57b4b910a7d6ac034c9130c9c203b-- --0f80be63bc703bbf937c548b6585d0f2abed82c280aab2fc8a60cc1d544b Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-Re-index-ModifyTable-FDW-arrays-when-pruning-result-.patch Content-Type: text/plain; charset=utf-8; name=0001-Re-index-ModifyTable-FDW-arrays-when-pruning-result-.patch RnJvbSA0MDIwZTg2ZTJlYzg1YjZmZDU4Mzk3YjVmNGY0NjdkMWJhZjVhZDg3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0ubWU+CkRh dGU6IFR1ZSwgOSBKdW4gMjAyNiAxMTo1NTozNCAtMDMwMApTdWJqZWN0OiBbUEFUQ0hdIFJlLWlu ZGV4IE1vZGlmeVRhYmxlIEZEVyBhcnJheXMgd2hlbiBwcnVuaW5nIHJlc3VsdCByZWxhdGlvbnMK CkV4ZWNJbml0TW9kaWZ5VGFibGUoKSBjb3BpZXMgcGFyYWxsZWwgcGVyLXJlc3VsdC1yZWxhdGlv biBsaXN0cyBmcm9tCnRoZSBwbGFuIG5vZGUgaW50byBhIG5ldyAia2VwdCIgc2V0IGFmdGVyIGRy b3BwaW5nIHBydW5lZCByZXN1bHQKcmVsYXRpb25zLiBUaGF0IHJlLWluZGV4aW5nIHdhcyBhbHJl YWR5IGRvbmUgZm9yIHdpdGhDaGVja09wdGlvbkxpc3RzLApyZXR1cm5pbmdMaXN0cywgdXBkYXRl Q29sbm9zTGlzdHMsIG1lcmdlQWN0aW9uTGlzdHMgYW5kCm1lcmdlSm9pbkNvbmRpdGlvbnMsIGJ1 dCBmZHdQcml2TGlzdHMgYW5kIGZkd0RpcmVjdE1vZGlmeVBsYW5zIHdlcmUgbWlzc2VkLgoKQWRk aXRpb25hbGx5LCBzaG93X21vZGlmeXRhYmxlX2luZm8oKSBpbiBleHBsYWluLmMgd2FzIHJlYWRp bmcgdGhlCnBsYW4taW5kZXhlZCBub2RlLT5mZHdQcml2TGlzdHMgdXNpbmcgdGhlIHBvc3QtcHJ1 bmluZyBleGVjdXRvciBpbmRleCwKY2F1c2luZyBvdXQtb2YtYm91bmRzIGFjY2Vzcy4gRml4IGJ5 IHNhdmluZyB0aGUgcmUtaW5kZXhlZCBsaXN0IHRvCm10c3RhdGUtPmZkd1ByaXZMaXN0cyBhbmQg cmVhZGluZyBmcm9tIHRoZXJlLgoKQXV0aG9yOiBBeXVzaCBUaXdhcmkgPGF5dXNodGl3YXJpLnNs ZzAxQGdtYWlsLmNvbT4KQXV0aG9yOiBSYWZpYSBTYWJpaCA8cmFmaWEuc2FiaWhAY3liZXJ0ZWMu YXQ+CkNvLWF1dGhvcmVkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0ubWU+ClJl cG9ydGVkLWJ5OiBDaGkgWmhhbmcgPDc5ODYwNDI3MEBxcS5jb20+CkRpc2N1c3Npb246IGh0dHBz Oi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvMTk0ODQtYTNjYjgyYzhjZGUzYzhmYSU0 MHBvc3RncmVzcWwub3JnCi0tLQogLi4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19m ZHcub3V0ICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKwogY29udHJpYi9wb3N0Z3Jlc19mZHcv c3FsL3Bvc3RncmVzX2Zkdy5zcWwgICAgIHwgMjkgKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2V4cGxhaW4uYyAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9leGVj dXRvci9ub2RlTW9kaWZ5VGFibGUuYyAgICAgICAgfCAyMyArKysrKysrKy0KIHNyYy9pbmNsdWRl L25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICA2ICsrKwogNSBmaWxlcyBjaGFu Z2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0 Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAppbmRleCBlOTAyODllNGFiMS4uNWY1 Y2I3OGVlNjUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3Rn cmVzX2Zkdy5vdXQKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dApAQCAtOTMzNyw2ICs5MzM3LDU3IEBAIHNlbGVjdCB0YWJsZW9pZDo6cmVnY2xhc3Ms ICogRlJPTSBsb2NwOwogCiAtLSBUaGUgZXhlY3V0b3Igc2hvdWxkIG5vdCBsZXQgdW5leGVyY2lz ZWQgRkRXcyBzaHV0IGRvd24KIHVwZGF0ZSB1dHJ0ZXN0IHNldCBhID0gMSB3aGVyZSBiID0gJ2Zv byc7CistLSBSdW50aW1lIHBydW5pbmcgb2YgcmVzdWx0IHJlbGF0aW9ucyBtdXN0IGtlZXAgTW9k aWZ5VGFibGUncyBwZXItcmVsYXRpb24KKy0tIEZEVyBhcnJheXMgKGZkd1ByaXZMaXN0cywgZmR3 RGlyZWN0TW9kaWZ5UGxhbnMpIGFsaWduZWQgd2l0aCB0aGUga2VwdAorLS0gcmVzdWx0UmVsYXRp b25zLiAgT3RoZXJ3aXNlIEJlZ2luRm9yZWlnbk1vZGlmeSgpIHJlYWRzIHRoZSB3cm9uZworLS0g ZmR3X3ByaXZhdGUgYW5kIHNlZ2ZhdWx0cy4KK2NyZWF0ZSB0YWJsZSBmZHdfcGFydF91cGRhdGUg KGEgaW50IG5vdCBudWxsLCBiIGludCkgcGFydGl0aW9uIGJ5IGxpc3QgKGEpOworY3JlYXRlIHRh YmxlIGZkd19wYXJ0X3VwZGF0ZV9wMSBwYXJ0aXRpb24gb2YgZmR3X3BhcnRfdXBkYXRlIGZvciB2 YWx1ZXMgaW4gKDEpOworY3JlYXRlIHRhYmxlIGZkd19wYXJ0X3VwZGF0ZV9yZW1vdGUgKGEgaW50 IG5vdCBudWxsLCBiIGludCk7CitjcmVhdGUgZm9yZWlnbiB0YWJsZSBmZHdfcGFydF91cGRhdGVf cDIgcGFydGl0aW9uIG9mIGZkd19wYXJ0X3VwZGF0ZQorICAgIGZvciB2YWx1ZXMgaW4gKDIpCisg ICAgc2VydmVyIGxvb3BiYWNrIG9wdGlvbnMgKHRhYmxlX25hbWUgJ2Zkd19wYXJ0X3VwZGF0ZV9y ZW1vdGUnKTsKK2luc2VydCBpbnRvIGZkd19wYXJ0X3VwZGF0ZV9wMSB2YWx1ZXMgKDEsIDEwKTsK K2luc2VydCBpbnRvIGZkd19wYXJ0X3VwZGF0ZV9yZW1vdGUgdmFsdWVzICgyLCAyMCk7CitzZXQg cGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOworcHJlcGFyZSBmZHdfcGFydF91 cGQoaW50KSBhcworICAgIHVwZGF0ZSBmZHdfcGFydF91cGRhdGUgc2V0IGIgPSBiICsgMSB3aGVy ZSBhID0gJDEKKyAgICAgICAgcmV0dXJuaW5nIHRhYmxlb2lkOjpyZWdjbGFzcywgYSwgYjsKK2V4 ZWN1dGUgZmR3X3BhcnRfdXBkKDIpOworICAgICAgdGFibGVvaWQgICAgICB8IGEgfCBiICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLSstLS0tCisgZmR3X3BhcnRfdXBkYXRlX3AyIHwgMiB8IDIx CisoMSByb3cpCisKK2RlYWxsb2NhdGUgZmR3X3BhcnRfdXBkOworcHJlcGFyZSBmZHdfcGFydF91 cGQyKGludCkgYXMKKyAgICAgIHVwZGF0ZSBmZHdfcGFydF91cGRhdGUgc2V0IGIgPSBiICsgcmFu ZG9tKCk6OmludCAqIDAgKyAxIHdoZXJlIGEgPSAkMQorICAgICAgcmV0dXJuaW5nIHRhYmxlb2lk OjpyZWdjbGFzcywgYSwgYjsKK2V4ZWN1dGUgZmR3X3BhcnRfdXBkMigyKTsKKyAgICAgIHRhYmxl b2lkICAgICAgfCBhIHwgYiAgCistLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0rLS0tLQorIGZkd19w YXJ0X3VwZGF0ZV9wMiB8IDIgfCAyMgorKDEgcm93KQorCitleHBsYWluIChhbmFseXplLCB2ZXJi b3NlLCBjb3N0cyBvZmYsIHRpbWluZyBvZmYsIHN1bW1hcnkgb2ZmKQorICAgIGV4ZWN1dGUgZmR3 X3BhcnRfdXBkMigyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFVwZGF0ZSBvbiBwdWJsaWMu ZmR3X3BhcnRfdXBkYXRlIChhY3R1YWwgcm93cz0xLjAwIGxvb3BzPTEpCisgICBPdXRwdXQ6IChm ZHdfcGFydF91cGRhdGVfMS50YWJsZW9pZCk6OnJlZ2NsYXNzLCBmZHdfcGFydF91cGRhdGVfMS5h LCBmZHdfcGFydF91cGRhdGVfMS5iCisgICBGb3JlaWduIFVwZGF0ZSBvbiBwdWJsaWMuZmR3X3Bh cnRfdXBkYXRlX3AyIGZkd19wYXJ0X3VwZGF0ZV8yCisgICAgIFJlbW90ZSBTUUw6IFVQREFURSBw dWJsaWMuZmR3X3BhcnRfdXBkYXRlX3JlbW90ZSBTRVQgYiA9ICQyIFdIRVJFIGN0aWQgPSAkMSBS RVRVUk5JTkcgYSwgYgorICAgLT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9MS4wMCBsb29wcz0xKQor ICAgICAgICAgU3VicGxhbnMgUmVtb3ZlZDogMQorICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBv biBwdWJsaWMuZmR3X3BhcnRfdXBkYXRlX3AyIGZkd19wYXJ0X3VwZGF0ZV8yIChhY3R1YWwgcm93 cz0xLjAwIGxvb3BzPTEpCisgICAgICAgICAgICAgICBPdXRwdXQ6ICgoZmR3X3BhcnRfdXBkYXRl XzIuYiArICgocmFuZG9tKCkpOjppbnRlZ2VyICogMCkpICsgMSksIGZkd19wYXJ0X3VwZGF0ZV8y LnRhYmxlb2lkLCBmZHdfcGFydF91cGRhdGVfMi5jdGlkLCBmZHdfcGFydF91cGRhdGVfMi4qCisg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwgY3RpZCBGUk9NIHB1YmxpYy5m ZHdfcGFydF91cGRhdGVfcmVtb3RlIFdIRVJFICgoYSA9ICQxOjppbnRlZ2VyKSkgRk9SIFVQREFU RQorKDkgcm93cykKKworZGVhbGxvY2F0ZSBmZHdfcGFydF91cGQyOworcmVzZXQgcGxhbl9jYWNo ZV9tb2RlOworZHJvcCB0YWJsZSBmZHdfcGFydF91cGRhdGU7Citkcm9wIHRhYmxlIGZkd19wYXJ0 X3VwZGF0ZV9yZW1vdGU7CiAtLSBUZXN0IHRoYXQgcmVtb3RlIHRyaWdnZXJzIHdvcmsgd2l0aCB1 cGRhdGUgdHVwbGUgcm91dGluZwogY3JlYXRlIHRyaWdnZXIgbG9jdF9icl9pbnNlcnRfdHJpZ2dl ciBiZWZvcmUgaW5zZXJ0IG9uIGxvY3QKIAlmb3IgZWFjaCByb3cgZXhlY3V0ZSBwcm9jZWR1cmUg YnJfaW5zZXJ0X3RyaWdmdW5jKCk7CmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9z cWwvcG9zdGdyZXNfZmR3LnNxbCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19m ZHcuc3FsCmluZGV4IGRmYzU4YmViMGQyLi5kYzEzNTU3M2EyMSAxMDA2NDQKLS0tIGEvY29udHJp Yi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKKysrIGIvY29udHJpYi9wb3N0Z3Jl c19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKQEAgLTI3MjMsNiArMjcyMywzNSBAQCBzZWxlY3Qg dGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gbG9jcDsKIC0tIFRoZSBleGVjdXRvciBzaG91bGQg bm90IGxldCB1bmV4ZXJjaXNlZCBGRFdzIHNodXQgZG93bgogdXBkYXRlIHV0cnRlc3Qgc2V0IGEg PSAxIHdoZXJlIGIgPSAnZm9vJzsKIAorLS0gUnVudGltZSBwcnVuaW5nIG9mIHJlc3VsdCByZWxh dGlvbnMgbXVzdCBrZWVwIE1vZGlmeVRhYmxlJ3MgcGVyLXJlbGF0aW9uCistLSBGRFcgYXJyYXlz IChmZHdQcml2TGlzdHMsIGZkd0RpcmVjdE1vZGlmeVBsYW5zKSBhbGlnbmVkIHdpdGggdGhlIGtl cHQKKy0tIHJlc3VsdFJlbGF0aW9ucy4gIE90aGVyd2lzZSBCZWdpbkZvcmVpZ25Nb2RpZnkoKSBy ZWFkcyB0aGUgd3JvbmcKKy0tIGZkd19wcml2YXRlIGFuZCBzZWdmYXVsdHMuCitjcmVhdGUgdGFi bGUgZmR3X3BhcnRfdXBkYXRlIChhIGludCBub3QgbnVsbCwgYiBpbnQpIHBhcnRpdGlvbiBieSBs aXN0IChhKTsKK2NyZWF0ZSB0YWJsZSBmZHdfcGFydF91cGRhdGVfcDEgcGFydGl0aW9uIG9mIGZk d19wYXJ0X3VwZGF0ZSBmb3IgdmFsdWVzIGluICgxKTsKK2NyZWF0ZSB0YWJsZSBmZHdfcGFydF91 cGRhdGVfcmVtb3RlIChhIGludCBub3QgbnVsbCwgYiBpbnQpOworY3JlYXRlIGZvcmVpZ24gdGFi bGUgZmR3X3BhcnRfdXBkYXRlX3AyIHBhcnRpdGlvbiBvZiBmZHdfcGFydF91cGRhdGUKKyAgICBm b3IgdmFsdWVzIGluICgyKQorICAgIHNlcnZlciBsb29wYmFjayBvcHRpb25zICh0YWJsZV9uYW1l ICdmZHdfcGFydF91cGRhdGVfcmVtb3RlJyk7CitpbnNlcnQgaW50byBmZHdfcGFydF91cGRhdGVf cDEgdmFsdWVzICgxLCAxMCk7CitpbnNlcnQgaW50byBmZHdfcGFydF91cGRhdGVfcmVtb3RlIHZh bHVlcyAoMiwgMjApOworc2V0IHBsYW5fY2FjaGVfbW9kZSA9IGZvcmNlX2dlbmVyaWNfcGxhbjsK K3ByZXBhcmUgZmR3X3BhcnRfdXBkKGludCkgYXMKKyAgICB1cGRhdGUgZmR3X3BhcnRfdXBkYXRl IHNldCBiID0gYiArIDEgd2hlcmUgYSA9ICQxCisgICAgICAgIHJldHVybmluZyB0YWJsZW9pZDo6 cmVnY2xhc3MsIGEsIGI7CitleGVjdXRlIGZkd19wYXJ0X3VwZCgyKTsKK2RlYWxsb2NhdGUgZmR3 X3BhcnRfdXBkOworcHJlcGFyZSBmZHdfcGFydF91cGQyKGludCkgYXMKKyAgICAgIHVwZGF0ZSBm ZHdfcGFydF91cGRhdGUgc2V0IGIgPSBiICsgcmFuZG9tKCk6OmludCAqIDAgKyAxIHdoZXJlIGEg PSAkMQorICAgICAgcmV0dXJuaW5nIHRhYmxlb2lkOjpyZWdjbGFzcywgYSwgYjsKK2V4ZWN1dGUg ZmR3X3BhcnRfdXBkMigyKTsKK2V4cGxhaW4gKGFuYWx5emUsIHZlcmJvc2UsIGNvc3RzIG9mZiwg dGltaW5nIG9mZiwgc3VtbWFyeSBvZmYpCisgICAgZXhlY3V0ZSBmZHdfcGFydF91cGQyKDIpOwor ZGVhbGxvY2F0ZSBmZHdfcGFydF91cGQyOworcmVzZXQgcGxhbl9jYWNoZV9tb2RlOworZHJvcCB0 YWJsZSBmZHdfcGFydF91cGRhdGU7Citkcm9wIHRhYmxlIGZkd19wYXJ0X3VwZGF0ZV9yZW1vdGU7 CisKIC0tIFRlc3QgdGhhdCByZW1vdGUgdHJpZ2dlcnMgd29yayB3aXRoIHVwZGF0ZSB0dXBsZSBy b3V0aW5nCiBjcmVhdGUgdHJpZ2dlciBsb2N0X2JyX2luc2VydF90cmlnZ2VyIGJlZm9yZSBpbnNl cnQgb24gbG9jdAogCWZvciBlYWNoIHJvdyBleGVjdXRlIHByb2NlZHVyZSBicl9pbnNlcnRfdHJp Z2Z1bmMoKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCAxMTJjMTdiMGQ2NC4uM2U0M2M5Nzg5 NmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTQ4MjEsNyArNDgyMSw3IEBAIHNob3dfbW9k aWZ5dGFibGVfaW5mbyhNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLCBMaXN0ICphbmNlc3RvcnMs CiAJCQlmZHdyb3V0aW5lICE9IE5VTEwgJiYKIAkJCWZkd3JvdXRpbmUtPkV4cGxhaW5Gb3JlaWdu TW9kaWZ5ICE9IE5VTEwpCiAJCXsKLQkJCUxpc3QJICAgKmZkd19wcml2YXRlID0gKExpc3QgKikg bGlzdF9udGgobm9kZS0+ZmR3UHJpdkxpc3RzLCBqKTsKKwkJCUxpc3QJICAgKmZkd19wcml2YXRl ID0gKExpc3QgKikgbGlzdF9udGgobXRzdGF0ZS0+ZmR3UHJpdkxpc3RzLCBqKTsKIAogCQkJZmR3 cm91dGluZS0+RXhwbGFpbkZvcmVpZ25Nb2RpZnkobXRzdGF0ZSwKIAkJCQkJCQkJCQkJIHJlc3Vs dFJlbEluZm8sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFi bGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCmluZGV4IDMzYTY3 MzVmMDhkLi5hNjMxYzM0NWM1ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZU1vZGlmeVRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxl LmMKQEAgLTUxMDUsNiArNTEwNSwxMyBAQCBFeGVjSW5pdE1vZGlmeVRhYmxlKE1vZGlmeVRhYmxl ICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAlMaXN0CSAgICpyZXN1bHRSZWxh dGlvbnMgPSBOSUw7CiAJTGlzdAkgICAqd2l0aENoZWNrT3B0aW9uTGlzdHMgPSBOSUw7CiAJTGlz dAkgICAqcmV0dXJuaW5nTGlzdHMgPSBOSUw7CisKKwkvKgorCSAqIGZkd1ByaXZMaXN0cy9mZHdE aXJlY3RNb2RpZnlQbGFucyBhcmUgcmUtaW5kZXhlZCB0byBtYXRjaAorCSAqIHJlc3VsdFJlbGF0 aW9ucworCSAqLworCUxpc3QJICAgKmZkd1ByaXZMaXN0cyA9IE5JTDsKKwlCaXRtYXBzZXQgICpm ZHdEaXJlY3RNb2RpZnlQbGFucyA9IE5VTEw7CiAJTGlzdAkgICAqdXBkYXRlQ29sbm9zTGlzdHMg PSBOSUw7CiAJTGlzdAkgICAqbWVyZ2VBY3Rpb25MaXN0cyA9IE5JTDsKIAlMaXN0CSAgICptZXJn ZUpvaW5Db25kaXRpb25zID0gTklMOwpAQCAtNTE1MCw2ICs1MTU3LDggQEAgRXhlY0luaXRNb2Rp ZnlUYWJsZShNb2RpZnlUYWJsZSAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAK IAkJaWYgKGtlZXBfcmVsKQogCQl7CisJCQlpbnQJCQluZXdfaW5kZXggPSBsaXN0X2xlbmd0aChy ZXN1bHRSZWxhdGlvbnMpOworCiAJCQlyZXN1bHRSZWxhdGlvbnMgPSBsYXBwZW5kX2ludChyZXN1 bHRSZWxhdGlvbnMsIHJ0aSk7CiAJCQlpZiAobm9kZS0+d2l0aENoZWNrT3B0aW9uTGlzdHMpCiAJ CQl7CkBAIC01MTY3LDYgKzUxNzYsMTUgQEAgRXhlY0luaXRNb2RpZnlUYWJsZShNb2RpZnlUYWJs ZSAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAKIAkJCQlyZXR1cm5pbmdMaXN0 cyA9IGxhcHBlbmQocmV0dXJuaW5nTGlzdHMsIHJldHVybmluZ0xpc3QpOwogCQkJfQorCQkJaWYg KG5vZGUtPmZkd1ByaXZMaXN0cykKKwkJCXsKKwkJCQlMaXN0CSAgICpmZHdQcml2TGlzdCA9IChM aXN0ICopIGxpc3RfbnRoKG5vZGUtPmZkd1ByaXZMaXN0cywgaSk7CisKKwkJCQlmZHdQcml2TGlz dHMgPSBsYXBwZW5kKGZkd1ByaXZMaXN0cywgZmR3UHJpdkxpc3QpOworCQkJfQorCQkJaWYgKGJt c19pc19tZW1iZXIoaSwgbm9kZS0+ZmR3RGlyZWN0TW9kaWZ5UGxhbnMpKQorCQkJCWZkd0RpcmVj dE1vZGlmeVBsYW5zID0gYm1zX2FkZF9tZW1iZXIoZmR3RGlyZWN0TW9kaWZ5UGxhbnMsCisJCQkJ CQkJCQkJCQkJICBuZXdfaW5kZXgpOwogCQkJaWYgKG5vZGUtPnVwZGF0ZUNvbG5vc0xpc3RzKQog CQkJewogCQkJCUxpc3QJICAgKnVwZGF0ZUNvbG5vc0xpc3QgPSBsaXN0X250aChub2RlLT51cGRh dGVDb2xub3NMaXN0cywgaSk7CkBAIC01MjEzLDYgKzUyMzEsNyBAQCBFeGVjSW5pdE1vZGlmeVRh YmxlKE1vZGlmeVRhYmxlICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAltdHN0 YXRlLT5tdF91cGRhdGVDb2xub3NMaXN0cyA9IHVwZGF0ZUNvbG5vc0xpc3RzOwogCW10c3RhdGUt Pm10X21lcmdlQWN0aW9uTGlzdHMgPSBtZXJnZUFjdGlvbkxpc3RzOwogCW10c3RhdGUtPm10X21l cmdlSm9pbkNvbmRpdGlvbnMgPSBtZXJnZUpvaW5Db25kaXRpb25zOworCW10c3RhdGUtPmZkd1By aXZMaXN0cyA9IGZkd1ByaXZMaXN0czsKIAogCS8qLS0tLS0tLS0tLQogCSAqIFJlc29sdmUgdGhl IHRhcmdldCByZWxhdGlvbi4gVGhpcyBpcyB0aGUgc2FtZSBhczoKQEAgLTUyODgsNyArNTMwNyw3 IEBAIEV4ZWNJbml0TW9kaWZ5VGFibGUoTW9kaWZ5VGFibGUgKm5vZGUsIEVTdGF0ZSAqZXN0YXRl LCBpbnQgZWZsYWdzKQogCiAJCS8qIEluaXRpYWxpemUgdGhlIHVzZXNGZHdEaXJlY3RNb2RpZnkg ZmxhZyAqLwogCQlyZXN1bHRSZWxJbmZvLT5yaV91c2VzRmR3RGlyZWN0TW9kaWZ5ID0KLQkJCWJt c19pc19tZW1iZXIoaSwgbm9kZS0+ZmR3RGlyZWN0TW9kaWZ5UGxhbnMpOworCQkJYm1zX2lzX21l bWJlcihpLCBmZHdEaXJlY3RNb2RpZnlQbGFucyk7CiAKIAkJLyoKIAkJICogVmVyaWZ5IHJlc3Vs dCByZWxhdGlvbiBpcyBhIHZhbGlkIHRhcmdldCBmb3IgdGhlIGN1cnJlbnQgb3BlcmF0aW9uCkBA IC01MzE3LDcgKzUzMzYsNyBAQCBFeGVjSW5pdE1vZGlmeVRhYmxlKE1vZGlmeVRhYmxlICpub2Rl LCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAkJCXJlc3VsdFJlbEluZm8tPnJpX0Zkd1Jv dXRpbmUgIT0gTlVMTCAmJgogCQkJcmVzdWx0UmVsSW5mby0+cmlfRmR3Um91dGluZS0+QmVnaW5G b3JlaWduTW9kaWZ5ICE9IE5VTEwpCiAJCXsKLQkJCUxpc3QJICAgKmZkd19wcml2YXRlID0gKExp c3QgKikgbGlzdF9udGgobm9kZS0+ZmR3UHJpdkxpc3RzLCBpKTsKKwkJCUxpc3QJICAgKmZkd19w cml2YXRlID0gKExpc3QgKikgbGlzdF9udGgoZmR3UHJpdkxpc3RzLCBpKTsKIAogCQkJcmVzdWx0 UmVsSW5mby0+cmlfRmR3Um91dGluZS0+QmVnaW5Gb3JlaWduTW9kaWZ5KG10c3RhdGUsCiAJCQkJ CQkJCQkJCQkJCQkgcmVzdWx0UmVsSW5mbywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggNTNjMTM4 MzEwZGIuLmY2NGMyY2M1ZjM0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtMTQ0Niw2ICsxNDQ2 LDEyIEBAIHR5cGVkZWYgc3RydWN0IE1vZGlmeVRhYmxlU3RhdGUKIAlpbnQJCQltdF9ucmVsczsJ CS8qIG51bWJlciBvZiBlbnRyaWVzIGluIHJlc3VsdFJlbEluZm9bXSAqLwogCVJlc3VsdFJlbElu Zm8gKnJlc3VsdFJlbEluZm87CS8qIGluZm8gYWJvdXQgdGFyZ2V0IHJlbGF0aW9uKHMpICovCiAK KwkvKgorCSAqIFJlLWluZGV4ZWQgZmR3IHByaXZhdGUgZGF0YSBsaXN0cywgYWxpZ25lZCB3aXRo IHJlc3VsdFJlbEluZm9bXSBhZnRlcgorCSAqIHBydW5pbmcKKwkgKi8KKwlMaXN0CSAgICpmZHdQ cml2TGlzdHM7CisKIAkvKgogCSAqIFRhcmdldCByZWxhdGlvbiBtZW50aW9uZWQgaW4gdGhlIG9y aWdpbmFsIHN0YXRlbWVudCwgdXNlZCB0byBmaXJlCiAJICogc3RhdGVtZW50LWxldmVsIHRyaWdn ZXJzIGFuZCBhcyB0aGUgcm9vdCBmb3IgdHVwbGUgcm91dGluZy4gIChUaGlzCi0tIAoyLjUwLjEg KEFwcGxlIEdpdC0xNTUpCgo= --0f80be63bc703bbf937c548b6585d0f2abed82c280aab2fc8a60cc1d544b--