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 1wFecP-005P6x-0f for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Apr 2026 20:56:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wFecO-00FL2h-1D for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Apr 2026 20:56:20 +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 1wFecN-00FL2Z-36 for pgsql-hackers@lists.postgresql.org; Wed, 22 Apr 2026 20:56:20 +0000 Received: from meesny.iki.fi ([195.140.195.201]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wFecL-00000002JEX-0waE for pgsql-hackers@postgresql.org; Wed, 22 Apr 2026 20:56:19 +0000 Received: from [10.0.2.15] (unknown [137.83.235.84]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: hlinnaka) by meesny.iki.fi (Postfix) with ESMTPSA id 4g1BMy1StVzyQm for ; Wed, 22 Apr 2026 23:56:14 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=meesny; t=1776891374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=SSLAA9rMY+Pd41vFuBxaLTgFahXqmbVk0Uiirk1Frbw=; b=Hy6S0Gs3IMhJNb4IAFwRdp1tIfBZcGG9d3/EwMkf7ziuDvy1NBpp7ZdEGlVm/FhRCbhv9i ykPqoun3F7TJv/wnV5xKzJpYOwHs8nOqC/bDoLLWradVNbVc4KDYJV5V3FrIuZ3VSSikn7 vr71sAxf+K7ML0sqNQQXnl9Tx4f3Bvg= ARC-Seal: i=1; a=rsa-sha256; d=iki.fi; s=meesny; cv=none; t=1776891374; b=kOlMVrhPRUk71ilSURfc8hbrfVuaWVkbjHYy0s8HOYQwWV4F5g4TSJyJvYd7AMA3+Sagpc 6yMJo7JLwZD2lqUgj70EV6MoD0tRu92xAB1Qb2afmLUJSMExqvGSKlMzVW9xbc8wy28mbM vn84+vAXFwf40NqlbCJUdFAnjTIVvQQ= ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=meesny; t=1776891374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=SSLAA9rMY+Pd41vFuBxaLTgFahXqmbVk0Uiirk1Frbw=; b=q78gjYiOoIWY6RUuOMj52TmnDrHNTS4E/WR33bRN1JeEAVqtUZmVchYwUf9EvZoq/CpJgM YKfHMZLOcUdYKE2OeTB9eGtwx9YD8mFVkP86PCp56kHVgD0L5akcVdKv5zoklp6m2Pe7FY vwuS5N0zOtdp1/JgiYA3HoFVZviF8Y4= Content-Type: multipart/mixed; boundary="------------QugiFWLkzWKiSNJbIEA6uBgv" Message-ID: <93ce56cd-02a6-4db1-8224-c8999372facc@iki.fi> Date: Wed, 22 Apr 2026 23:56:12 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: "pgsql-hackers@postgresql.org" From: Heikki Linnakangas Subject: CheckAttributeType() forgot to recurse into multiranges 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. --------------QugiFWLkzWKiSNJbIEA6uBgv Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Happened to spot this little bug: create type two_ints as (a int, b int); create type two_ints_range as range (subtype = two_ints); -- CheckAttributeType() forbids this: alter type two_ints add attribute c two_ints_range; ERROR: composite type two_ints cannot be made a member of itself -- But the same with a multirange is allowed: alter type two_ints add attribute c two_ints_multirange; ALTER TYPE That looks like a straightforward oversight in CheckAttributeType(). When multiranges were introduced, it didn't get the memo. Fix attached. Assuming no objections, I'll commit and backpatch that. While working on the fix, I noticed that in case of dropped columns, CheckAttributeType() is called with InvalidOid. It tolerates that, but it seems accidental and it performs a bunch of futile syscache lookups with InvalidOid, so it would be better to not do that. The second patch fixes that. - Heikki --------------QugiFWLkzWKiSNJbIEA6uBgv Content-Type: text/x-patch; charset=UTF-8; name="0001-Don-t-allow-composite-type-to-be-member-of-itself-vi.patch" Content-Disposition: attachment; filename*0="0001-Don-t-allow-composite-type-to-be-member-of-itself-vi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1MGVlY2RkNjQ3NzI3OTc4NTYxNmJiNDk0NWIzMWIyNDMyNjU5MDRlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFdlZCwgMjIgQXByIDIwMjYgMjI6MTA6MDYgKzAzMDAK U3ViamVjdDogW1BBVENIIDEvMl0gRG9uJ3QgYWxsb3cgY29tcG9zaXRlIHR5cGUgdG8gYmUg bWVtYmVyIG9mIGl0c2VsZiB2aWEKIG11bHRpcmFuZ2UKCkNoZWNrQXR0cmlidXRlVHlwZSgp IGNoZWNrcyB0aGF0IGEgY29tcG9zaXRlIHR5cGUgaXMgbm90IG1hZGUgYSBtZW1iZXIKb2Yg aXRzZWxmIHdpdGggQUxURVIgVEFCTEUgQUREIENPTFVNTiBvciBBTFRFUiBUWVBFIEFERCBB VFRSSUJVVEUsCmV2ZW4gaW5kaXJlY3RseSB2aWEgYSBkb21haW4sIGFycmF5LCBhbm90aGVy IGNvbXBvc2l0ZSB0eXBlIG9yIGEgcmFuZ2UKdHlwZS4gQnV0IGl0IG1pc3NlZCBjaGVja2lu ZyBmb3IgbXVsdGlyYW5nZXMuIFRoYXQgd2FzIGEgc2ltcGxlCm92ZXJzaWdodCB3aGVuIG11 bHRpcmFuZ2VzIHdlcmUgYWRkZWQuCgpEaXNjdXNzaW9uOiB4eHgKQmFja3BhdGNoLXRocm91 Z2g6IDE0Ci0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAgICAg fCAxMCArKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxl Lm91dCB8ICA5ICsrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yYW5nZXR5 cGVzLm91dCAgfCAgNCArKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9hbHRlcl90YWJsZS5z cWwgICAgICB8ICAzICsrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcmFuZ2V0eXBlcy5zcWwg ICAgICAgfCAgMyArKy0KIDUgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IGFlNmI3Y2RhM2RkLi40YTcxZjZh MzNiNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKQEAgLTY1NCw2ICs2NTQsMTYgQEAgQ2hlY2tBdHRy aWJ1dGVUeXBlKGNvbnN0IGNoYXIgKmF0dG5hbWUsCiAJCQkJCQkgICBjb250YWluaW5nX3Jv d3R5cGVzLAogCQkJCQkJICAgZmxhZ3MpOwogCX0KKwllbHNlIGlmIChhdHRfdHlwdHlwZSA9 PSBUWVBUWVBFX01VTFRJUkFOR0UpCisJeworCQkvKgorCQkgKiBJZiBpdCdzIGEgbXVsdGly YW5nZSwgcmVjdXJzZSB0byBjaGVjayBpdHMgcGxhaW4gcmFuZ2UgdHlwZS4KKwkJICovCisJ CUNoZWNrQXR0cmlidXRlVHlwZShhdHRuYW1lLCBnZXRfbXVsdGlyYW5nZV9yYW5nZShhdHR0 eXBpZCksCisJCQkJCQkgICBnZXRfcmFuZ2VfY29sbGF0aW9uKGF0dHR5cGlkKSwKKwkJCQkJ CSAgIGNvbnRhaW5pbmdfcm93dHlwZXMsCisJCQkJCQkgICBmbGFncyk7CisJfQogCWVsc2Ug aWYgKE9pZElzVmFsaWQoKGF0dF90eXBlbGVtID0gZ2V0X2VsZW1lbnRfdHlwZShhdHR0eXBp ZCkpKSkKIAl7CiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2FsdGVyX3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFi bGUub3V0CmluZGV4IGRhZDlkMzY5MzdlLi5mYzI3ZTIyMDIzYiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQKQEAgLTIzMzUsNiArMjMzNSwxNSBA QCBFUlJPUjogIGNvbXBvc2l0ZSB0eXBlIHJlY3VyMSBjYW5ub3QgYmUgbWFkZSBhIG1lbWJl ciBvZiBpdHNlbGYKIGNyZWF0ZSBkb21haW4gYXJyYXlfb2ZfcmVjdXIxIGFzIHJlY3VyMVtd OwogYWx0ZXIgdGFibGUgcmVjdXIxIGFkZCBjb2x1bW4gZjIgYXJyYXlfb2ZfcmVjdXIxOyAt LSBmYWlscwogRVJST1I6ICBjb21wb3NpdGUgdHlwZSByZWN1cjEgY2Fubm90IGJlIG1hZGUg YSBtZW1iZXIgb2YgaXRzZWxmCitjcmVhdGUgdHlwZSByYW5nZV9vZl9yZWN1cjEgYXMgcmFu Z2UgKHN1YnR5cGU9cmVjdXIxLCBtdWx0aXJhbmdlX3R5cGVfbmFtZT0nbXVsdGlyYW5nZV9v Zl9yZWN1cjEnKTsKK05PVElDRTogIGZ1bmN0aW9uICJyYW5nZV9vZl9yZWN1cjEiIHdpbGwg YmUgZWZmZWN0aXZlbHkgdGVtcG9yYXJ5CitERVRBSUw6ICBJdCBkZXBlbmRzIG9uIHRlbXBv cmFyeSB0eXBlIHJlY3VyMS4KK05PVElDRTogIGZ1bmN0aW9uICJyYW5nZV9vZl9yZWN1cjEi IHdpbGwgYmUgZWZmZWN0aXZlbHkgdGVtcG9yYXJ5CitERVRBSUw6ICBJdCBkZXBlbmRzIG9u IHRlbXBvcmFyeSB0eXBlIHJlY3VyMS4KK2FsdGVyIHRhYmxlIHJlY3VyMSBhZGQgY29sdW1u IGYyIHJhbmdlX29mX3JlY3VyMTsgLS0gZmFpbHMKK0VSUk9SOiAgY29tcG9zaXRlIHR5cGUg cmVjdXIxIGNhbm5vdCBiZSBtYWRlIGEgbWVtYmVyIG9mIGl0c2VsZgorYWx0ZXIgdGFibGUg cmVjdXIxIGFkZCBjb2x1bW4gZjIgbXVsdGlyYW5nZV9vZl9yZWN1cjE7IC0tIGZhaWxzCitF UlJPUjogIGNvbXBvc2l0ZSB0eXBlIHJlY3VyMSBjYW5ub3QgYmUgbWFkZSBhIG1lbWJlciBv ZiBpdHNlbGYKIGNyZWF0ZSB0ZW1wIHRhYmxlIHJlY3VyMiAoZjEgaW50LCBmMiByZWN1cjEp OwogYWx0ZXIgdGFibGUgcmVjdXIxIGFkZCBjb2x1bW4gZjIgcmVjdXIyOyAtLSBmYWlscwog RVJST1I6ICBjb21wb3NpdGUgdHlwZSByZWN1cjEgY2Fubm90IGJlIG1hZGUgYSBtZW1iZXIg b2YgaXRzZWxmCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jhbmdl dHlwZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yYW5nZXR5cGVzLm91dApp bmRleCBlMDYyYTRlNWMyYy4uYjJhNzUzZmQxNzkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9yYW5nZXR5cGVzLm91dApAQCAtMTgxMCw5ICsxODEwLDExIEBAIHNlbGVjdCAq LCByb3dfdG9fanNvbih1cHBlcih0KSkgYXMgdSBmcm9tCiAgWyIoNSw2KSIsIig3LDgpIikg fCB7ImEiOjcsImIiOjh9CiAoMiByb3dzKQogCi0tLSB0aGlzIG11c3QgYmUgcmVqZWN0ZWQg dG8gYXZvaWQgc2VsZi1pbmNsdXNpb24gaXNzdWVzOgorLS0gdGhlc2UgbXVzdCBiZSByZWpl Y3RlZCB0byBhdm9pZCBzZWxmLWluY2x1c2lvbiBpc3N1ZXM6CiBhbHRlciB0eXBlIHR3b19p bnRzIGFkZCBhdHRyaWJ1dGUgYyB0d29faW50c19yYW5nZTsKIEVSUk9SOiAgY29tcG9zaXRl IHR5cGUgdHdvX2ludHMgY2Fubm90IGJlIG1hZGUgYSBtZW1iZXIgb2YgaXRzZWxmCithbHRl ciB0eXBlIHR3b19pbnRzIGFkZCBhdHRyaWJ1dGUgYyB0d29faW50c19tdWx0aXJhbmdlOwor RVJST1I6ICBjb21wb3NpdGUgdHlwZSB0d29faW50cyBjYW5ub3QgYmUgbWFkZSBhIG1lbWJl ciBvZiBpdHNlbGYKIGRyb3AgdHlwZSB0d29faW50cyBjYXNjYWRlOwogTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byB0eXBlIHR3b19pbnRzX3JhbmdlCiAtLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvYWx0ZXJfdGFibGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvYWx0ZXJfdGFibGUuc3FsCmluZGV4IGY1ZjEzYmJkM2U3Li42YWFhMzNiNmUzNCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWx0ZXJfdGFibGUuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2FsdGVyX3RhYmxlLnNxbApAQCAtMTUzNSw2ICsxNTM1LDkg QEAgYWx0ZXIgdGFibGUgcmVjdXIxIGFkZCBjb2x1bW4gZjIgcmVjdXIxOyAtLSBmYWlscwog YWx0ZXIgdGFibGUgcmVjdXIxIGFkZCBjb2x1bW4gZjIgcmVjdXIxW107IC0tIGZhaWxzCiBj cmVhdGUgZG9tYWluIGFycmF5X29mX3JlY3VyMSBhcyByZWN1cjFbXTsKIGFsdGVyIHRhYmxl IHJlY3VyMSBhZGQgY29sdW1uIGYyIGFycmF5X29mX3JlY3VyMTsgLS0gZmFpbHMKK2NyZWF0 ZSB0eXBlIHJhbmdlX29mX3JlY3VyMSBhcyByYW5nZSAoc3VidHlwZT1yZWN1cjEsIG11bHRp cmFuZ2VfdHlwZV9uYW1lPSdtdWx0aXJhbmdlX29mX3JlY3VyMScpOworYWx0ZXIgdGFibGUg cmVjdXIxIGFkZCBjb2x1bW4gZjIgcmFuZ2Vfb2ZfcmVjdXIxOyAtLSBmYWlscworYWx0ZXIg dGFibGUgcmVjdXIxIGFkZCBjb2x1bW4gZjIgbXVsdGlyYW5nZV9vZl9yZWN1cjE7IC0tIGZh aWxzCiBjcmVhdGUgdGVtcCB0YWJsZSByZWN1cjIgKGYxIGludCwgZjIgcmVjdXIxKTsKIGFs dGVyIHRhYmxlIHJlY3VyMSBhZGQgY29sdW1uIGYyIHJlY3VyMjsgLS0gZmFpbHMKIGFsdGVy IHRhYmxlIHJlY3VyMSBhZGQgY29sdW1uIGYyIGludDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcmFu Z2V0eXBlcy5zcWwKaW5kZXggNWM0YjAzMzdiN2EuLmYwMzU0NzM2ZmU1IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbApAQCAtNTc2LDggKzU3Niw5IEBAIHNlbGVjdCAq LCByb3dfdG9fanNvbih1cHBlcih0KSkgYXMgdSBmcm9tCiAgICh2YWx1ZXMgKHR3b19pbnRz X3JhbmdlKHJvdygxLDIpLCByb3coMyw0KSkpLAogICAgICAgICAgICh0d29faW50c19yYW5n ZShyb3coNSw2KSwgcm93KDcsOCkpKSkgdih0KTsKIAotLS0gdGhpcyBtdXN0IGJlIHJlamVj dGVkIHRvIGF2b2lkIHNlbGYtaW5jbHVzaW9uIGlzc3VlczoKKy0tIHRoZXNlIG11c3QgYmUg cmVqZWN0ZWQgdG8gYXZvaWQgc2VsZi1pbmNsdXNpb24gaXNzdWVzOgogYWx0ZXIgdHlwZSB0 d29faW50cyBhZGQgYXR0cmlidXRlIGMgdHdvX2ludHNfcmFuZ2U7CithbHRlciB0eXBlIHR3 b19pbnRzIGFkZCBhdHRyaWJ1dGUgYyB0d29faW50c19tdWx0aXJhbmdlOwogCiBkcm9wIHR5 cGUgdHdvX2ludHMgY2FzY2FkZTsKIAotLSAKMi40Ny4zCgo= --------------QugiFWLkzWKiSNJbIEA6uBgv Content-Type: text/x-patch; charset=UTF-8; name="0002-Don-t-call-CheckAttributeType-with-InvalidOid-on-dro.patch" Content-Disposition: attachment; filename*0="0002-Don-t-call-CheckAttributeType-with-InvalidOid-on-dro.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxN2RjNWEzODg3OTY1ZTBiMDA3MDRkMTVkNDMyNTQ3NGRiNDdhZDhkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFdlZCwgMjIgQXByIDIwMjYgMjM6NTM6MjQgKzAzMDAK U3ViamVjdDogW1BBVENIIDIvMl0gRG9uJ3QgY2FsbCBDaGVja0F0dHJpYnV0ZVR5cGUoKSB3 aXRoIEludmFsaWRPaWQgb24KIGRyb3BwZWQgY29scwoKSWYgQ2hlY2tBdHRyaWJ1dGVUeXBl KCkgaXMgY2FsbGVkIHdpdGggSW52YWxpZE9pZCwgaXQgcGVyZm9ybXMgYSBidW5jaApvZiBw b2ludGxlc3MsIGZ1dGlsZSBzeXNjYWNoZSBsb29rdXBzIHdpdGggSW52YWxpZE9pZCwgYnV0 IHVsdGltYXRlbHkKdG9sZXJhdGVzIGl0IGFuZCBoYXMgbm8gZWZmZWN0LiBXZSB3ZXJlIGNh bGxpbmcgaXQgd2l0aCBJbnZhbGlkT2lkIG9uCmRyb3BwZWQgY29sdW1ucywgYnV0IGl0IHNl ZW1zIGFjY2lkZW50YWwgdGhhdCBpdCB3b3Jrcywgc28gbGV0J3Mgc3RvcApkb2luZyBpdC4K CkRpc2N1c3Npb246IHh4eApCYWNrcGF0Y2gtdGhyb3VnaDogMTQKLS0tCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL2hlYXAuYyB8IDEyICsrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDgg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDRh NzFmNmEzM2I0Li5iM2JjNDU0YmQ0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKQEAgLTUwNCwxMSAr NTA0LDE1IEBAIENoZWNrQXR0cmlidXRlTmFtZXNUeXBlcyhUdXBsZURlc2MgdHVwZGVzYywg Y2hhciByZWxraW5kLAogCSAqLwogCWZvciAoaSA9IDA7IGkgPCBuYXR0czsgaSsrKQogCXsK LQkJQ2hlY2tBdHRyaWJ1dGVUeXBlKE5hbWVTdHIoVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBp KS0+YXR0bmFtZSksCi0JCQkJCQkgICBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpLT5hdHR0 eXBpZCwKLQkJCQkJCSAgIFR1cGxlRGVzY0F0dHIodHVwZGVzYywgaSktPmF0dGNvbGxhdGlv biwKKwkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ciA9IFR1cGxlRGVzY0F0dHIodHVwZGVzYywg aSk7CisKKwkJaWYgKGF0dHItPmF0dGlzZHJvcHBlZCkKKwkJCWNvbnRpbnVlOworCQlDaGVj a0F0dHJpYnV0ZVR5cGUoTmFtZVN0cihhdHRyLT5hdHRuYW1lKSwKKwkJCQkJCSAgIGF0dHIt PmF0dHR5cGlkLAorCQkJCQkJICAgYXR0ci0+YXR0Y29sbGF0aW9uLAogCQkJCQkJICAgTklM LCAvKiBhc3N1bWUgd2UncmUgY3JlYXRpbmcgYSBuZXcgcm93dHlwZSAqLwotCQkJCQkJICAg ZmxhZ3MgfCAoVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKS0+YXR0Z2VuZXJhdGVkID09IEFU VFJJQlVURV9HRU5FUkFURURfVklSVFVBTCA/IENIS0FUWVBFX0lTX1ZJUlRVQUwgOiAwKSk7 CisJCQkJCQkgICBmbGFncyB8IChhdHRyLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dF TkVSQVRFRF9WSVJUVUFMID8gQ0hLQVRZUEVfSVNfVklSVFVBTCA6IDApKTsKIAl9CiB9CiAK LS0gCjIuNDcuMwoK --------------QugiFWLkzWKiSNJbIEA6uBgv--