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 1w2G7l-0008Nf-0f for pgsql-bugs@arkaria.postgresql.org; Mon, 16 Mar 2026 22:09:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2G7k-00DjXK-0O for pgsql-bugs@arkaria.postgresql.org; Mon, 16 Mar 2026 22:09: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 1w2G7j-00DjXB-2L for pgsql-bugs@lists.postgresql.org; Mon, 16 Mar 2026 22:09:19 +0000 Received: from mail-oo1-xc2a.google.com ([2607:f8b0:4864:20::c2a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2G7g-000000005D7-1xaP for pgsql-bugs@lists.postgresql.org; Mon, 16 Mar 2026 22:09:18 +0000 Received: by mail-oo1-xc2a.google.com with SMTP id 006d021491bc7-67bc1b08afdso3167569eaf.1 for ; Mon, 16 Mar 2026 15:09:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773698957; cv=none; d=google.com; s=arc-20240605; b=gFA6Uttc9QxPIoEFKbpVu537Dd/Sp5t6okcFrLrlUKRFy1IYmCFQPRZ/e24AOwSCaj 2/J3EY9geQJlESlo/aGn0g5ma5w8UwxLmZ67a3FInTY+ywEMb84d3x7R36kSX+zwTEQg xPnqimYkquA+GzDsvAhYE7G6YQKuJo7KzmzlrJhbBm6gvAQN42fHJDBs4QfE1ztUcVH1 vdnp/DVHsI3JVDKdqyQ5u4n9qvqKi8Bfc3wya16M4lnmC1CcXMUnMmAfm4ISOmoTIeCa I4ZFW4u4eICr4msxp3yKoTmv9jirXEmP/9b3JdD/UA2T8aM+Q4KgFurUPWG2b1MADO6q BrbQ== 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=F/W+R6Wp9pXGJal8L7QmtRdVmq02fKG60CT45OBwVe0=; fh=F0vSoISUDlG2C/hTJd2fO1JitiDyjlJz7aLeLXrxL08=; b=FfSGnoBwB5sqYcaP/Pi7Bg2F7Q6RnC2N2j6VWXomaF+UEWbbPUzBeKhaBCrUSbQVpk h2lhLW7RImRO4pV2BJUDyOD4+86KSX18MvP8EoaXexVhUePeMNqY7TVBZyES2+0ug21L PWhqveeypfcD+F7HJZNDS+kAAfvM0/SjodJGAUJY4gKYh/aRMd9L7SXs2L9Pxhj8j6Jf C0/SvxOBGc4QOjTBg492NrOPhO5b2VZUvffl4At2ekJsBGNqb77ECMVFJilqOCVRcgeY URcmrxU3Ju/o+t3OQk5wPW9DOFM1x00VUkTpDOEQ6GEW9J0oU9lsmBhpt7UuM5LU03zU 1YcQ==; 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=1773698957; x=1774303757; 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=F/W+R6Wp9pXGJal8L7QmtRdVmq02fKG60CT45OBwVe0=; b=WHkSferj3y7ItTMhZ5loEsDYRE7SO8UVEZmzhjOWDkCo4YW75XLXFdjE+A/c7r+YhY VqRiHO6gSasD+VrbwLJ6WoZaHqNrMffuEVc70h4PDXghbzc+51hPEGOCTR9bbw7w1Idd J96rDzXei2toUX3TvQfcVwk0fXiVWRYMb2l4XtYFDdQ7SEsP20BfdgZOPDCipBMI7ARk F6VqKT6wFH9CAqsW3uSLb4NeIVAWKMyTPhksJJEMrIu0CjHse7uABxjOSKdMjom9Qchx 9Cr11UMV9vvVELNLk5kkfJc0xbgBMdXq3GQkEex7g9n+Eb4rvDQmB1iACrpJBai1EY4l y6Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773698957; x=1774303757; 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=F/W+R6Wp9pXGJal8L7QmtRdVmq02fKG60CT45OBwVe0=; b=nRpXa4T7f+WlpgIAmEbhp7BQJBmI69umdLbmEiP2F9B2Jiqv94Q9d7RPfHJIBeuRii ei2OiTDH+tT4f5aenYnU+xKe/5BLnQSwB+eWH//2K6vH1GBz13Tl3Fl8rTuyxwwOHiEg jLQy9Q6rVXHe4xBN17u2pe2DlRExmjm/+IhlW4QXDk6S80ZYNy2U46cRpARtseiWrute n2LhVZ18NAd/Lzr9OcUCtpO60BIylK/j/CpgFH2URedTG+Xf1PXPqf6qkITq3A7sx6pC C29w+b1a2pVI0tDkPlf/tsRJJyZbMcO34CvTRBLh5vJZjMldMa5ITuHNFkJ7cCA16PQt +qNw== X-Forwarded-Encrypted: i=1; AJvYcCUFQ+O3Xe0kX17/57icqsbAEeshrwQrNAQW46DCOeqqV79F21VczSM1f9F1HTNZmcCNwThv0WMxAcNm@lists.postgresql.org X-Gm-Message-State: AOJu0YzpUW+umo4h6kVSNZ+X9opsi9+a5jQQxD+iN1rLtKW9Icg901FV In/IK+kc2hDmLJAppSDpfQZNk1rP9LqcowKnbC2XVXxebrMaqjekR928f6jSyo0VyOBtj7wkVUZ hcJ4U162S/gIOmlxHmJOZHdYU56Abcg0= X-Gm-Gg: ATEYQzzd1vTbKITeugzQ6j8sasovZ4g0uqVSUEqReVTlfmbOK73gjdLKYm4J7XzmNTQ IS99gwi5O/y/D2j+TvrAyCfyO2wlx86k6/g8aM/QVzqodZY3H5cKNrcnUa9EwMsYhXdNY3fXKEo bvdaoRZ3+GugHWvTFMDPwfb12DHdOpDY4YjUFAZD5kOXMPo0sqY434vCP0P/kce6P8v+/UqkBUA 7oX2RQ66WKR9+1JSe8VhRXOx3+Y7jTNHhuQC+kGk0HVcBLEoy8eyZ7Qb9IBLO7dhpxYdeK6JgHj geqb11wGf3BsyQ== X-Received: by 2002:a05:6820:1628:b0:679:e765:dafc with SMTP id 006d021491bc7-67bda9bc725mr9073222eaf.19.1773698957413; Mon, 16 Mar 2026 15:09:17 -0700 (PDT) MIME-Version: 1.0 References: <19382-4c2060ffee72759b@postgresql.org> In-Reply-To: From: surya poondla Date: Mon, 16 Mar 2026 15:09:06 -0700 X-Gm-Features: AaiRm52kpXeMaykOhVYw51RTZqon9yKjTlB9J40TPU3W1r9Q5SwrdhPqW86LCck 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="0000000000004bae8c064d2b78d7" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004bae8c064d2b78d7 Content-Type: multipart/alternative; boundary="0000000000004bae88064d2b78d5" --0000000000004bae88064d2b78d5 Content-Type: text/plain; charset="UTF-8" Hi All, Rebased on the latest 17 code and slightly refactored the code. Regards, Surya Poondla --0000000000004bae88064d2b78d5 Content-Type: text/html; charset="UTF-8"
Hi All,

Rebased on the latest 17 code and slightly refactored the code.

Regards,
Surya Poondla
--0000000000004bae88064d2b78d5-- --0000000000004bae8c064d2b78d7 Content-Type: application/octet-stream; name="0003-Fix-bug-19382-server-crash-when-ALTER-TYPE-is-used-m.patch" Content-Disposition: attachment; filename="0003-Fix-bug-19382-server-crash-when-ALTER-TYPE-is-used-m.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmtqjunv0 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== --0000000000004bae8c064d2b78d7--