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 1wGa3B-006My7-2G for pgsql-bugs@arkaria.postgresql.org; Sat, 25 Apr 2026 10:15:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wGa3A-008j3D-02 for pgsql-bugs@arkaria.postgresql.org; Sat, 25 Apr 2026 10:15:48 +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 1wGa39-008j34-2L for pgsql-bugs@lists.postgresql.org; Sat, 25 Apr 2026 10:15:47 +0000 Received: from mail-yw1-x112a.google.com ([2607:f8b0:4864:20::112a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wGa37-00000002y6B-2UFE for pgsql-bugs@lists.postgresql.org; Sat, 25 Apr 2026 10:15:47 +0000 Received: by mail-yw1-x112a.google.com with SMTP id 00721157ae682-7b186dfc1d0so124791027b3.1 for ; Sat, 25 Apr 2026 03:15:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777112143; cv=none; d=google.com; s=arc-20240605; b=AQqS2/YuqJ0qMTh8Rcpv7jbnJo499NglbDwUKInmj12D3lNV24EMmO5G7PU05lHR7u 0ivNtvs/pm5eH7TYZs7c+XWFJ05YVgXGIvJt7NdziXeETmGosQlQtQ7ZFr7IvJtDHopG hxLqRXBgzdee5J0doS4s8OddB98C5WlLWxb8CnNZvZtHMZWa/8CaYBvk6ojGsafGUMHU 3SSBhTnf04P/92t79Xm5rGxGQ1sgjrGvS1uSP0VGUKkoNucQHbvrXAKto8yhbtcWM8u3 Wfom1pGXehPg5526HxfqUrC0FrRCF22T17NEA6v9Zs+tdvyCbnksU9gZ3cm5x+StxHm7 RomA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=dZLvuDm7QSx0lGz1u9xd+JFujitfnxhRzlVWOuOe1Fc=; fh=Ef/FYe23WqG3KzM3s7xkTpY03QuiA5Mx2aIvTb+qsrA=; b=fTL6q8j3wgC5nxWWPvQNkMnQfkk+Uy2AZuC73At4rdzQZLTrGACxswOLnFDvIaQ0Ro q1dUz1e4UqEQtlxFRd/C45yCjFDvxcuXQZaDShFm5SwDC1oUoIRN+BNy2BQl7Pq6GNCd tx0SChn+d5piXyoz7j+CZMpTJE1F+v6CTJK9ujldcBSN7UUQLDVcJej8mCxV4O9fMeIr RmMgFs3LkiWTn4onMjlU2aniR3a+Hba5snDZ9qaj+PdWgD3aMkbp3HEXDBPrm051yBkr 41edS+m12m/Dugj404/pzIRTjMCf2aWXEPs47KwpETpi/BdoPdfSlFHTprFCuZe0JAbK z8mg==; 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=1777112143; x=1777716943; darn=lists.postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=dZLvuDm7QSx0lGz1u9xd+JFujitfnxhRzlVWOuOe1Fc=; b=TPPURMZCW3SkOHf//2bFwCO5NTWFNDASmwAj6Y9eR8pnKF6nh8gkaXTK21QjssfDik dPIfGz5004+mngk9u2pgrgL/wTPLWJs976+XJQDXVEN4y2uXRH3z58sqVJ+kQB9rfYll YcV3HZBdkjW9FeRZnsh4K1nmzGXxBdcEorXuDzBnbPWnE5jvRTN4PaB40isJL6fEMKA5 TbMVB2bV/qDjMxrXfgFt5mc6B3Y7A+OBh+Xwh3qtQdsLBTUvSH1U1Xj7j+zSsqn9Z3SM Wr6zG27+hNDhRzB61loGxVSYXrKsSfszYLXEG62ufhXJTbQzpGvCZPipHobcH0Utohx4 pjaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777112143; x=1777716943; h=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=dZLvuDm7QSx0lGz1u9xd+JFujitfnxhRzlVWOuOe1Fc=; b=GhnXSTHMRkfJn9QLXLbqRsvWX0AIJPdNDwoi2LpG3QtZ7j0nWdZhFmw0s9cK/dzHfU 8wPruUPQO8Fm8aBtuSlyiXP4eVWF2QlCkGJFBlptFyoxaubCWBdG66M2uWetxneTQ6Pp BNe3R99NWdJmqnGyyxzLTMewEoa1eXZlv4cpDUucj3jBOrYJLT5iDOSclZOxHUfv5Rhx pVtlaiGPXlmV1xsQYlmt2lWXXW6c/bZZH9clqlf3R8KlzUbLWBCk2L4VqEy+p0NU1EeC C/aUqBgorUwq2LP743CEFXSDhTge0bI73ZL8WH0EzciZ5IdvigW4Kd/AS2FSzYD4N5OP z7LA== X-Forwarded-Encrypted: i=1; AFNElJ99kXqYCEKlnLP/sSbybPg6f/w169Gh9xKKLFWrlDxaTspI0t0TZC4Ok9cmSME2kmJn5EZpVb5PLwhw@lists.postgresql.org X-Gm-Message-State: AOJu0YzQvK7bhIdsDJvIpML3AzUS+sH0DXoiYPdmxvMLDq6O0Av9GU0X ySgUTwQihPf0SUH0vpcNI+kUnQNzJVlJsNsxZdj8NRDAgv2LL1XrAGZt/d1HhIfLUTPnXlpi0Sq 7btCKq7THGgm1UrDZfjk7fcbq86bTI6Y= X-Gm-Gg: AeBDievge2meGldHaczEyCdCxf3X2yS2i6NdYUOy8xgjIq6NTy7KR6l2m2CzJgZrawp LUdF7lqYYyKzfiORHs8z7vQpH10YdDVxd8U/hIXBQlIutmgvkZ8/7bc3+XhzqEQlPfMwCZRMkkg WgJ4zQtU8Ef2ftHQcUxPOh4Hwk70sNX9SZVOXUBmzslNUHSTMJq4TIEIs2w0ohB3YujTBi5tiNg n9QMrahiO4ZPu/HA4jXLnS29OIU3Z07A8mtkKnJbQKxUO0h7iBOufwrMC3K6xGZWs1fQCSoLQ3Z z4l9eWAl/Wn0kqr/SRH+B4bHBInKG/ZPYiSNcmeUch46bStHZQ== X-Received: by 2002:a05:690c:14:b0:79b:e346:9813 with SMTP id 00721157ae682-7b9ed2ce09cmr297556327b3.10.1777112143098; Sat, 25 Apr 2026 03:15:43 -0700 (PDT) MIME-Version: 1.0 References: <19466-dc32827173299fd4@postgresql.org> In-Reply-To: <19466-dc32827173299fd4@postgresql.org> From: Ayush Tiwari Date: Sat, 25 Apr 2026 15:45:31 +0530 X-Gm-Features: AQROBzCfQ_wQ0_ctgUVFBdy2q9INuedbNXLFHVsPMBacrLeAR-Vi_SUWKDcp_wE Message-ID: Subject: Re: BUG #19466: Server crash (SIGSEGV) when FETCH after ALTER TYPE during open cursor To: haogangmao@gmail.com, pgsql-bugs@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000042c170650462aac" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000042c170650462aac Content-Type: multipart/alternative; boundary="000000000000042c160650462aaa" --000000000000042c160650462aaa Content-Type: text/plain; charset="UTF-8" Hi, On Sat, 25 Apr 2026 at 14:34, PG Bug reporting form wrote: > The following bug has been logged on the website: > > Bug reference: 19466 > Logged by: HaoGang Mao > Email address: haogangmao@gmail.com > PostgreSQL version: 18.3 > Operating system: Linux > Description: > > PostgreSQL version: 18.3 > OS: Linux (Docker) > > Summary: > PostgreSQL crashes with SIGSEGV when a cursor is open over a composite > type and the type is modified via ALTER TYPE during the same transaction, > followed by a second FETCH. > > Reproduction steps (minimal): > CREATE TYPE foo AS (a INT, b INT); > BEGIN; > DECLARE c CURSOR FOR > SELECT (i, power(2, 30))::foo > FROM generate_series(1,10) i; > FETCH c; > ALTER TYPE foo ALTER ATTRIBUTE b TYPE TEXT; > FETCH c; > COMMIT; > > Expected: Error message (type modified during active cursor) > Actual: Server process terminated with signal 11 (Segmentation fault) > > Server log: > client backend (PID 85) was terminated by signal 11: Segmentation fault > Failed process was running: [above SQL] > > Hypothesis: > The cursor holds a reference to the tuple descriptor for type "foo". > After ALTER TYPE modifies the type, the descriptor may be invalidated > while the cursor still holds a dangling pointer to it. The second FETCH > dereferences this invalid pointer. I confirmed the crash on master and traced the root cause. EEOP_ROW was the only rowtype-aware expression step that cached its TupleDesc at init time without an ExprEvalRowtypeCache guard. When ALTER TYPE changes an attribute's storage properties (e.g. int to text), the stale descriptor leads to SIGSEGV. Attached patch adds the same ExprEvalRowtypeCache check that EEOP_FIELDSELECT, EEOP_FIELDSTORE_DEFORM, etc. already use. With the fix the reproducer gets a clean error instead of crashing. Regards, Ayush --000000000000042c160650462aaa Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

On Sat, 25 Apr 2= 026 at 14:34, PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the websi= te:

Bug reference:=C2=A0 =C2=A0 =C2=A0 19466
Logged by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 HaoGang Mao
Email address:=C2=A0 =C2=A0 =C2=A0 haogangmao@gmail.com
PostgreSQL version: 18.3
Operating system:=C2=A0 =C2=A0Linux
Description:=C2=A0 =C2=A0 =C2=A0 =C2=A0

PostgreSQL version: 18.3
OS: Linux (Docker)

Summary:
PostgreSQL crashes with SIGSEGV when a cursor is open over a composite
type and the type is modified via ALTER TYPE during the same transaction, followed by a second FETCH.

Reproduction steps (minimal):
=C2=A0 CREATE TYPE foo AS (a INT, b INT);
=C2=A0 BEGIN;
=C2=A0 DECLARE c CURSOR FOR
=C2=A0 =C2=A0 SELECT (i, power(2, 30))::foo
=C2=A0 =C2=A0 FROM generate_series(1,10) i;
=C2=A0 FETCH c;
=C2=A0 ALTER TYPE foo ALTER ATTRIBUTE b TYPE TEXT;
=C2=A0 FETCH c;
=C2=A0 COMMIT;

Expected: Error message (type modified during active cursor)
Actual:=C2=A0 =C2=A0Server process terminated with signal 11 (Segmentation = fault)

Server log:
=C2=A0 client backend (PID 85) was terminated by signal 11: Segmentation fa= ult
=C2=A0 Failed process was running: [above SQL]

Hypothesis:
The cursor holds a reference to the tuple descriptor for type "foo&quo= t;.
After ALTER TYPE modifies the type, the descriptor may be invalidated
while the cursor still holds a dangling pointer to it. The second FETCH
dereferences this invalid pointer.
=C2=A0

I confi= rmed the crash on master and traced the root cause. EEOP_ROW was the
onl= y rowtype-aware expression step that cached its TupleDesc at init
time w= ithout an ExprEvalRowtypeCache guard. When ALTER TYPE changes
an attribu= te's storage properties (e.g. int to text), the stale
descriptor lea= ds to SIGSEGV.

Attached patch adds the same ExprEvalRowtypeCache che= ck that
EEOP_FIELDSELECT, EEOP_FIELDSTORE_DEFORM, etc. already use. With=
the fix the reproducer gets a clean error instead of crashing.

Regards,
Ayus= h=C2=A0
--000000000000042c160650462aaa-- --000000000000042c170650462aac Content-Type: application/octet-stream; name="v1-0001-Detect-row-type-changes-in-EEOP_ROW-expressions.patch" Content-Disposition: attachment; filename="v1-0001-Detect-row-type-changes-in-EEOP_ROW-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_moe6e8f90 RnJvbSA1MzExZDQ0ZmVkNDg3MWEwY2IwYmMyYjIzYmUwMjdlYTM4ZWVlMTQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBeXVzaCBUaXdhcmkgPGF5dXNodGl3YXJpLnNsZzAxQGdtYWls LmNvbT4KRGF0ZTogU2F0LCAyNSBBcHIgMjAyNiAwOTo0OTo1MSArMDAwMApTdWJqZWN0OiBbUEFU Q0hdIERldGVjdCByb3cgdHlwZSBjaGFuZ2VzIGluIEVFT1BfUk9XIGV4cHJlc3Npb25zCgpFRU9Q X1JPVyBjYWNoZWQgdGhlIHRhcmdldCBjb21wb3NpdGUgdHlwZSdzIFR1cGxlRGVzYyBhdCBleGVj dXRvcgpzdGFydHVwIGFuZCBuZXZlciByZS1jaGVja2VkIGl0LiAgSWYgQUxURVIgVFlQRSBtb2Rp ZmllZCB0aGUgdHlwZQp3aGlsZSBhIGN1cnNvciB3YXMgc3RpbGwgb3BlbiwgdGhlIG5leHQgRkVU Q0ggd291bGQgdXNlIHRoZSBzdGFsZQpkZXNjcmlwdG9yLCB3aGljaCBjb3VsZCBjcmFzaCB0aGUg YmFja2VuZCB3aXRoIFNJR1NFR1Ygd2hlbiBhdHRyaWJ1dGUKc3RvcmFnZSBwcm9wZXJ0aWVzIGNo YW5nZWQgKGUuZy4gaW50IC0+IHRleHQpLgoKT3RoZXIgcm93dHlwZS1hd2FyZSBzdGVwcyAoRUVP UF9GSUVMRFNFTEVDVCwgRUVPUF9GSUVMRFNUT1JFX0RFRk9STSwKRUVPUF9OVUxMVEVTVF9ST1cq LCBFRU9QX0NPTlZFUlRfUk9XVFlQRSkgYWxyZWFkeSBndWFyZCBhZ2FpbnN0IHRoaXMKdmlhIEV4 cHJFdmFsUm93dHlwZUNhY2hlLiAgQWRkIHRoZSBzYW1lIGNoZWNrIHRvIEVFT1BfUk9XOiBzdGFz aCB0aGUKVHlwZUNhY2hlRW50cnkgcG9pbnRlciBhbmQgdHVwRGVzY19pZGVudGlmaWVyIGF0IGlu aXQgdGltZSwgYW5kCmNvbXBhcmUgYXQgcnVudGltZSBpbiBFeGVjRXZhbFJvdygpLCByYWlzaW5n IGFuIGVycm9yIGlmIHRoZSB0eXBlIGhhcwpjaGFuZ2VkLgoKUmVwb3J0ZWQtYnk6IEhhb0dhbmcg TWFvCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgfCAxNSArKysr KysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgIHwgMTEg KysrKysrKysrKysKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgIHwgIDEg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yb3d0eXBlcy5vdXQgfCAxNyArKysrKysrKysr KysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcm93dHlwZXMuc3FsICAgICAgfCAxMiArKysr KysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IDc3MjI5MTQxYjM4Li44YjgzZTVkNzFlYSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0yMDExLDExICsyMDExLDI0IEBAIEV4ZWNJbml0 RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQlFeGVjVHlwZVNldENv bE5hbWVzKHR1cGRlc2MsIHJvd2V4cHItPmNvbG5hbWVzKTsKIAkJCQkJLyogQmxlc3MgdGhlIHR1 cGRlc2Mgc28gaXQgY2FuIGJlIGxvb2tlZCB1cCBsYXRlciAqLwogCQkJCQlCbGVzc1R1cGxlRGVz Yyh0dXBkZXNjKTsKKwkJCQkJc2NyYXRjaC5kLnJvdy5yb3djYWNoZS5jYWNoZXB0ciA9IE5VTEw7 CisJCQkJCXNjcmF0Y2guZC5yb3cucm93Y2FjaGUudHVwZGVzY19pZCA9IDA7CiAJCQkJfQogCQkJ CWVsc2UKIAkJCQl7CisJCQkJCVR5cGVDYWNoZUVudHJ5ICp0eXBlbnRyeTsKKwogCQkJCQkvKiBp dCdzIGJlZW4gY2FzdCB0byBhIG5hbWVkIHR5cGUsIHVzZSB0aGF0ICovCi0JCQkJCXR1cGRlc2Mg PSBsb29rdXBfcm93dHlwZV90dXBkZXNjX2NvcHkocm93ZXhwci0+cm93X3R5cGVpZCwgLTEpOwor CQkJCQl0eXBlbnRyeSA9IGxvb2t1cF90eXBlX2NhY2hlKHJvd2V4cHItPnJvd190eXBlaWQsCisJ CQkJCQkJCQkJCSAgIFRZUEVDQUNIRV9UVVBERVNDKTsKKwkJCQkJaWYgKHR5cGVudHJ5LT50dXBE ZXNjID09IE5VTEwpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJD T0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJCQkJIGVycm1zZygidHlwZSAlcyBpcyBub3Qg Y29tcG9zaXRlIiwKKwkJCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShyb3dleHByLT5yb3dfdHlwZWlk KSkpKTsKKwkJCQkJdHVwZGVzYyA9IENyZWF0ZVR1cGxlRGVzY0NvcHlDb25zdHIodHlwZW50cnkt PnR1cERlc2MpOworCQkJCQlzY3JhdGNoLmQucm93LnJvd2NhY2hlLmNhY2hlcHRyID0gdHlwZW50 cnk7CisJCQkJCXNjcmF0Y2guZC5yb3cucm93Y2FjaGUudHVwZGVzY19pZCA9IHR5cGVudHJ5LT50 dXBEZXNjX2lkZW50aWZpZXI7CiAJCQkJfQogCiAJCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwckludGVycC5jCmluZGV4IDA2MzRhZjk2NGE5Li4wZWMwNmU4NzI3OCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC0zNjY3LDYgKzM2NjcsMTcgQEAgRXhlY0V2YWxS b3coRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCkKIHsKIAlIZWFwVHVwbGUJdHVw bGU7CiAKKwlpZiAob3AtPmQucm93LnJvd2NhY2hlLnR1cGRlc2NfaWQgIT0gMCkKKwl7CisJCVR5 cGVDYWNoZUVudHJ5ICp0eXBlbnRyeSA9IChUeXBlQ2FjaGVFbnRyeSAqKSBvcC0+ZC5yb3cucm93 Y2FjaGUuY2FjaGVwdHI7CisKKwkJaWYgKHR5cGVudHJ5LT50dXBEZXNjX2lkZW50aWZpZXIgIT0g b3AtPmQucm93LnJvd2NhY2hlLnR1cGRlc2NfaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQko ZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygicm93IHR5 cGUgJXMgaGFzIGNoYW5nZWQiLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKG9wLT5kLnJvdy50dXBk ZXNjLT50ZHR5cGVpZCkpKSk7CisJfQorCiAJLyogYnVpbGQgdHVwbGUgZnJvbSBldmFsdWF0ZWQg ZmllbGQgdmFsdWVzICovCiAJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUob3AtPmQucm93LnR1cGRl c2MsCiAJCQkJCQkJb3AtPmQucm93LmVsZW12YWx1ZXMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjRXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApp bmRleCBjNjFiM2Q2MjRkNS4uNTMyZTAxYjdiNmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApA QCAtNDk5LDYgKzQ5OSw3IEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQlzdHJ1Y3QK IAkJewogCQkJVHVwbGVEZXNjCXR1cGRlc2M7CS8qIGRlc2NyaXB0b3IgZm9yIHJlc3VsdCB0dXBs ZXMgKi8KKwkJCUV4cHJFdmFsUm93dHlwZUNhY2hlIHJvd2NhY2hlOwogCQkJLyogd29ya3NwYWNl IGZvciB0aGUgdmFsdWVzIGNvbnN0aXR1dGluZyB0aGUgcm93OiAqLwogCQkJRGF0dW0JICAgKmVs ZW12YWx1ZXM7CiAJCQlib29sCSAgICplbGVtbnVsbHM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jvd3R5cGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cm93dHlwZXMub3V0CmluZGV4IDk1NmJjMmQwMmZjLi43ZWRlNDViMzIwYSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yb3d0eXBlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9yb3d0eXBlcy5vdXQKQEAgLTE0MDgsMyArMTQwOCwyMCBAQCBFUlJPUjog IGNvbHVtbiAib2lkIiBub3QgZm91bmQgaW4gZGF0YSB0eXBlIGNvbXBvc2l0ZXRhYmxlCiBMSU5F IDE6IFNFTEVDVCAoTlVMTDo6Y29tcG9zaXRldGFibGUpLm9pZDsKICAgICAgICAgICAgICAgICBe CiBEUk9QIFRBQkxFIGNvbXBvc2l0ZXRhYmxlOworLS0gQSBuYW1lZCBST1coKSByZXN1bHQgbXVz dCBub3Qgc3Vydml2ZSBBTFRFUiBUWVBFIHdpdGggdGhlIG9sZCBsYXlvdXQuCitDUkVBVEUgVFlQ RSBjdXJzb3Jfcm93dHlwZSBBUyAoYSBpbnQsIGIgaW50KTsKK0JFR0lOOworREVDTEFSRSBjIENV UlNPUiBGT1IKKyAgU0VMRUNUIChpLCBwb3dlcigyLCAzMCkpOjpjdXJzb3Jfcm93dHlwZQorICBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBpOworRkVUQ0ggYzsKKyAgICAgIHJvdyAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0KKyAoMSwxMDczNzQxODI0KQorKDEgcm93KQorCitBTFRFUiBUWVBF IGN1cnNvcl9yb3d0eXBlIEFMVEVSIEFUVFJJQlVURSBiIFRZUEUgdGV4dDsKK0ZFVENIIGM7CitF UlJPUjogIHJvdyB0eXBlIGN1cnNvcl9yb3d0eXBlIGhhcyBjaGFuZ2VkCitST0xMQkFDSzsKK0RS T1AgVFlQRSBjdXJzb3Jfcm93dHlwZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jvd3R5cGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3R5cGVzLnNxbAppbmRleCAx NzRiMDYyMTQ0YS4uZWM2NGY5NjhiZTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jvd3R5cGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yb3d0eXBlcy5zcWwKQEAg LTU2MiwzICs1NjIsMTUgQEAgU0VMRUNUIChOVUxMOjpjb21wb3NpdGV0YWJsZSkuYTsKIFNFTEVD VCAoTlVMTDo6Y29tcG9zaXRldGFibGUpLm9pZDsKIAogRFJPUCBUQUJMRSBjb21wb3NpdGV0YWJs ZTsKKworLS0gQSBuYW1lZCBST1coKSByZXN1bHQgbXVzdCBub3Qgc3Vydml2ZSBBTFRFUiBUWVBF IHdpdGggdGhlIG9sZCBsYXlvdXQuCitDUkVBVEUgVFlQRSBjdXJzb3Jfcm93dHlwZSBBUyAoYSBp bnQsIGIgaW50KTsKK0JFR0lOOworREVDTEFSRSBjIENVUlNPUiBGT1IKKyAgU0VMRUNUIChpLCBw b3dlcigyLCAzMCkpOjpjdXJzb3Jfcm93dHlwZQorICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAy KSBpOworRkVUQ0ggYzsKK0FMVEVSIFRZUEUgY3Vyc29yX3Jvd3R5cGUgQUxURVIgQVRUUklCVVRF IGIgVFlQRSB0ZXh0OworRkVUQ0ggYzsKK1JPTExCQUNLOworRFJPUCBUWVBFIGN1cnNvcl9yb3d0 eXBlOwotLSAKMi40My4wCgo= --000000000000042c170650462aac--