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.94.2) (envelope-from ) id 1rPjul-00DnZ5-Tq for pgsql-bugs@arkaria.postgresql.org; Tue, 16 Jan 2024 13:55:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rPjuk-004CXk-Vs for pgsql-bugs@arkaria.postgresql.org; Tue, 16 Jan 2024 13:55:38 +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.94.2) (envelope-from ) id 1rPjuk-004CXa-IC for pgsql-bugs@lists.postgresql.org; Tue, 16 Jan 2024 13:55:38 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rPjuh-0027p0-Hw for pgsql-bugs@lists.postgresql.org; Tue, 16 Jan 2024 13:55:37 +0000 Received: from [192.168.1.120] (unknown [46.164.243.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: d.koval@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id C8FF1E20E8C; Tue, 16 Jan 2024 16:55:33 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1705413333; bh=IoKeU1fvEeNbz7n6l1vu3z5F58deEMQpH3HH220+Izk=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=XQJX1swoG819/o0Mtz2q+74gBdUsYDWBM12+vUfR74+XE0Pu2LxeidMPZrmIGS9FK T5lVyk20+lUc6NVBCCx/E5+UlEC5qm3yjrf1rJsqXB0AHJfxroRjiE0UlEATROKVlC c74kKKokvd0V9N8i3zPn3g/3tN1q1JVraESoP5OU6qVFewF6I9WIX/ht17G6j6HE7W y0B7OOmkad/D9T1DmzFIqxQ14OIwKsWG4Y6L7aJ1wNq7mT/hRLQOmInrBFP6EXB/2e ZKwJ5lnTyRzi86Hasf0+0oGG8X6Pl3MpJYTZO25bJzJr6xalw/5fm0znYeEy7Qqn03 iDPqBnR7/iogQ== Content-Type: multipart/mixed; boundary="------------Olma2ZArWKaEK1F7IYp8YE40" Message-ID: <24e7412a-890c-46e3-b17d-addc39ff813f@postgrespro.ru> Date: Tue, 16 Jan 2024 16:55:34 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: BUG #18274: Error 'invalid XML content' To: Michael Paquier Cc: pgsql-bugs@lists.postgresql.org References: <18274-98d16bc03520665f@postgresql.org> <1616257.1704651529@sss.pgh.pa.us> <5588db01-45be-48ff-b158-85f789bc502c@postgrespro.ru> <1314313.1705259848@sss.pgh.pa.us> <0eea123f-388a-41ea-9df3-d4606cf9ed8d@postgrespro.ru> <35ef78f9-8958-4225-ae7e-aead71b0feed@postgrespro.ru> Content-Language: en-US From: Dmitry Koval In-Reply-To: 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. --------------Olma2ZArWKaEK1F7IYp8YE40 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi! Thanks for the recommendations. >- Document in a comment why a fake root node is necessary (aka the > current routines don't give enough control over the limits you'd >like to enforce). Comment expanded (see src/backend/utils/adt/xml.c). >- The top comment of xml_parse() still mentions >xmlParseBalancedChunkMemory() as an effect of 483bdb2afec9, so this >needs to be updated. Updated. >Also, it may be worth double-checking if there are other things marked >as deprecated in the upstream doc, and switch to "newer" things. I found another deprecated function xmlSubstituteEntitiesDefault [1] (contrib/xml2). xmlSubstituteEntitiesDefault was removed and added the XML_PARSE_NOENT flag in functions xmlReadMemory instead it. [1]https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-parser.html#xmlSubstituteEntitiesDefault -- With best regards, Dmitry Koval Postgres Professional: http://postgrespro.com --------------Olma2ZArWKaEK1F7IYp8YE40 Content-Type: text/plain; charset=UTF-8; name="v2-0001-Added-support-of-XML_PARSE_HUGE-flag-for-XML-docu.patch" Content-Disposition: attachment; filename*0="v2-0001-Added-support-of-XML_PARSE_HUGE-flag-for-XML-docu.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4OGZkZjViN2M0ZGExZWQ5YWNiNGQ1NzExZWY3NzE1NjZlZGNjMzliIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb3ZhbCBEbWl0cnkgPGQua292YWxAcG9zdGdyZXNw cm8ucnU+CkRhdGU6IFN1biwgMTQgSmFuIDIwMjQgMjE6MDI6NTUgKzAzMDAKU3ViamVjdDog W1BBVENIIHYyXSBBZGRlZCBzdXBwb3J0IG9mIFhNTF9QQVJTRV9IVUdFIGZsYWcgZm9yIFhN TCBkb2N1bWVudHMKCjEuIFBvc3RncmVTUUwgdXNlcyBmdW5jdGlvbnMgb2YgbGlieG1sMiBs aWJyYXJ5IHdpdGhvdXQgWE1MX1BBUlNFX0hVR0UgZmxhZy4KQnV0IGluIHByYWN0aWNlLCB0 aGUgMTAgTUIgbGltaXQgaXMgdG9vIHNtYWxsLgpVc2luZyBsaWJ4bWwyIGxpYnJhcnkgZnVu Y3Rpb25zIHdpdGggc3VwcG9ydCBvZiBYTUxfUEFSU0VfSFVHRSBmbGFnCmluY3JlYXNlcyBt YXhpbXVtIHNpemUgYWxsb3dlZCBmb3IgYSBzaW5nbGUgdGV4dCBub2RlIGZyb20gMTAuMDAw LjAwMCB0bwoxLjAwMC4wMDAuMDAwIChzZWUgWE1MX01BWF9URVhUX0xFTkdUSCBtYWNybykg d2hpY2ggaW4gbW9zdCBjYXNlcyBzb2x2ZXMKdGhlIHByb2JsZW0gd2l0aCBpbnN1ZmZpY2ll bnQgbWVtb3J5LgoKMi4geG1sUGFyc2VCYWxhbmNlZENodW5rTWVtb3J5IGZ1bmN0aW9uICho YXZlbid0IGFyZ3VtZW50IGZvciBwYXNzClhNTF9QQVJTRV9IVUdFIGZsYWcpIHdhcyByZXBs YWNlZCB0byB4bWxOZXdOb2RlK3htbFBhcnNlSW5Ob2RlQ29udGV4dApmdW5jdGlvbnMgKGNy ZWF0ZSBhIGZha2Ugbm9kZSBhbmQgcGFzcyB0aGUgWE1MX1BBUlNFX0hVR0UgZmxhZyB0bwp4 bWxQYXJzZUluTm9kZUNvbnRleHQgZnVuY3Rpb24pLgoKMy4gUmVwbGFjZWQgdGhlIHhtbFBh cnNlTWVtb3J5IGFuZCB4bWxTdWJzdGl0dXRlRW50aXRpZXNEZWZhdWx0IGZ1bmN0aW9ucywK d2hpY2ggbWFya2VkIGFzIGRlcHJlY2F0ZWQgWzFdLgoKWzFdIGh0dHBzOi8vZ25vbWUucGFn ZXMuZ2l0bGFiLmdub21lLm9yZy9saWJ4bWwyL2RldmhlbHAvbGlieG1sMi1wYXJzZXIuaHRt bAotLS0KIGNvbnRyaWIveG1sMi94cGF0aC5jICAgICAgICB8IDEwICsrKysrKy0tLS0KIGNv bnRyaWIveG1sMi94c2x0X3Byb2MuYyAgICB8IDEwICsrKysrKy0tLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC94bWwuYyB8IDM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIveG1sMi94cGF0aC5jIGIvY29udHJpYi94bWwyL3hw YXRoLmMKaW5kZXggYTY5MmRjNmJlOC4uYTJjZWM5NWYzZiAxMDA2NDQKLS0tIGEvY29udHJp Yi94bWwyL3hwYXRoLmMKKysrIGIvY29udHJpYi94bWwyL3hwYXRoLmMKQEAgLTc0LDcgKzc0 LDYgQEAgcGd4bWxfcGFyc2VyX2luaXQoUGdYbWxTdHJpY3RuZXNzIHN0cmljdG5lc3MpCiAJ LyogSW5pdGlhbGl6ZSBsaWJ4bWwgKi8KIAl4bWxJbml0UGFyc2VyKCk7CiAKLQl4bWxTdWJz dGl0dXRlRW50aXRpZXNEZWZhdWx0KDEpOwogCXhtbExvYWRFeHREdGREZWZhdWx0VmFsdWUg PSAxOwogCiAJcmV0dXJuIHhtbGVycmN4dDsKQEAgLTM4MCw4ICszNzksOSBAQCBwZ3htbF94 cGF0aCh0ZXh0ICpkb2N1bWVudCwgeG1sQ2hhciAqeHBhdGgsIHhwYXRoX3dvcmtzcGFjZSAq d29ya3NwYWNlKQogCiAJUEdfVFJZKCk7CiAJewotCQl3b3Jrc3BhY2UtPmRvY3RyZWUgPSB4 bWxQYXJzZU1lbW9yeSgoY2hhciAqKSBWQVJEQVRBX0FOWShkb2N1bWVudCksCi0JCQkJCQkJ CQkJCWRvY3NpemUpOworCQl3b3Jrc3BhY2UtPmRvY3RyZWUgPSB4bWxSZWFkTWVtb3J5KChj aGFyICopIFZBUkRBVEFfQU5ZKGRvY3VtZW50KSwKKwkJCQkJCQkJCQkgICBkb2NzaXplLCBO VUxMLCBOVUxMLAorCQkJCQkJCQkJCSAgIFhNTF9QQVJTRV9IVUdFIHwgWE1MX1BBUlNFX05P RU5UKTsKIAkJaWYgKHdvcmtzcGFjZS0+ZG9jdHJlZSAhPSBOVUxMKQogCQl7CiAJCQl3b3Jr c3BhY2UtPmN0eHQgPSB4bWxYUGF0aE5ld0NvbnRleHQod29ya3NwYWNlLT5kb2N0cmVlKTsK QEAgLTYyNCw3ICs2MjQsOSBAQCB4cGF0aF90YWJsZShQR19GVU5DVElPTl9BUkdTKQogCiAJ CQkvKiBQYXJzZSB0aGUgZG9jdW1lbnQgKi8KIAkJCWlmICh4bWxkb2MpCi0JCQkJZG9jdHJl ZSA9IHhtbFBhcnNlTWVtb3J5KHhtbGRvYywgc3RybGVuKHhtbGRvYykpOworCQkJCWRvY3Ry ZWUgPSB4bWxSZWFkTWVtb3J5KHhtbGRvYywgc3RybGVuKHhtbGRvYyksCisJCQkJCQkJCQkJ TlVMTCwgTlVMTCwKKwkJCQkJCQkJCQlYTUxfUEFSU0VfSFVHRSB8IFhNTF9QQVJTRV9OT0VO VCk7CiAJCQllbHNlCQkJCS8qIHRyZWF0IE5VTEwgYXMgbm90IHdlbGwtZm9ybWVkICovCiAJ CQkJZG9jdHJlZSA9IE5VTEw7CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIveG1sMi94c2x0X3By b2MuYyBiL2NvbnRyaWIveG1sMi94c2x0X3Byb2MuYwppbmRleCAyMTg5YmNhODZmLi45Y2Jj MDVkYjFhIDEwMDY0NAotLS0gYS9jb250cmliL3htbDIveHNsdF9wcm9jLmMKKysrIGIvY29u dHJpYi94bWwyL3hzbHRfcHJvYy5jCkBAIC04NSwxNiArODUsMTggQEAgeHNsdF9wcm9jZXNz KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWJvb2wJCXhzbHRfc2VjX3ByZWZzX2Vycm9yOwogCiAJ CS8qIFBhcnNlIGRvY3VtZW50ICovCi0JCWRvY3RyZWUgPSB4bWxQYXJzZU1lbW9yeSgoY2hh ciAqKSBWQVJEQVRBX0FOWShkb2N0KSwKLQkJCQkJCQkJIFZBUlNJWkVfQU5ZX0VYSERSKGRv Y3QpKTsKKwkJZG9jdHJlZSA9IHhtbFJlYWRNZW1vcnkoKGNoYXIgKikgVkFSREFUQV9BTlko ZG9jdCksCisJCQkJCQkJCVZBUlNJWkVfQU5ZX0VYSERSKGRvY3QpLCBOVUxMLCBOVUxMLAor CQkJCQkJCQlYTUxfUEFSU0VfSFVHRSB8IFhNTF9QQVJTRV9OT0VOVCk7CiAKIAkJaWYgKGRv Y3RyZWUgPT0gTlVMTCkKIAkJCXhtbF9lcmVwb3J0KHhtbGVycmN4dCwgRVJST1IsIEVSUkNP REVfRVhURVJOQUxfUk9VVElORV9FWENFUFRJT04sCiAJCQkJCQkiZXJyb3IgcGFyc2luZyBY TUwgZG9jdW1lbnQiKTsKIAogCQkvKiBTYW1lIGZvciBzdHlsZXNoZWV0ICovCi0JCXNzZG9j ID0geG1sUGFyc2VNZW1vcnkoKGNoYXIgKikgVkFSREFUQV9BTlkoc3NoZWV0KSwKLQkJCQkJ CQkgICBWQVJTSVpFX0FOWV9FWEhEUihzc2hlZXQpKTsKKwkJc3Nkb2MgPSB4bWxSZWFkTWVt b3J5KChjaGFyICopIFZBUkRBVEFfQU5ZKHNzaGVldCksCisJCQkJCQkJICBWQVJTSVpFX0FO WV9FWEhEUihzc2hlZXQpLCBOVUxMLCBOVUxMLAorCQkJCQkJCSAgWE1MX1BBUlNFX0hVR0Ug fCBYTUxfUEFSU0VfTk9FTlQpOwogCiAJCWlmIChzc2RvYyA9PSBOVUxMKQogCQkJeG1sX2Vy ZXBvcnQoeG1sZXJyY3h0LCBFUlJPUiwgRVJSQ09ERV9FWFRFUk5BTF9ST1VUSU5FX0VYQ0VQ VElPTiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC94bWwuYwppbmRleCAxOTFkZDJkMWUyLi45NDAyZTY0NWY3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3htbC5jCkBAIC0xNjg4LDcgKzE2ODgsNyBAQCB4bWxfZG9jdHlwZV9p bl9jb250ZW50KGNvbnN0IHhtbENoYXIgKnN0cikKICAqIHhtbG9wdGlvbl9hcmcsIGJ1dCBh IERPQ1RZUEUgbm9kZSBpbiB0aGUgaW5wdXQgY2FuIGZvcmNlIERPQ1VNRU5UIG1vZGUpLgog ICoKICAqIElmIHBhcnNlZF9ub2RlcyBpc24ndCBOVUxMIGFuZCB0aGUgaW5wdXQgaXMgbm90 IGFuIFhNTCBkb2N1bWVudCwgdGhlIGxpc3QKLSAqIG9mIHBhcnNlZCBub2RlcyBmcm9tIHRo ZSB4bWxQYXJzZUJhbGFuY2VkQ2h1bmtNZW1vcnkgY2FsbCB3aWxsIGJlIHJldHVybmVkCisg KiBvZiBwYXJzZWQgbm9kZXMgZnJvbSB0aGUgeG1sUGFyc2VJbk5vZGVDb250ZXh0IGNhbGwg d2lsbCBiZSByZXR1cm5lZAogICogdG8gKnBhcnNlZF9ub2Rlcy4KICAqCiAgKiBFcnJvcnMg bm9ybWFsbHkgcmVzdWx0IGluIGVyZXBvcnQoRVJST1IpLCBidXQgaWYgZXNjb250ZXh0IGlz IGFuCkBAIC0xNzk1LDcgKzE3OTUsNyBAQCB4bWxfcGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0 aW9uVHlwZSB4bWxvcHRpb25fYXJnLAogCQkJZG9jID0geG1sQ3R4dFJlYWREb2MoY3R4dCwg dXRmOHN0cmluZywKIAkJCQkJCQkJIE5VTEwsCiAJCQkJCQkJCSAiVVRGLTgiLAotCQkJCQkJ CQkgWE1MX1BBUlNFX05PRU5UIHwgWE1MX1BBUlNFX0RUREFUVFIKKwkJCQkJCQkJIFhNTF9Q QVJTRV9OT0VOVCB8IFhNTF9QQVJTRV9EVERBVFRSIHwgWE1MX1BBUlNFX0hVR0UKIAkJCQkJ CQkJIHwgKHByZXNlcnZlX3doaXRlc3BhY2UgPyAwIDogWE1MX1BBUlNFX05PQkxBTktTKSk7 CiAJCQlpZiAoZG9jID09IE5VTEwgfHwgeG1sZXJyY3h0LT5lcnJfb2NjdXJyZWQpCiAJCQl7 CkBAIC0xODI4LDEwICsxODI4LDI5IEBAIHhtbF9wYXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRp b25UeXBlIHhtbG9wdGlvbl9hcmcsCiAJCQkvKiBhbGxvdyBlbXB0eSBjb250ZW50ICovCiAJ CQlpZiAoKih1dGY4c3RyaW5nICsgY291bnQpKQogCQkJewotCQkJCXJlc19jb2RlID0geG1s UGFyc2VCYWxhbmNlZENodW5rTWVtb3J5KGRvYywgTlVMTCwgTlVMTCwgMCwKLQkJCQkJCQkJ CQkJCQkgICB1dGY4c3RyaW5nICsgY291bnQsCi0JCQkJCQkJCQkJCQkJICAgcGFyc2VkX25v ZGVzKTsKLQkJCQlpZiAocmVzX2NvZGUgIT0gMCB8fCB4bWxlcnJjeHQtPmVycl9vY2N1cnJl ZCkKKwkJCQljb25zdCBjaGFyICpkYXRhOworCQkJCXhtbE5vZGVQdHIJcm9vdDsKKwkJCQl4 bWxQYXJzZXJFcnJvcnMgeG1sX2Vycm9yOworCQkJCXhtbE5vZGVQdHIJbHN0OworCisJCQkJ ZGF0YSA9IChjb25zdCBjaGFyICopICh1dGY4c3RyaW5nICsgY291bnQpOworCisJCQkJLyoK KwkJCQkgKiBDcmVhdGUgYSBmYWtlIHJvb3Qgbm9kZS4gVGhlIHhtbE5ld0RvYyBmdW5jdGlv biBjcmVhdGVzIGFuCisJCQkJICogWE1MIGRvY3VtZW50IHdpdGhvdXQgYW55IG5vZGVzLiBC dXQgd2UgbmVlZCBvbmUgdG8gY2FsbCB0aGUKKwkJCQkgKiB4bWxQYXJzZUluTm9kZUNvbnRl eHQgZnVuY3Rpb24uCisJCQkJICovCisJCQkJcm9vdCA9IHhtbE5ld05vZGUoTlVMTCwgKGNv bnN0IHhtbENoYXIgKikgImNvbnRlbnQtcm9vdCIpOworCQkJCWlmIChyb290ID09IE5VTEwg fHwgeG1sZXJyY3h0LT5lcnJfb2NjdXJyZWQpCisJCQkJCXhtbF9lcmVwb3J0KHhtbGVycmN4 dCwgRVJST1IsIEVSUkNPREVfT1VUX09GX01FTU9SWSwKKwkJCQkJCQkJImNvdWxkIG5vdCBh bGxvY2F0ZSB4bWwgbm9kZSIpOworCQkJCXhtbERvY1NldFJvb3RFbGVtZW50KGRvYywgcm9v dCk7CisKKwkJCQkvKiBUcnkgdG8gcGFyc2Ugc3RyaW5nIHdpdGggdXNpbmcgcm9vdCBub2Rl IGNvbnRleHQuICovCisJCQkJeG1sX2Vycm9yID0geG1sUGFyc2VJbk5vZGVDb250ZXh0KHJv b3QsIGRhdGEsIHN0cmxlbihkYXRhKSwKKwkJCQkJCQkJCQkJCSAgWE1MX1BBUlNFX0hVR0Us CisJCQkJCQkJCQkJCQkgIHBhcnNlZF9ub2RlcyA/IHBhcnNlZF9ub2RlcyA6ICZsc3QpOwor CQkJCWlmICh4bWxfZXJyb3IgIT0gWE1MX0VSUl9PSyB8fCB4bWxlcnJjeHQtPmVycl9vY2N1 cnJlZCkKIAkJCQl7CiAJCQkJCXhtbF9lcnJzYXZlKGVzY29udGV4dCwgeG1sZXJyY3h0LAog CQkJCQkJCQlFUlJDT0RFX0lOVkFMSURfWE1MX0NPTlRFTlQsCkBAIC00MzQ0LDcgKzQzNjMs NyBAQCB4cGF0aF9pbnRlcm5hbCh0ZXh0ICp4cGF0aF9leHByX3RleHQsIHhtbHR5cGUgKmRh dGEsIEFycmF5VHlwZSAqbmFtZXNwYWNlcywKIAkJCXhtbF9lcmVwb3J0KHhtbGVycmN4dCwg RVJST1IsIEVSUkNPREVfT1VUX09GX01FTU9SWSwKIAkJCQkJCSJjb3VsZCBub3QgYWxsb2Nh dGUgcGFyc2VyIGNvbnRleHQiKTsKIAkJZG9jID0geG1sQ3R4dFJlYWRNZW1vcnkoY3R4dCwg KGNoYXIgKikgc3RyaW5nICsgeG1sZGVjbF9sZW4sCi0JCQkJCQkJCWxlbiAtIHhtbGRlY2xf bGVuLCBOVUxMLCBOVUxMLCAwKTsKKwkJCQkJCQkJbGVuIC0geG1sZGVjbF9sZW4sIE5VTEws IE5VTEwsIFhNTF9QQVJTRV9IVUdFKTsKIAkJaWYgKGRvYyA9PSBOVUxMIHx8IHhtbGVycmN4 dC0+ZXJyX29jY3VycmVkKQogCQkJeG1sX2VyZXBvcnQoeG1sZXJyY3h0LCBFUlJPUiwgRVJS Q09ERV9JTlZBTElEX1hNTF9ET0NVTUVOVCwKIAkJCQkJCSJjb3VsZCBub3QgcGFyc2UgWE1M IGRvY3VtZW50Iik7CkBAIC00Njc1LDcgKzQ2OTQsNyBAQCBYbWxUYWJsZVNldERvY3VtZW50 KFRhYmxlRnVuY1NjYW5TdGF0ZSAqc3RhdGUsIERhdHVtIHZhbHVlKQogCiAJUEdfVFJZKCk7 CiAJewotCQlkb2MgPSB4bWxDdHh0UmVhZE1lbW9yeSh4dEN4dC0+Y3R4dCwgKGNoYXIgKikg eHN0ciwgbGVuZ3RoLCBOVUxMLCBOVUxMLCAwKTsKKwkJZG9jID0geG1sQ3R4dFJlYWRNZW1v cnkoeHRDeHQtPmN0eHQsIChjaGFyICopIHhzdHIsIGxlbmd0aCwgTlVMTCwgTlVMTCwgWE1M X1BBUlNFX0hVR0UpOwogCQlpZiAoZG9jID09IE5VTEwgfHwgeHRDeHQtPnhtbGVycmN4dC0+ ZXJyX29jY3VycmVkKQogCQkJeG1sX2VyZXBvcnQoeHRDeHQtPnhtbGVycmN4dCwgRVJST1Is IEVSUkNPREVfSU5WQUxJRF9YTUxfRE9DVU1FTlQsCiAJCQkJCQkiY291bGQgbm90IHBhcnNl IFhNTCBkb2N1bWVudCIpOwotLSAKMi40MC4xLndpbmRvd3MuMQoK --------------Olma2ZArWKaEK1F7IYp8YE40--