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 1w35VB-000swg-1a for pgsql-bugs@arkaria.postgresql.org; Thu, 19 Mar 2026 05:00:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w35VA-00GVcE-0G for pgsql-bugs@arkaria.postgresql.org; Thu, 19 Mar 2026 05:00:56 +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 1w35V9-00GVc6-1U for pgsql-bugs@lists.postgresql.org; Thu, 19 Mar 2026 05:00:55 +0000 Received: from mail-oo1-xc2c.google.com ([2607:f8b0:4864:20::c2c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w35V6-00000000Tod-0RjW for pgsql-bugs@lists.postgresql.org; Thu, 19 Mar 2026 05:00:54 +0000 Received: by mail-oo1-xc2c.google.com with SMTP id 006d021491bc7-67bd4e63606so92775eaf.1 for ; Wed, 18 Mar 2026 22:00:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773896453; cv=none; d=google.com; s=arc-20240605; b=FucePp+IFXxqqEXuhH8A0/5j28HpQIcuptpRxOD+Qn3YQpBMS63IHrwTI6NHzbKp98 pPLy+aylvlA+LNlTV7+zPc+T/hfIal3SabqnWhMsvX/pxX7Igv0k7FB2OrL4LiGvNPH2 JN65gSLoODdLqe6hHViVDdinUE/2lZxTksaptAyFckAFSmDm95Rw++sRalJxXr8pej7W 5thmK9rycmuUk134T1OMQ7tXKrW33ZTJPDvPdSp+NBwlKvpjHYCSnSQ0xp1ajS/M3RA+ w3LaqPFd///LSjuuk/4vEnaPBEhYesXPq13RzEo2PkUfWl4a/msXnht6Fz3d6N//WTyr q2PQ== 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=mZrPB/NL9mm+05CCGvM1kBoBUm3PHRU7DivlR19MBSU=; fh=PxrJpsllXYl6Qhli03h9hx13VTceRr/TMo7FBCvf6yQ=; b=XzWLX34NR0qArVwy3hNY7fGeVvqyXpd5reQpvuQ7aHcef+TfeD6KUpIiCgWkX3sT1J GlH2r/QDHYpj0Db2vcGYAKtnbU/iDxvzu81vUsGcC+yyk5B3n3TfVaDXL3mlLA1hYBGh MkT2D+ZeyhZX1Y5ep4E7tygrCl00hafZSwuVo2r18mkVtPxgTAgC4EyvBeNxwA3DBMfD K2Ns3fWSJ5dlrJ2nPkb2ApkM724R78TAvfOzrvtXeZDQM6gQBNLytnM/IcOULLAIGCrM kpVx8++dfgowmKSnnRrn6xi9oW2ygmHRlrrbXFIrdVc/jw30wdi/I+7JLptbaZUus2nb 4gPg==; 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=20230601; t=1773896453; x=1774501253; 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=mZrPB/NL9mm+05CCGvM1kBoBUm3PHRU7DivlR19MBSU=; b=OCu0jgKQv0OzldWDXfI8XNQL107PhWopAMD2gbzOLhXcqmJR1V4N8ufCxn4B/uvc0i SPrrtw81p/Qagx4tL+V4ywoW5Br0QnXzxHOEz3osvR4GLx8VbbiWwQJkbuR3i6pWJvbs ar2OSRIp5b5kfSvwuUgexw9OLrEy4jkAtDsDRGss/dU6ARPEWPzWJVNfnBUUkGShhMyq 6+H2m8o4jt4eLtH44/EZdinjDnga15OSqym+VateICtqGQvxWDOQ1fT+tz7/3PI7AYgy MWs6pdXq1eQL97cnksZMAAmvWYhkskC2aKiXOaq7iAuJ4WMHWYnHFMq2V6nijzNoeA4K pX8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773896453; x=1774501253; 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=mZrPB/NL9mm+05CCGvM1kBoBUm3PHRU7DivlR19MBSU=; b=PZ2STq8SpR9T0qjV3i5qn2VKJgqf8KyjUs/siJFfC8d57PrPpejBfCxH4O82nocVgK SsgLBY71UbqwAWB0hO1+1NEOEO7ioE6RR6qZjMsUs9uGnVTowk0ehwBFCjkqt3HQr1/v Ck5XcnMng9yVbUAnZqpPWJ/R4Klr/TLzr2ey+7BnhDms+zhSAFNBdSr8fBU6l335NBwQ yxgpp7BF5+Z9/quiY8fKJF27O1XZssyDWRFum9foC84mX97qEeSlr7cgBs4g+AHGip0R g5Z3bTBtnrmFH/xkejTHxm7xNgVNWV7vwcvqWyDQHBd2VpmkErfIqywlM+abvyikPMab SLVg== X-Forwarded-Encrypted: i=1; AJvYcCUpv+9iXmyuLiiy5wWOML+q8QKs3+KXU0C6R5iLsa9/xAMhS+fj2N/bl/ToWuj5SeF822q8T4GKecp4@lists.postgresql.org X-Gm-Message-State: AOJu0YzyDBjxAQzHw+L3dLdMQDudlkrbWtJP+4EfHT06kOFEPa3/1tMv NgGvflLk+OXInEXfdL9Te1aghSx0Cyi8YR0PKtYoimRRqyHRyA40033YsqsTwHqD4b0imnQ3GNc YBCfs4AN+byfvhWnG2imu60rYeI56Z8I= X-Gm-Gg: ATEYQzyK6GhCKLLM0XBelO9wCxbZ1FNWATFJk7aFpb5Rfhq9/yya4leGKAVG/UGbVgY MD83ZDtghYvlelxrP1YAwAiQu2nKqNZb2CJKuUwzWmE6NegpqvAoXAqmwhpP66aCt3N17bn7WKS cG5iyijgSNFIwyIZoWH1/Y4ASZzJwCldZEz0/j9THs6gUlu0klw1wGz9kK7RXDHVz1Ecmt3FzVK SnZHppVtHKhCbGK0r+wrHdx2s4AuOI9pAnYpcU/GffKMsVMO+riyS0jRPC4b/PugKyCU/l/xc8T f94+o2wQOWQX24Ef3Aw= X-Received: by 2002:a05:6820:1746:b0:67b:be3c:f8b6 with SMTP id 006d021491bc7-67c0db2a165mr4270448eaf.49.1773896452807; Wed, 18 Mar 2026 22:00:52 -0700 (PDT) MIME-Version: 1.0 References: <19382-4c2060ffee72759b@postgresql.org> In-Reply-To: From: surya poondla Date: Wed, 18 Mar 2026 22:00:41 -0700 X-Gm-Features: AaiRm50gZqC45q7gZQp8kanjBOQcp7OdP1Rdd_2XfUt69NTTkpmp6JRQVxC74lE Message-ID: Subject: Re: BUG #19382: Server crash at __nss_database_lookup To: dllggyx@outlook.com, pgsql-bugs@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000f0be3a064d59731c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f0be3a064d59731c Content-Type: multipart/alternative; boundary="000000000000f0be38064d59731a" --000000000000f0be38064d59731a Content-Type: text/plain; charset="UTF-8" Hi All, I was able to reproduce the crash on laster master (19), the above patch applies cleanly on postgres 19 and doesn't crash the server. psql (19devel) Type "help" for help. postgres=# DROP FUNCTION IF EXISTS bar(); NOTICE: function bar() does not exist, skipping DROP FUNCTION postgres=# DROP TYPE IF EXISTS foo CASCADE; NOTICE: type "foo" does not exist, skipping DROP TYPE postgres=# CREATE TYPE foo AS (a INT, b INT); CREATE TYPE postgres=# CREATE FUNCTION bar() RETURNS RECORD AS $$ postgres$# DECLARE postgres$# r foo := ROW(123, power(2, 30)); postgres$# BEGIN postgres$# ALTER TYPE foo ALTER ATTRIBUTE b TYPE TEXT; postgres$# RETURN r; postgres$# END; postgres$# $$ LANGUAGE plpgsql; CREATE FUNCTION postgres=# SELECT bar(); bar ------------------ (123,1073741824) (1 row) postgres=# DROP FUNCTION IF EXISTS bar1(); NOTICE: function bar1() does not exist, skipping DROP FUNCTION postgres=# DROP TYPE IF EXISTS foo1 CASCADE; NOTICE: type "foo1" does not exist, skipping DROP TYPE postgres=# CREATE TYPE foo1 AS (a INT, b INT); CREATE TYPE postgres=# CREATE FUNCTION bar1(OUT r1 foo1) AS $$ postgres$# BEGIN postgres$# r1 := ROW(1, 2); postgres$# ALTER TYPE foo1 ALTER ATTRIBUTE b TYPE TEXT; postgres$# RETURN; postgres$# END; postgres$# $$ LANGUAGE plpgsql; CREATE FUNCTION postgres=# SELECT bar1(); bar1 ------- (1,2) (1 row) postgres=# DROP FUNCTION IF EXISTS bar2(); NOTICE: function bar2() does not exist, skipping DROP FUNCTION postgres=# DROP TYPE IF EXISTS foo2 CASCADE; NOTICE: type "foo2" does not exist, skipping DROP TYPE postgres=# CREATE TYPE foo2 AS (a INT, b TEXT); CREATE TYPE postgres=# CREATE FUNCTION bar2() RETURNS foo2 AS $$ postgres$# DECLARE postgres$# r foo2 := ROW(1, 'hello'); postgres$# BEGIN postgres$# ALTER TYPE foo2 ALTER ATTRIBUTE b TYPE INT; postgres$# RETURN r; postgres$# END; postgres$# $$ LANGUAGE plpgsql; CREATE FUNCTION postgres=# SELECT bar2(); ERROR: invalid input syntax for type integer: "hello" CONTEXT: PL/pgSQL function bar2() line 6 at RETURN postgres=# DROP FUNCTION bar(); DROP FUNCTION postgres=# DROP FUNCTION bar1(); DROP FUNCTION postgres=# DROP FUNCTION bar2(); DROP FUNCTION postgres=# DROP TYPE IF EXISTS foo CASCADE; DROP TYPE postgres=# DROP TYPE IF EXISTS foo1 CASCADE; DROP TYPE postgres=# DROP TYPE IF EXISTS foo2 CASCADE; DROP TYPE postgres=# quit Regards, Surya Poondla --000000000000f0be38064d59731a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi All,

I was able to reproduce th= e crash on laster master (19), the above patch applies cleanly on postgres = 19 and doesn't crash the server.

psql (19devel)
Type "he= lp" for help.

postgres=3D# DROP FUNCTION IF EXISTS bar();
NO= TICE: =C2=A0function bar() does not exist, skipping
DROP FUNCTION
pos= tgres=3D# =C2=A0 DROP TYPE IF EXISTS foo CASCADE;
NOTICE: =C2=A0type &qu= ot;foo" does not exist, skipping
DROP TYPE
postgres=3D# =C2=A0 C= REATE TYPE foo AS (a INT, b INT);
CREATE TYPE
postgres=3D# =C2=A0 CRE= ATE FUNCTION bar() RETURNS RECORD AS $$
postgres$# =C2=A0 DECLARE
pos= tgres$# =C2=A0 =C2=A0 =C2=A0 r foo :=3D ROW(123, power(2, 30));
postgres= $# =C2=A0 BEGIN
postgres$# =C2=A0 =C2=A0 =C2=A0 ALTER TYPE foo ALTER ATT= RIBUTE b TYPE TEXT;
postgres$# =C2=A0 =C2=A0 =C2=A0 RETURN r;
postgre= s$# =C2=A0 END;
postgres$# =C2=A0 $$ LANGUAGE plpgsql;
CREATE FUNCTIO= N
postgres=3D# SELECT bar();
=C2=A0 =C2=A0 =C2=A0 =C2=A0bar
------= ------------
=C2=A0(123,1073741824)
(1 row)

postgres=3D# DROP = FUNCTION IF EXISTS bar1();
NOTICE: =C2=A0function bar1() does not exist,= skipping
DROP FUNCTION
postgres=3D# =C2=A0 DROP TYPE IF EXISTS foo1 = CASCADE;
NOTICE: =C2=A0type "foo1" does not exist, skippingDROP TYPE
postgres=3D# =C2=A0 CREATE TYPE foo1 AS (a INT, b INT);
CR= EATE TYPE
postgres=3D# =C2=A0 CREATE FUNCTION bar1(OUT r1 foo1) AS $$postgres$# =C2=A0 BEGIN
postgres$# =C2=A0 =C2=A0 =C2=A0 r1 :=3D ROW(1, = 2);
postgres$# =C2=A0 =C2=A0 =C2=A0 ALTER TYPE foo1 ALTER ATTRIBUTE b TY= PE TEXT;
postgres$# =C2=A0 =C2=A0 =C2=A0 RETURN;
postgres$# =C2=A0 EN= D;
postgres$# =C2=A0 $$ LANGUAGE plpgsql;
CREATE FUNCTION
postgres= =3D# SELECT bar1();
=C2=A0bar1
-------
=C2=A0(1,2)
(1 row)
<= br>postgres=3D# DROP FUNCTION IF EXISTS bar2();
NOTICE: =C2=A0function b= ar2() does not exist, skipping
DROP FUNCTION
postgres=3D# =C2=A0 DROP= TYPE IF EXISTS foo2 CASCADE;
NOTICE: =C2=A0type "foo2" does n= ot exist, skipping
DROP TYPE
postgres=3D# =C2=A0 CREATE TYPE foo2 AS = (a INT, b TEXT);
CREATE TYPE
postgres=3D# =C2=A0 CREATE FUNCTION bar2= () RETURNS foo2 AS $$
postgres$# =C2=A0 DECLARE
postgres$# =C2=A0 =C2= =A0 =C2=A0 r foo2 :=3D ROW(1, 'hello');
postgres$# =C2=A0 BEGIN<= br>postgres$# =C2=A0 =C2=A0 =C2=A0 ALTER TYPE foo2 ALTER ATTRIBUTE b TYPE I= NT;
postgres$# =C2=A0 =C2=A0 =C2=A0 RETURN r;
postgres$# =C2=A0 END;<= br>postgres$# =C2=A0 $$ LANGUAGE plpgsql;
CREATE FUNCTION
postgres=3D= # =C2=A0 SELECT bar2();
ERROR: =C2=A0invalid input syntax for type integ= er: "hello"
CONTEXT: =C2=A0PL/pgSQL function bar2() line 6 at = RETURN
postgres=3D# DROP FUNCTION bar();
DROP FUNCTION
postgres=3D= # =C2=A0 DROP FUNCTION bar1();
DROP FUNCTION
postgres=3D# =C2=A0 DROP= FUNCTION bar2();
DROP FUNCTION
postgres=3D# =C2=A0 DROP TYPE IF EXIS= TS foo CASCADE;
DROP TYPE
postgres=3D# =C2=A0 DROP TYPE IF EXISTS foo= 1 CASCADE;
DROP TYPE
postgres=3D# =C2=A0 DROP TYPE IF EXISTS foo2 CAS= CADE;
DROP TYPE
postgres=3D# quit

Regards,
Surya Poondla
--000000000000f0be38064d59731a-- --000000000000f0be3a064d59731c Content-Type: application/octet-stream; name="0003-Fix-bug-19382-server-crash-when-ALTER-TYPE-is-used-m_PG19.patch" Content-Disposition: attachment; filename="0003-Fix-bug-19382-server-crash-when-ALTER-TYPE-is-used-m_PG19.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmx046jc0 RnJvbSAzMjg5NzQ2ZDg4ZmJjYTEwNzEyZDQzY2M0ZjUwZmEyY2U5OWU2MmMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzcG9vbmRsYSA8c19wb29uZGxhQGFwcGxlLmNvbT4KRGF0ZTog RnJpLCAyMyBKYW4gMjAyNiAxNzoyODo1NCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjNdIEZpeCAo YnVnICMxOTM4Mikgc2VydmVyIGNyYXNoIHdoZW4gQUxURVIgVFlQRSBpcyB1c2VkCiBtaWQtdHJh bnNhY3Rpb24gaW4gUEwvcGdTUUwKCldoZW4gQUxURVIgVFlQRSBjaGFuZ2VzIGEgY29tcG9zaXRl IHR5cGUncyBjb2x1bW4gdHlwZXMgd2l0aGluIGEKdHJhbnNhY3Rpb24sIFBML3BnU1FMIHJlY29y ZCB2YXJpYWJsZXMgdGhhdCB3ZXJlIHBvcHVsYXRlZCBiZWZvcmUKdGhlIEFMVEVSIHN0aWxsIGhv bGQgZGF0YSBpbiB0aGUgb2xkIGZvcm1hdC4gUmV0dXJuaW5nIHN1Y2ggcmVjb3JkcwpjYXVzZXMg YSBjcmFzaCBiZWNhdXNlIHRoZSBvdXRwdXQgZnVuY3Rpb25zIGV4cGVjdCBkYXRhIG1hdGNoaW5n IHRoZQpuZXcgdHlwZSBkZWZpbml0aW9uLCBub3QgdGhlIG9sZCBvbmUuCgpUaGUgY3Jhc2ggbWFu aWZlc3RlZCBhcyBhIHNlZ21lbnRhdGlvbiBmYXVsdCBpbiByZWNvcmRfb3V0KCkgd2hlbiBpdAph dHRlbXB0ZWQgdG8gaW50ZXJwcmV0IGludGVnZXIgZGF0YSBhcyBhIHRleHQgcG9pbnRlciwgZHVl IHRvIHRoZQptaXNtYXRjaCBiZXR3ZWVuIHRoZSBzdG9yZWQgZGF0YSBhbmQgdGhlIGN1cnJlbnQg dHlwZSBkZWZpbml0aW9uLgotLS0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgfCAxNzMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxNzIg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3Fs L3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDZiMDc3 ZmViZGM4Li4wZDg1YTk1ZDc5NSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4 ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC00NTgsNiArNDU4LDgg QEAgc3RhdGljIGNoYXIgKmZvcm1hdF9wcmVwYXJlZHBhcmFtc2RhdGEoUExwZ1NRTF9leGVjc3Rh dGUgKmVzdGF0ZSwKIHN0YXRpYyBQTHBnU1FMX3ZhcmlhYmxlICptYWtlX2NhbGxzdG10X3Rhcmdl dChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkJCQkgIFBMcGdTUUxfZXhwciAq ZXhwcik7CiAKK3N0YXRpYyB2b2lkIGNvbnZlcnRfcmVjb3JkX2Zvcl9hbHRlcmVkX3R5cGUoUExw Z1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKKwkJCQkJCQkJCQkJUExwZ1NRTF9yZWMgKnJlYyk7CiAK IC8qIC0tLS0tLS0tLS0KICAqIHBscGdzcWxfZXhlY19mdW5jdGlvbglDYWxsZWQgYnkgdGhlIGNh bGwgaGFuZGxlciBmb3IKQEAgLTMyNDQsOCArMzI0NiwzMCBAQCBleGVjX3N0bXRfcmV0dXJuKFBM cGdTUUxfZXhlY3N0YXRlICplc3RhdGUsIFBMcGdTUUxfc3RtdF9yZXR1cm4gKnN0bXQpCiAJCQkJ fQogCQkJCWJyZWFrOwogCi0JCQljYXNlIFBMUEdTUUxfRFRZUEVfUk9XOgogCQkJY2FzZSBQTFBH U1FMX0RUWVBFX1JFQzoKKwkJCQl7CisJCQkJCVBMcGdTUUxfcmVjICpyZWMgPSAoUExwZ1NRTF9y ZWMgKikgcmV0dmFyOworCQkJCQlpbnQzMgkJcmV0dHlwbW9kOworCisJCQkJCS8qCisJCQkJCSAq IENoZWNrIGlmIHRoZSByZWNvcmQncyBjb21wb3NpdGUgdHlwZSB3YXMgYWx0ZXJlZCBzaW5jZQor CQkJCQkgKiB0aGUgcmVjb3JkIHdhcyBwb3B1bGF0ZWQuIElmIHNvLCBjb252ZXJ0IHRoZSBkYXRh IHRvCisJCQkJCSAqIHByZXZlbnQgY3Jhc2hlcyB3aGVuIG91dHB1dHRpbmcgdGhlIHJlY29yZC4K KwkJCQkJICovCisJCQkJCWlmIChyZWMtPnJlY3R5cGVpZCAhPSBSRUNPUkRPSUQgJiYgcmVjLT5l cmggIT0gTlVMTCAmJgorCQkJCQkJIUV4cGFuZGVkUmVjb3JkSXNFbXB0eShyZWMtPmVyaCkpCisJ CQkJCQljb252ZXJ0X3JlY29yZF9mb3JfYWx0ZXJlZF90eXBlKGVzdGF0ZSwgcmVjKTsKKworCQkJ CQlleGVjX2V2YWxfZGF0dW0oZXN0YXRlLAorCQkJCQkJCQkJcmV0dmFyLAorCQkJCQkJCQkJJmVz dGF0ZS0+cmV0dHlwZSwKKwkJCQkJCQkJCSZyZXR0eXBtb2QsCisJCQkJCQkJCQkmZXN0YXRlLT5y ZXR2YWwsCisJCQkJCQkJCQkmZXN0YXRlLT5yZXRpc251bGwpOworCQkJCX0KKwkJCQlicmVhazsK KworCQkJY2FzZSBQTFBHU1FMX0RUWVBFX1JPVzoKIAkJCQl7CiAJCQkJCS8qIGV4ZWNfZXZhbF9k YXR1bSBjYW4gaGFuZGxlIHRoZXNlIGNhc2VzICovCiAJCQkJCWludDMyCQlyZXR0eXBtb2Q7CkBA IC0zMzkwLDYgKzM0MTQsMTQgQEAgZXhlY19zdG10X3JldHVybl9uZXh0KFBMcGdTUUxfZXhlY3N0 YXRlICplc3RhdGUsCiAJCQkJCVR1cGxlRGVzYwlyZWNfdHVwZGVzYzsKIAkJCQkJVHVwbGVDb252 ZXJzaW9uTWFwICp0dXBtYXA7CiAKKwkJCQkJLyoKKwkJCQkJICogQ2hlY2sgaWYgdGhlIHJlY29y ZCdzIGNvbXBvc2l0ZSB0eXBlIHdhcyBhbHRlcmVkIHNpbmNlCisJCQkJCSAqIHRoZSByZWNvcmQg d2FzIHBvcHVsYXRlZC4gSWYgc28sIGNvbnZlcnQgdGhlIGRhdGEgdG8KKwkJCQkJICogcHJldmVu dCBjcmFzaGVzIHdoZW4gc3RvcmluZyB0byB0aGUgdHVwbGVzdG9yZS4KKwkJCQkJICovCisJCQkJ CWlmIChyZWMtPnJlY3R5cGVpZCAhPSBSRUNPUkRPSUQgJiYgcmVjLT5lcmggIT0gTlVMTCkKKwkJ CQkJCWNvbnZlcnRfcmVjb3JkX2Zvcl9hbHRlcmVkX3R5cGUoZXN0YXRlLCByZWMpOworCiAJCQkJ CS8qIElmIHJlYyBpcyBudWxsLCB0cnkgdG8gY29udmVydCBpdCB0byBhIHJvdyBvZiBudWxscyAq LwogCQkJCQlpZiAocmVjLT5lcmggPT0gTlVMTCkKIAkJCQkJCWluc3RhbnRpYXRlX2VtcHR5X3Jl Y29yZF92YXJpYWJsZShlc3RhdGUsIHJlYyk7CkBAIC04ODgzLDMgKzg5MTUsMTQyIEBAIGZvcm1h dF9wcmVwYXJlZHBhcmFtc2RhdGEoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAogCXJldHVy biBwYXJhbXN0ci5kYXRhOwogfQorCisvKgorICogY29udmVydF9yZWNvcmRfZm9yX2FsdGVyZWRf dHlwZQorICoKKyAqIENoZWNrIGlmIGEgcmVjb3JkJ3MgY29tcG9zaXRlIHR5cGUgaGFzIGJlZW4g YWx0ZXJlZCBzaW5jZSB0aGUgcmVjb3JkCisgKiB3YXMgcG9wdWxhdGVkLCBhbmQgaWYgc28sIGNv bnZlcnQgdGhlIHJlY29yZCBkYXRhIHRvIG1hdGNoIHRoZSBuZXcKKyAqIHR5cGUgZGVmaW5pdGlv bi4gVGhpcyBwcmV2ZW50cyBjcmFzaGVzIHRoYXQgY2FuIG9jY3VyIHdoZW4gdGhlIHN0b3JlZAor ICogZGF0YSBkb2Vzbid0IG1hdGNoIHRoZSBjdXJyZW50IHR5cGUgZGVmaW5pdGlvbi4KKyAqCisg KiBJZiBjb252ZXJzaW9uIGlzIG5lZWRlZCwgYXNzaWducyB0aGUgbmV3IHJlY29yZCB0byByZWMg dmlhCisgKiBhc3NpZ25fcmVjb3JkX3ZhcigpLCB3aGljaCB0cmFuc2ZlcnMgaXQgdG8gZGF0dW1f Y29udGV4dCBhbmQgZnJlZXMKKyAqIHRoZSBvbGQgcmVjb3JkLgorICovCitzdGF0aWMgdm9pZAor Y29udmVydF9yZWNvcmRfZm9yX2FsdGVyZWRfdHlwZShQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRl LAorCQkJCQkJCQlQTHBnU1FMX3JlYyAqcmVjKQoreworCUV4cGFuZGVkUmVjb3JkSGVhZGVyICpl cmggPSByZWMtPmVyaDsKKwlPaWQJCQkJcmVjdHlwZWlkID0gcmVjLT5yZWN0eXBlaWQ7CisJVHVw bGVEZXNjCQlvbGRfdHVwZGVzYzsKKwlUdXBsZURlc2MJCW5ld190dXBkZXNjOworCVR5cGVDYWNo ZUVudHJ5ICp0eXBlbnRyeTsKKwl1aW50NjQJCQljdXJyZW50X3R1cGRlc2NfaWQ7CisJRXhwYW5k ZWRSZWNvcmRIZWFkZXIgKm5ld19lcmg7CisJRGF0dW0JCSAgICpvbGRfdmFsdWVzOworCWJvb2wJ CSAgICpvbGRfbnVsbHM7CisJRGF0dW0JCSAgICpuZXdfdmFsdWVzOworCWJvb2wJCSAgICpuZXdf bnVsbHM7CisJaW50CQkJCW5hdHRzOworCWludAkJCQlpOworCU1lbW9yeUNvbnRleHQJb2xkY3h0 OworCWJvb2wJCQluZWVkX2NvbnZlcnNpb24gPSBmYWxzZTsKKworCS8qIE5vdGhpbmcgdG8gZG8g Zm9yIGFub255bW91cyBSRUNPUkQgdHlwZSAqLworCWlmIChyZWN0eXBlaWQgPT0gUkVDT1JET0lE KQorCQlyZXR1cm47CisKKwkvKiBHZXQgY3VycmVudCB0eXBlIGRlZmluaXRpb24gZnJvbSB0eXBj YWNoZSAqLworCXR5cGVudHJ5ID0gbG9va3VwX3R5cGVfY2FjaGUocmVjdHlwZWlkLAorCQkJCQkJ CQkgVFlQRUNBQ0hFX1RVUERFU0MgfAorCQkJCQkJCQkgVFlQRUNBQ0hFX0RPTUFJTl9CQVNFX0lO Rk8pOworCWlmICh0eXBlbnRyeS0+dHlwdHlwZSA9PSBUWVBUWVBFX0RPTUFJTikKKwkJdHlwZW50 cnkgPSBsb29rdXBfdHlwZV9jYWNoZSh0eXBlbnRyeS0+ZG9tYWluQmFzZVR5cGUsCisJCQkJCQkJ CQkgVFlQRUNBQ0hFX1RVUERFU0MpOworCisJY3VycmVudF90dXBkZXNjX2lkID0gdHlwZW50cnkt PnR1cERlc2NfaWRlbnRpZmllcjsKKworCS8qIElmIHR5cGUgaGFzbid0IGNoYW5nZWQsIG5vdGhp bmcgdG8gZG8gKGZhc3QgcGF0aCkgKi8KKwlpZiAoZXJoLT5lcl90dXBkZXNjX2lkID09IGN1cnJl bnRfdHVwZGVzY19pZCkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBUeXBlIHZlcnNpb24gaGFzIGNo YW5nZWQuIE5lZWQgdG8gY2hlY2sgaWYgZmllbGQgdHlwZXMgYWN0dWFsbHkgZGlmZmVyCisJICog YW5kIGNvbnZlcnQgaWYgbmVjZXNzYXJ5LgorCSAqLworCW9sZF90dXBkZXNjID0gZXJoLT5lcl90 dXBkZXNjOworCW5ld190dXBkZXNjID0gdHlwZW50cnktPnR1cERlc2M7CisKKwkvKiBTYW5pdHkg Y2hlY2s6IG11c3QgaGF2ZSBzYW1lIG51bWJlciBvZiBhdHRyaWJ1dGVzICovCisJaWYgKG9sZF90 dXBkZXNjLT5uYXR0cyAhPSBuZXdfdHVwZGVzYy0+bmF0dHMpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygicmVj b3JkIHR5cGUgXCIlc1wiIHN0cnVjdHVyZSBoYXMgY2hhbmdlZCIsCisJCQkJCQlmb3JtYXRfdHlw ZV9iZShyZWN0eXBlaWQpKSwKKwkJCQkgZXJyZGV0YWlsKCJOdW1iZXIgb2YgY29sdW1ucyBjaGFu Z2VkIGZyb20gJWQgdG8gJWQuIiwKKwkJCQkJCSAgIG9sZF90dXBkZXNjLT5uYXR0cywgbmV3X3R1 cGRlc2MtPm5hdHRzKSkpOworCisJbmF0dHMgPSBvbGRfdHVwZGVzYy0+bmF0dHM7CisKKwkvKiBE ZWNvbnN0cnVjdCB0aGUgb2xkIHJlY29yZCB0byBhY2Nlc3MgZmllbGQgdmFsdWVzICovCisJZGVj b25zdHJ1Y3RfZXhwYW5kZWRfcmVjb3JkKGVyaCk7CisJb2xkX3ZhbHVlcyA9IGVyaC0+ZHZhbHVl czsKKwlvbGRfbnVsbHMgPSBlcmgtPmRudWxsczsKKworCS8qIEFsbG9jYXRlIGFycmF5cyBmb3Ig bmV3IHZhbHVlcyAqLworCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhnZXRfZXZhbF9t Y29udGV4dChlc3RhdGUpKTsKKwluZXdfdmFsdWVzID0gKERhdHVtICopIHBhbGxvYyhuYXR0cyAq IHNpemVvZihEYXR1bSkpOworCW5ld19udWxscyA9IChib29sICopIHBhbGxvYyhuYXR0cyAqIHNp emVvZihib29sKSk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisKKwkvKiBDb252 ZXJ0IGVhY2ggZmllbGQgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbmF0dHM7IGkrKykKKwl7CisJCUZv cm1fcGdfYXR0cmlidXRlIG9sZF9hdHQgPSBUdXBsZURlc2NBdHRyKG9sZF90dXBkZXNjLCBpKTsK KwkJRm9ybV9wZ19hdHRyaWJ1dGUgbmV3X2F0dCA9IFR1cGxlRGVzY0F0dHIobmV3X3R1cGRlc2Ms IGkpOworCisJCS8qIFNraXAgZHJvcHBlZCBjb2x1bW5zICovCisJCWlmIChvbGRfYXR0LT5hdHRp c2Ryb3BwZWQgfHwgbmV3X2F0dC0+YXR0aXNkcm9wcGVkKQorCQl7CisJCQluZXdfdmFsdWVzW2ld ID0gKERhdHVtKSAwOworCQkJbmV3X251bGxzW2ldID0gdHJ1ZTsKKwkJCWNvbnRpbnVlOworCQl9 CisKKwkJLyogSWYgbnVsbCwgc3RheXMgbnVsbCAqLworCQlpZiAob2xkX251bGxzW2ldKQorCQl7 CisJCQluZXdfdmFsdWVzW2ldID0gKERhdHVtKSAwOworCQkJbmV3X251bGxzW2ldID0gdHJ1ZTsK KwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyogSWYgc2FtZSB0eXBlLCBubyBjb252ZXJzaW9uIG5l ZWRlZCAqLworCQlpZiAob2xkX2F0dC0+YXR0dHlwaWQgPT0gbmV3X2F0dC0+YXR0dHlwaWQgJiYK KwkJCShvbGRfYXR0LT5hdHR0eXBtb2QgPT0gbmV3X2F0dC0+YXR0dHlwbW9kIHx8CisJCQkgbmV3 X2F0dC0+YXR0dHlwbW9kID09IC0xKSkKKwkJeworCQkJbmV3X3ZhbHVlc1tpXSA9IG9sZF92YWx1 ZXNbaV07CisJCQluZXdfbnVsbHNbaV0gPSBmYWxzZTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJ LyogRGlmZmVyZW50IHR5cGU6IGNvbnZlcnQgdXNpbmcgZXhlY19jYXN0X3ZhbHVlICovCisJCW5l ZWRfY29udmVyc2lvbiA9IHRydWU7CisJCW5ld19udWxsc1tpXSA9IGZhbHNlOworCQluZXdfdmFs dWVzW2ldID0gZXhlY19jYXN0X3ZhbHVlKGVzdGF0ZSwKKwkJCQkJCQkJCQlvbGRfdmFsdWVzW2ld LAorCQkJCQkJCQkJCSZuZXdfbnVsbHNbaV0sCisJCQkJCQkJCQkJb2xkX2F0dC0+YXR0dHlwaWQs CisJCQkJCQkJCQkJb2xkX2F0dC0+YXR0dHlwbW9kLAorCQkJCQkJCQkJCW5ld19hdHQtPmF0dHR5 cGlkLAorCQkJCQkJCQkJCW5ld19hdHQtPmF0dHR5cG1vZCk7CisJfQorCisJLyogSWYgbm8gYWN0 dWFsIGNvbnZlcnNpb24gd2FzIG5lZWRlZCwgcmV0dXJuIHdpdGhvdXQgbW9kaWZ5aW5nIHJlYyAq LworCWlmICghbmVlZF9jb252ZXJzaW9uKQorCQlyZXR1cm47CisKKwkvKiBCdWlsZCBuZXcgZXhw YW5kZWQgcmVjb3JkIHdpdGggY29udmVydGVkIHZhbHVlcyAqLworCW5ld19lcmggPSBtYWtlX2V4 cGFuZGVkX3JlY29yZF9mcm9tX3R5cGVpZChyZWN0eXBlaWQsIC0xLAorCQkJCQkJCQkJCQkgICBn ZXRfZXZhbF9tY29udGV4dChlc3RhdGUpKTsKKwlleHBhbmRlZF9yZWNvcmRfc2V0X2ZpZWxkcyhu ZXdfZXJoLCBuZXdfdmFsdWVzLCBuZXdfbnVsbHMsIHRydWUpOworCisJLyoKKwkgKiBBc3NpZ24g dGhlIG5ldyByZWNvcmQgdG8gcmVjLCB0cmFuc2ZlcnJpbmcgaXQgdG8gZGF0dW1fY29udGV4dAor CSAqIGFuZCBmcmVlaW5nIHRoZSBvbGQgcmVjb3JkLgorCSAqLworCWFzc2lnbl9yZWNvcmRfdmFy KGVzdGF0ZSwgcmVjLCBuZXdfZXJoKTsKK30KLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000f0be3a064d59731c--