From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xen.org security team Subject: Xen Security Advisory 226 (CVE-2017-12135) - multiple problems with transitive grants Date: Tue, 29 Aug 2017 12:04:08 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8" Content-Transfer-Encoding: binary Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-announce@lists.xen.org, xen-devel@lists.xen.org, xen-users@lists.xen.org, oss-security@lists.openwall.com Cc: "Xen.org security team" List-Id: xen-devel@lists.xenproject.org --=separator Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Xen Security Advisory CVE-2017-12135 / XSA-226 version 7 multiple problems with transitive grants UPDATES IN VERSION 7 ==================== First patch provided in version 6 regressed 32-bit Dom0 or backend domains. The updated patch includes a fix for this. ISSUE DESCRIPTION ================= 1) Code to handle copy operations on transitive grants has built in retry logic, involving a function reinvoking itself with unchanged parameters. Such use assumes that the compiler would also translate this to a so called "tail call" when generating machine code. Empirically, this is not commonly the case, allowing for theoretically unbounded nesting of such function calls. 2) The reference counting and locking discipline for transitive grants is broken. Concurrent use of the transitive grant can leak references on the transitively-referenced grant. IMPACT ====== A malicious or buggy guest may be able to crash Xen. Privilege escalation and information leaks cannot be ruled out. A malicious or buggy guest can leak references on grants it has been given, amounting to a DoS against the grantee. VULNERABLE SYSTEMS ================== All versions of Xen are vulnerable. MITIGATION ========== There is no known mitigation. CREDITS ======= This issue was discovered by Jan Beulich of SUSE. The security team would also like to thank Amazon for helping to identify that the problems with transitive grants were deeper than originally believed. RESOLUTION ========== Applying the appropriate attached pair of patches from the list below addresses this issue: xsa226-unstable/*.patch xen-unstable xsa226-4.9/*.patch Xen 4.9.x, Xen 4.8.x, Xen 4.7.x xsa226-4.6/*.patch Xen 4.6.x xsa226-4.5/*.patch Xen 4.5.x Note that these patches have already been applied to the respective staging trees. Alternatively, applying the appropriate attached patch from the list below works around this issue by disabling transitive grants by default: xsa226.patch xen-unstable, Xen 4.9.x, Xen 4.8.x xsa226-4.7.patch Xen 4.7.x xsa226-4.6.patch Xen 4.6.x xsa226-4.5.patch Xen 4.5.x $ sha256sum xsa226* xsa226*/* b09e07aaf422ae04a4ece5e2c5b5e54036cfae5b5c632bfc6953a0cacd6f60ff xsa226.patch d999767014501d3ac62def06ccd43b97bbbf0ef7d402d3bd70ca96ac9997a14d xsa226-unstable/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch 4473fd96ce4fdea5e19e0b502d65f20bd279d82473ac34ff404ce2b2cbc10be1 xsa226-unstable/0002-gnttab-fix-transitive-grant-handling.patch ca8b92b2ff58b87e8bec137a34784cbf11e2820659046df6e1d71e23bf7e7dee xsa226-4.5.patch ca77d01172abf263b5b731f26f5e3f74b0b8c75b3e29bee3f65a9318236daba7 xsa226-4.5/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch de6359e50fd2bb710469da74a596013ce275edb43d3d1c36d41452f88eee9b7d xsa226-4.5/0002-gnttab-fix-transitive-grant-handling.patch 28c7df7edabb91fb2f1fa3fc7d6906bfae75a6e701f1cd335baafaae3e087696 xsa226-4.6.patch 0186f78e99f5f6eec913da8355e0c28946a14a6099a7219bd4e0d385fdf8c306 xsa226-4.6/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch e34dbba7b94942faeb3e6b7630ba06f01998e2b56be1035d76e67aa47e77457d xsa226-4.6/0002-gnttab-fix-transitive-grant-handling.patch fffcc0a4428723e6aea391ff4f1d27326b5a3763d2308cbde64e6a786502c702 xsa226-4.7.patch 3878c27b77ba24012599289e0e0fb1e5198b1e4efe2f87f7c46def5f335f2fd5 xsa226-4.9/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch 01d773c5bb4cafe54daf0d14e8a3af899a7c5863513d18927c4a570a74afdb15 xsa226-4.9/0002-gnttab-fix-transitive-grant-handling.patch $ (The .meta file is a prototype machine-readable file for describing which patches are to be applied how.) DEPLOYMENT DURING EMBARGO ========================= Deployment of the patches and/or mitigations described above (or others which are substantially similar) is permitted during the embargo, even on public-facing systems with untrusted guest users and administrators. But: Distribution of updated software is prohibited (except to other members of the predisclosure list). Predisclosure list members who wish to deploy significantly different patches and/or mitigations, please contact the Xen Project Security Team. (Note: this during-embargo deployment notice is retained in post-embargo publicly released Xen Project advisories, even though it is then no longer applicable. This is to enable the community to have oversight of the Xen Project Security Team's decisionmaking.) For more information about permissible uses of embargoed information, consult the Xen Project community's agreed Security Policy: http://www.xenproject.org/security-policy.html -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBCAAGBQJZpVgpAAoJEIP+FMlX6CvZ228H/jXq5lHGZwtGmbgFY1O6/LBk wrExcAq5iSXVHmfXCR1budkAEYxqCptAbO6FNljvfZVu1bMnGq/ONJs6+UUMCcLb TCLoqqAvSN06dftIcKSCDOW6GpmRs+lEdZYHO6qkEh1hTHY83OjqqQW2jhOGf4iV IS1kytbERXzjzApeTECcUJ4Fxd2sGD8PUMiD4XFagtJu3mjSl5Y1M57z21WBzSuK dHwUzt9sKAd/FOHvpT27GxWw69XR2dI0vKrVtY+Wgudmi4cVt4qnLPirhxkulRVL yVWZeC3dBgjwR1kE2NNuuBXUTHfmyV/kj8s9Jd0z4Z3aGyX/24uZfL1eJq02Sa8= =oTGH -----END PGP SIGNATURE----- --=separator Content-Type: application/octet-stream; name="xsa226.patch" Content-Disposition: attachment; filename="xsa226.patch" Content-Transfer-Encoding: base64 RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KU3ViamVjdDogZ3JhbnRfdGFibGU6IERlZmF1bHQgdG8gdjEsIGFuZCBk aXNhbGxvdyB0cmFuc2l0aXZlIGdyYW50cwoKVGhlIHJlZmVyZW5jZSBjb3Vu dGluZyBhbmQgbG9ja2luZyBkaXNjaXBsaW5lIGZvciB0cmFuc2l0aXZlIGdy YW50cyBpcyBicm9rZW4uClRoZWlyIHVzZSBpcyB0aGVyZWZvcmUgZGVjbGFy ZWQgb3V0IG9mIHNlY3VyaXR5IHN1cHBvcnQuCgpUaGlzIGlzIFhTQS0yMjYu CgpUcmFuc2l0aXZlIGdyYW50cyBhcmUgZXhwZWN0ZWQgdG8gYmUgdW5jb25k aXRpb25hbGx5IGF2YWlsYWJsZSB3aXRoIGdyYW50CnRhYmxlIHYyLiAgSGlk aW5nIHRyYW5zaXRpdmUgZ3JhbnRzIGFsb25lIGlzIGFuIEFCSSBicmVha2Fn ZSBmb3IgdGhlIGd1ZXN0LgpNb2Rlcm4gdmVyc2lvbnMgb2YgTGludXggYW5k IHRoZSBXaW5kb3dzIFBWIGRyaXZlcnMgdXNlIGdyYW50IHRhYmxlIHYxLCBi dXQKb2xkZXIgdmVyc2lvbnMgZGlkIHVzZSB2Mi4KCkluIHByaW5jaXBsZSwg ZGlzYWJsaW5nIGdudHRhYiB2MiBlbnRpcmVseSBpcyB0aGUgc2FmZXIgd2F5 IHRvIGNhdXNlIGd1ZXN0cyB0bwphdm9pZCB1c2luZyB0cmFuc2l0aXZlIGdy YW50cy4gSG93ZXZlciwgc29tZSBvbGRlciBndWVzdHMgd2hpY2ggZGVmYXVs dGVkIHRvCnVzaW5nIGdudHRhYiB2MiBkb24ndCB0b2xlcmF0ZSBmYWxsaW5n IGJhY2sgZnJvbSB2MiB0byB2MSBvdmVyIG1pZ3JhdGUuCgpUaGlzIHBhdGNo IGludHJvZHVjZXMgYSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBjb250 cm9sIGdyYW50IHRhYmxlCmJlaGF2aW91ci4gIE9uZSBzdWJvcHRpb24gYWxs b3dzIGEgY2hvaWNlIG9mIHRoZSBtYXhpbXVtIGdyYW50IHRhYmxlIHZlcnNp b24KWGVuIHdpbGwgYWxsb3cgdGhlIGd1ZXN0IHRvIHVzZSwgYW5kIGRlZmF1 bHRzIHRvIHYyLiAgQSBkaWZmZXJlbnQgc3Vib3B0aW9uCmluZGVwZW5kZW50 bHkgY29udHJvbHMgd2hldGhlciB0cmFuc2l0aXZlIGdyYW50cyBjYW4gYmUg dXNlZC4KClRoZSBkZWZhdWx0IGNhc2UgaXM6CgogICAgZ250dGFiPW1heF92 ZXI6MgoKVG8gZGlzYWJsZSBnbnR0YWIgdjIgZW50aXJlbHksIHVzZToKCiAg ICBnbnR0YWI9bWF4X3ZlcjoxCgpUbyBhbGxvdyBnbnR0YWIgdjIgYW5kIHRy YW5zaXRpdmUgZ3JhbnRzLCB1c2U6CgogICAgZ250dGFiPW1heF92ZXI6Mix0 cmFuc2l0aXZlCgpSZXBvcnRlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNo QHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgpkaWZmIC0tZ2l0IGEvZG9jcy9taXNj L3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93bgppbmRleCA0MDAyZWFiLi5hZjA3OWI0IDEw MDY0NAotLS0gYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93 bgorKysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgpA QCAtODY4LDYgKzg2OCwyMiBAQCBDb250cm9scyBFUFQgcmVsYXRlZCBmZWF0 dXJlcy4KIAogU3BlY2lmeSB3aGljaCBjb25zb2xlIGdkYnN0dWIgc2hvdWxk IHVzZS4gU2VlICoqY29uc29sZSoqLgogCisjIyMgZ250dGFiCis+IGA9IExp c3Qgb2YgWyBtYXhfdmVyOjxpbnRlZ2VyPiwgdHJhbnNpdGl2ZSBdYAorCis+ IERlZmF1bHQ6IGBnbnR0YWI9bWF4X3ZlcjoyLG5vLXRyYW5zaXRpdmVgCisK K0NvbnRyb2wgdmFyaW91cyBhc3BlY3RzIG9mIHRoZSBncmFudCB0YWJsZSBi ZWhhdmlvdXIgYXZhaWxhYmxlIHRvIGd1ZXN0cy4KKworKiBgbWF4X3ZlcmAg U2VsZWN0IHRoZSBtYXhpbXVtIGdyYW50IHRhYmxlIHZlcnNpb24gdG8gb2Zm ZXIgdG8gZ3Vlc3RzLiAgVmFsaWQKK3ZlcnNpb24gYXJlIDEgYW5kIDIuCisq IGB0cmFuc2l0aXZlYCBQZXJtaXQgb3IgZGlzYWxsb3cgdGhlIHVzZSBvZiB0 cmFuc2l0aXZlIGdyYW50cy4gIE5vdGUgdGhhdCB0aGUKK3VzZSBvZiBncmFu dCB0YWJsZSB2MiB3aXRob3V0IHRyYW5zaXRpdmUgZ3JhbnRzIGlzIGFuIEFC SSBicmVha2FnZSBmcm9tIHRoZQorZ3Vlc3RzIHBvaW50IG9mIHZpZXcuCisK KypXYXJuaW5nOioKK0R1ZSB0byBYU0EtMjI2LCB0aGUgdXNlIG9mIHRyYW5z aXRpdmUgZ3JhbnRzIGlzIG91dHNpZGUgb2Ygc2VjdXJpdHkgc3VwcG9ydC4K KwogIyMjIGdudHRhYlxfbWF4XF9mcmFtZXMKID4gYD0gPGludGVnZXI+YAog CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgYi94ZW4v Y29tbW9uL2dyYW50X3RhYmxlLmMKaW5kZXggYWUzNDU0Ny4uODcxMzFmOCAx MDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hl bi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAtNTAsNiArNTAsNDIgQEAgaW50 ZWdlcl9wYXJhbSgiZ250dGFiX21heF9ucl9mcmFtZXMiLCBtYXhfbnJfZ3Jh bnRfZnJhbWVzKTsKIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IG1heF9n cmFudF9mcmFtZXM7CiBpbnRlZ2VyX3BhcmFtKCJnbnR0YWJfbWF4X2ZyYW1l cyIsIG1heF9ncmFudF9mcmFtZXMpOwogCitzdGF0aWMgdW5zaWduZWQgaW50 IF9fcmVhZF9tb3N0bHkgb3B0X2dudHRhYl9tYXhfdmVyc2lvbiA9IDI7Citz dGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IG9wdF90cmFuc2l0aXZlX2dyYW50 czsKKworc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX2dudHRhYihjaGFyICpz KQoreworICAgIGNoYXIgKnNzOworCisgICAgZG8geworICAgICAgICBzcyA9 IHN0cmNocihzLCAnLCcpOworICAgICAgICBpZiAoIHNzICkKKyAgICAgICAg ICAgICpzcyA9ICdcMCc7CisKKyAgICAgICAgaWYgKCAhc3RybmNtcChzLCAi bWF4X3ZlcjoiLCA4KSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvbmcg dmVyID0gc2ltcGxlX3N0cnRvbChzICsgOCwgTlVMTCwgMTApOworCisgICAg ICAgICAgICBpZiAoIHZlciA+PSAxICYmIHZlciA8PSAyICkKKyAgICAgICAg ICAgICAgICBvcHRfZ250dGFiX21heF92ZXJzaW9uID0gdmVyOworICAgICAg ICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgYm9v bCB2YWwgPSAhIXN0cm5jbXAocywgIm5vLSIsIDMpOworCisgICAgICAgICAg ICBpZiAoICF2YWwgKQorICAgICAgICAgICAgICAgIHMgKz0gMzsKKworICAg ICAgICAgICAgaWYgKCAhc3RyY21wKHMsICJ0cmFuc2l0aXZlIikgKQorICAg ICAgICAgICAgICAgIG9wdF90cmFuc2l0aXZlX2dyYW50cyA9IHZhbDsKKyAg ICAgICAgfQorCisgICAgICAgIHMgPSBzcyArIDE7CisgICAgfSB3aGlsZSAo IHNzICk7Cit9CisKK2N1c3RvbV9wYXJhbSgiZ250dGFiIiwgcGFyc2VfZ250 dGFiKTsKKwogLyogVGhlIG1heGltdW0gbnVtYmVyIG9mIGdyYW50IG1hcHBp bmdzIGlzIGRlZmluZWQgYXMgYSBtdWx0aXBsaWVyIG9mIHRoZQogICogbWF4 aW11bSBudW1iZXIgb2YgZ3JhbnQgdGFibGUgZW50cmllcy4gVGhpcyBkZWZp bmVzIHRoZSBtdWx0aXBsaWVyIHVzZWQuCiAgKiBQcmV0dHkgYXJiaXRyYXJ5 LiBbUE9MSUNZXQpAQCAtMjE5MSw2ICsyMjI3LDEwIEBAIF9fYWNxdWlyZV9n cmFudF9mb3JfY29weSgKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmICgg KHNoYWgtPmZsYWdzICYgR1RGX3R5cGVfbWFzaykgPT0gR1RGX3RyYW5zaXRp dmUgKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoICFvcHRfdHJhbnNp dGl2ZV9ncmFudHMgKQorICAgICAgICAgICAgICAgIFBJTl9GQUlMKHVubG9j a19vdXRfY2xlYXIsIEdOVFNUX2dlbmVyYWxfZXJyb3IsCisgICAgICAgICAg ICAgICAgICAgICAgICAgInRyYW5zaXRpdmUgZ3JhbnQgZGlzYWxsb3dlZCBi eSBwb2xpY3lcbiIpOworCiAgICAgICAgICAgICBpZiAoICFhbGxvd190cmFu c2l0aXZlICkKICAgICAgICAgICAgICAgICBQSU5fRkFJTCh1bmxvY2tfb3V0 X2NsZWFyLCBHTlRTVF9nZW5lcmFsX2Vycm9yLAogICAgICAgICAgICAgICAg ICAgICAgICAgICJ0cmFuc2l0aXZlIGdyYW50IHdoZW4gdHJhbnNpdGl2aXR5 IG5vdCBhbGxvd2VkXG4iKTsKQEAgLTMxNTksNyArMzE5OSwxMCBAQCBkb19n cmFudF90YWJsZV9vcCgKICAgICB9CiAgICAgY2FzZSBHTlRUQUJPUF9zZXRf dmVyc2lvbjoKICAgICB7Ci0gICAgICAgIHJjID0gZ250dGFiX3NldF92ZXJz aW9uKGd1ZXN0X2hhbmRsZV9jYXN0KHVvcCwgZ250dGFiX3NldF92ZXJzaW9u X3QpKTsKKyAgICAgICAgaWYgKCBvcHRfZ250dGFiX21heF92ZXJzaW9uID09 IDEgKQorICAgICAgICAgICAgcmMgPSAtRU5PU1lTOyAvKiBCZWhhdmUgYXMg YmVmb3JlIHNldF92ZXJzaW9uIHdhcyBpbnRyb2R1Y2VkLiAqLworICAgICAg ICBlbHNlCisgICAgICAgICAgICByYyA9IGdudHRhYl9zZXRfdmVyc2lvbihn dWVzdF9oYW5kbGVfY2FzdCh1b3AsIGdudHRhYl9zZXRfdmVyc2lvbl90KSk7 CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEdOVFRBQk9QX2dl dF9zdGF0dXNfZnJhbWVzOgo= --=separator Content-Type: application/octet-stream; name="xsa226-unstable/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch" Content-Disposition: attachment; filename="xsa226-unstable/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGRvbid0IHVzZSBwb3NzaWJseSB1bmJvdW5kZWQgdGFpbCBj YWxscwoKVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgdGhlIGNvbXBpbGVy IHdvdWxkIGFjdHVhbGx5IHRyYW5zbGF0ZSB0aGVtCnRvIGJyYW5jaGVzIGlu c3RlYWQgb2YgY2FsbHMsIHNvIG9ubHkgb25lcyB3aXRoIGEga25vd24gcmVj dXJzaW9uIGxpbWl0CmFyZSBva2F5OgotIF9fcmVsZWFzZV9ncmFudF9mb3Jf Y29weSgpIGNhbiBjYWxsIGl0c2VsZiBvbmx5IG9uY2UsIGFzCiAgX19hY3F1 aXJlX2dyYW50X2Zvcl9jb3B5KCkgd29uJ3QgcGVybWl0IHVzZSBvZiBtdWx0 aS1sZXZlbCB0cmFuc2l0aXZlCiAgZ3JhbnRzLAotIF9fYWNxdWlyZV9ncmFu dF9mb3JfY29weSgpIGlzIGZpbmUgdG8gY2FsbCBpdHNlbGYgd2l0aCB0aGUg bGFzdAogIGFyZ3VtZW50IGZhbHNlLCBhcyB0aGF0IHByZXZlbnRzIGZ1cnRo ZXIgcmVjdXJzaW9uLAotIF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSgpIG11 c3Qgbm90IGNhbGwgaXRzZWxmIHRvIHJlY292ZXIgZnJvbSBhbgogIG9ic2Vy dmVkIGNoYW5nZSB0byB0aGUgYWN0aXZlIGVudHJ5J3MgcGluIGNvdW50CgpU aGlzIGlzIHBhcnQgb2YgQ1ZFLTIwMTctMTIxMzUgLyBYU0EtMjI2LgoKU2ln bmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoK LS0tIGEveGVuL2NvbW1vbi9jb21wYXQvZ3JhbnRfdGFibGUuYworKysgYi94 ZW4vY29tbW9uL2NvbXBhdC9ncmFudF90YWJsZS5jCkBAIC0yNTgsOSArMjU4 LDkgQEAgaW50IGNvbXBhdF9ncmFudF90YWJsZV9vcCh1bnNpZ25lZCBpbnQg Y21kLAogICAgICAgICAgICAgICAgIHJjID0gZ250dGFiX2NvcHkoZ3Vlc3Rf aGFuZGxlX2Nhc3QobmF0LnVvcCwgZ250dGFiX2NvcHlfdCksIG4pOwogICAg ICAgICAgICAgaWYgKCByYyA+IDAgKQogICAgICAgICAgICAgewotICAgICAg ICAgICAgICAgIEFTU0VSVChyYyA8IG4pOwotICAgICAgICAgICAgICAgIGkg LT0gbiAtIHJjOwotICAgICAgICAgICAgICAgIG4gPSByYzsKKyAgICAgICAg ICAgICAgICBBU1NFUlQocmMgPD0gbik7CisgICAgICAgICAgICAgICAgaSAt PSByYzsKKyAgICAgICAgICAgICAgICBuIC09IHJjOwogICAgICAgICAgICAg fQogICAgICAgICAgICAgaWYgKCByYyA+PSAwICkKICAgICAgICAgICAgIHsK LS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hlbi9jb21t b24vZ3JhbnRfdGFibGUuYwpAQCAtMjEwOSw4ICsyMTA5LDEwIEBAIF9fcmVs ZWFzZV9ncmFudF9mb3JfY29weSgKIAogICAgIGlmICggdGQgIT0gcmQgKQog ICAgIHsKLSAgICAgICAgLyogUmVjdXJzaXZlIGNhbGxzLCBidXQgdGhleSdy ZSB0YWlsIGNhbGxzLCBzbyBpdCdzCi0gICAgICAgICAgIG9rYXkuICovCisg ICAgICAgIC8qCisgICAgICAgICAqIFJlY3Vyc2l2ZSBjYWxscywgYnV0IHRo ZXkncmUgYm91bmRlZCAoYWNxdWlyZSBwZXJtaXRzIG9ubHkgYSBzaW5nbGUK KyAgICAgICAgICogbGV2ZWwgb2YgdHJhbnNpdGl2aXR5KSwgc28gaXQncyBv a2F5LgorICAgICAgICAgKi8KICAgICAgICAgaWYgKCByZWxlYXNlZF93cml0 ZSApCiAgICAgICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkodGQs IHRyYW5zX2dyZWYsIDApOwogICAgICAgICBlbHNlIGlmICggcmVsZWFzZWRf cmVhZCApCkBAIC0yMjYyLDEwICsyMjY0LDExIEBAIF9fYWNxdWlyZV9ncmFu dF9mb3JfY29weSgKICAgICAgICAgICAgICAgICByZXR1cm4gcmM7CiAgICAg ICAgICAgICB9CiAKLSAgICAgICAgICAgIC8qIFdlIGRyb3BwZWQgdGhlIGxv Y2ssIHNvIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBub2JvZHkKLSAgICAgICAg ICAgICAgIGVsc2UgdHJpZWQgdG8gcGluIChvciwgZm9yIHRoYXQgbWF0dGVy LCB1bnBpbikgdGhlCi0gICAgICAgICAgICAgICByZWZlcmVuY2UgaW4gKnRo aXMqIGRvbWFpbi4gIElmIHRoZXkgZGlkLCBqdXN0IGdpdmUgdXAKLSAgICAg ICAgICAgICAgIGFuZCB0cnkgYWdhaW4uICovCisgICAgICAgICAgICAvKgor ICAgICAgICAgICAgICogV2UgZHJvcHBlZCB0aGUgbG9jaywgc28gd2UgaGF2 ZSB0byBjaGVjayB0aGF0IG5vYm9keSBlbHNlIHRyaWVkCisgICAgICAgICAg ICAgKiB0byBwaW4gKG9yLCBmb3IgdGhhdCBtYXR0ZXIsIHVucGluKSB0aGUg cmVmZXJlbmNlIGluICp0aGlzKgorICAgICAgICAgICAgICogZG9tYWluLiAg SWYgdGhleSBkaWQsIGp1c3QgZ2l2ZSB1cCBhbmQgdGVsbCB0aGUgY2FsbGVy IHRvIHJldHJ5LgorICAgICAgICAgICAgICovCiAgICAgICAgICAgICBpZiAo IGFjdC0+cGluICE9IG9sZF9waW4gKQogICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgIF9fZml4dXBfc3RhdHVzX2Zvcl9jb3B5X3BpbihhY3QsIHN0 YXR1cyk7CkBAIC0yMjczLDkgKzIyNzYsOCBAQCBfX2FjcXVpcmVfZ3JhbnRf Zm9yX2NvcHkoCiAgICAgICAgICAgICAgICAgYWN0aXZlX2VudHJ5X3JlbGVh c2UoYWN0KTsKICAgICAgICAgICAgICAgICBncmFudF9yZWFkX3VubG9jayhy Z3QpOwogICAgICAgICAgICAgICAgIHB1dF9wYWdlKCpwYWdlKTsKLSAgICAg ICAgICAgICAgICByZXR1cm4gX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KHJk LCBncmVmLCBsZG9tLCByZWFkb25seSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLCBwYWdlLCBwYWdl X29mZiwgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWxsb3dfdHJhbnNpdGl2ZSk7CisgICAgICAg ICAgICAgICAgKnBhZ2UgPSBOVUxMOworICAgICAgICAgICAgICAgIHJldHVy biBFUkVTVEFSVDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLyog VGhlIGFjdHVhbCByZW1vdGUgcmVtb3RlIGdyYW50IG1heSBvciBtYXkgbm90 IGJlIGEKQEAgLTI1NzQsNyArMjU3Niw3IEBAIHN0YXRpYyBpbnQgZ250dGFi X2NvcHlfb25lKGNvbnN0IHN0cnVjdAogICAgIHsKICAgICAgICAgZ250dGFi X2NvcHlfcmVsZWFzZV9idWYoc3JjKTsKICAgICAgICAgcmMgPSBnbnR0YWJf Y29weV9jbGFpbV9idWYob3AsICZvcC0+c291cmNlLCBzcmMsIEdOVENPUFlf c291cmNlX2dyZWYpOwotICAgICAgICBpZiAoIHJjIDwgMCApCisgICAgICAg IGlmICggcmMgKQogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCkBA IC0yNTg0LDcgKzI1ODYsNyBAQCBzdGF0aWMgaW50IGdudHRhYl9jb3B5X29u ZShjb25zdCBzdHJ1Y3QKICAgICB7CiAgICAgICAgIGdudHRhYl9jb3B5X3Jl bGVhc2VfYnVmKGRlc3QpOwogICAgICAgICByYyA9IGdudHRhYl9jb3B5X2Ns YWltX2J1ZihvcCwgJm9wLT5kZXN0LCBkZXN0LCBHTlRDT1BZX2Rlc3RfZ3Jl Zik7Ci0gICAgICAgIGlmICggcmMgPCAwICkKKyAgICAgICAgaWYgKCByYyAp CiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKQEAgLTI1OTMsNiAr MjU5NSwxNCBAQCBzdGF0aWMgaW50IGdudHRhYl9jb3B5X29uZShjb25zdCBz dHJ1Y3QKICAgICByZXR1cm4gcmM7CiB9CiAKKy8qCisgKiBnbnR0YWJfY29w eSgpLCBvdGhlciB0aGFuIHRoZSB2YXJpb3VzIG90aGVyIGhlbHBlcnMgb2YK KyAqIGRvX2dyYW50X3RhYmxlX29wKCksIHJldHVybnMgKGJlc2lkZXMgcG9z c2libGUgZXJyb3IgaW5kaWNhdG9ycykKKyAqICJjb3VudCAtIGkiIHJhdGhl ciB0aGFuICJpIiB0byBlbnN1cmUgdGhhdCBldmVuIGlmIG5vIHByb2dyZXNz CisgKiB3YXMgbWFkZSBhdCBhbGwgKHBlcmhhcHMgZHVlIHRvIGdudHRhYl9j b3B5X29uZSgpIHJldHVybmluZyBhCisgKiBwb3NpdGl2ZSB2YWx1ZSkgYSBu b24temVybyB2YWx1ZSBpcyBiZWluZyBoYW5kZWQgYmFjayAoemVybyBuZWVk cworICogdG8gYmUgYXZvaWRlZCwgYXMgdGhhdCBtZWFucyAic3VjY2Vzcywg YWxsIGRvbmUiKS4KKyAqLwogc3RhdGljIGxvbmcgZ250dGFiX2NvcHkoCiAg ICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShnbnR0YWJfY29weV90KSB1b3As IHVuc2lnbmVkIGludCBjb3VudCkKIHsKQEAgLTI2MDYsNyArMjYxNiw3IEBA IHN0YXRpYyBsb25nIGdudHRhYl9jb3B5KAogICAgIHsKICAgICAgICAgaWYg KCBpICYmIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQogICAgICAgICB7 Ci0gICAgICAgICAgICByYyA9IGk7CisgICAgICAgICAgICByYyA9IGNvdW50 IC0gaTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI2 MTYsMTMgKzI2MjYsMjAgQEAgc3RhdGljIGxvbmcgZ250dGFiX2NvcHkoCiAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIG9wLnN0 YXR1cyA9IGdudHRhYl9jb3B5X29uZSgmb3AsICZkZXN0LCAmc3JjKTsKLSAg ICAgICAgaWYgKCBvcC5zdGF0dXMgIT0gR05UU1Rfb2theSApCisgICAgICAg IHJjID0gZ250dGFiX2NvcHlfb25lKCZvcCwgJmRlc3QsICZzcmMpOworICAg ICAgICBpZiAoIHJjID4gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJj ID0gY291bnQgLSBpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K KyAgICAgICAgaWYgKCByYyAhPSBHTlRTVF9va2F5ICkKICAgICAgICAgewog ICAgICAgICAgICAgZ250dGFiX2NvcHlfcmVsZWFzZV9idWYoJnNyYyk7CiAg ICAgICAgICAgICBnbnR0YWJfY29weV9yZWxlYXNlX2J1ZigmZGVzdCk7CiAg ICAgICAgIH0KIAorICAgICAgICBvcC5zdGF0dXMgPSByYzsKKyAgICAgICAg cmMgPSAwOwogICAgICAgICBpZiAoIHVubGlrZWx5KF9fY29weV9maWVsZF90 b19ndWVzdCh1b3AsICZvcCwgc3RhdHVzKSkgKQogICAgICAgICB7CiAgICAg ICAgICAgICByYyA9IC1FRkFVTFQ7CkBAIC0zMTYyLDYgKzMxNzksNyBAQCBk b19ncmFudF90YWJsZV9vcCgKICAgICAgICAgcmMgPSBnbnR0YWJfY29weShj b3B5LCBjb3VudCk7CiAgICAgICAgIGlmICggcmMgPiAwICkKICAgICAgICAg eworICAgICAgICAgICAgcmMgPSBjb3VudCAtIHJjOwogICAgICAgICAgICAg Z3Vlc3RfaGFuZGxlX2FkZF9vZmZzZXQoY29weSwgcmMpOwogICAgICAgICAg ICAgdW9wID0gZ3Vlc3RfaGFuZGxlX2Nhc3QoY29weSwgdm9pZCk7CiAgICAg ICAgIH0K --=separator Content-Type: application/octet-stream; name="xsa226-unstable/0002-gnttab-fix-transitive-grant-handling.patch" Content-Disposition: attachment; filename="xsa226-unstable/0002-gnttab-fix-transitive-grant-handling.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGZpeCB0cmFuc2l0aXZlIGdyYW50IGhhbmRsaW5nCgpQcm9j ZXNzaW5nIG9mIHRyYW5zaXRpdmUgZ3JhbnRzIG11c3Qgbm90IHVzZSB0aGUg ZmFzdCBwYXRoLCBvciBlbHNlCnJlZmVyZW5jZSBjb3VudGluZyBicmVha3Mg ZHVlIHRvIHRoZSBza2lwcGVkIHJlY3Vyc2l2ZSBjYWxsIHRvCl9fYWNxdWly ZV9ncmFudF9mb3JfY29weSgpIChpdHMgX19yZWxlYXNlX2dyYW50X2Zvcl9j b3B5KCkKY291bnRlcnBhcnQgb2NjdXJzIGluZGVwZW5kZW50IG9mIG9yaWdp bmFsIHBpbiBjb3VudCkuIEZ1cnRoZXJtb3JlCmFmdGVyIHJlLWFjcXVpcmlu ZyB0ZW1wb3JhcmlseSBkcm9wcGVkIGxvY2tzIHdlIG5lZWQgdG8gdmVyaWZ5 IG5vIGdyYW50CnByb3BlcnRpZXMgY2hhbmdlZCBpZiB0aGUgb3JpZ2luYWwg cGluIGNvdW50IHdhcyBub24temVybzsgY2hlY2tpbmcKanVzdCB0aGUgcGlu IGNvdW50cyBpcyBzdWZmaWNpZW50IG9ubHkgZm9yIHdlbGwtYmVoYXZlZCBn dWVzdHMuIEFzIGEKcmVzdWx0LCBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHko KSBuZWVkcyB0byBtaXJyb3IgdGhhdCBuZXcgYmVoYXZpb3IuCgpGdXJ0aGVy bW9yZSBhIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSgpIGludm9jYXRpb24g d2FzIG1pc3Npbmcgb24gdGhlCnJldHJ5IHBhdGggb2YgX19hY3F1aXJlX2dy YW50X2Zvcl9jb3B5KCksIGFuZCBnbnR0YWJfc2V0X3ZlcnNpb24oKSBhbHNv Cm5lZWRzIHRvIGJhaWwgb3V0IHVwb24gZW5jb3VudGVyaW5nIGEgdHJhbnNp dGl2ZSBncmFudC4KClRoaXMgaXMgcGFydCBvZiBDVkUtMjAxNy0xMjEzNSAv IFhTQS0yMjYuCgpSZXBvcnRlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCi0tLSBhL3hlbi9j b21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMKQEAgLTIwNTYsMTMgKzIwNTYsOCBAQCBfX3JlbGVhc2VfZ3JhbnRf Zm9yX2NvcHkoCiAgICAgdW5zaWduZWQgbG9uZyByX2ZyYW1lOwogICAgIHVp bnQxNl90ICpzdGF0dXM7CiAgICAgZ3JhbnRfcmVmX3QgdHJhbnNfZ3JlZjsK LSAgICBpbnQgcmVsZWFzZWRfcmVhZDsKLSAgICBpbnQgcmVsZWFzZWRfd3Jp dGU7CiAgICAgc3RydWN0IGRvbWFpbiAqdGQ7CiAKLSAgICByZWxlYXNlZF9y ZWFkID0gMDsKLSAgICByZWxlYXNlZF93cml0ZSA9IDA7Ci0KICAgICBncmFu dF9yZWFkX2xvY2socmd0KTsKIAogICAgIGFjdCA9IGFjdGl2ZV9lbnRyeV9h Y3F1aXJlKHJndCwgZ3JlZik7CkBAIC0yMDkyLDE3ICsyMDg3LDExIEBAIF9f cmVsZWFzZV9ncmFudF9mb3JfY29weSgKIAogICAgICAgICBhY3QtPnBpbiAt PSBHTlRQSU5faHN0d19pbmM7CiAgICAgICAgIGlmICggIShhY3QtPnBpbiAm IChHTlRQSU5fZGV2d19tYXNrfEdOVFBJTl9oc3R3X21hc2spKSApCi0gICAg ICAgIHsKLSAgICAgICAgICAgIHJlbGVhc2VkX3dyaXRlID0gMTsKICAgICAg ICAgICAgIGdudHRhYl9jbGVhcl9mbGFnKF9HVEZfd3JpdGluZywgc3RhdHVz KTsKLSAgICAgICAgfQogICAgIH0KIAogICAgIGlmICggIWFjdC0+cGluICkK LSAgICB7CiAgICAgICAgIGdudHRhYl9jbGVhcl9mbGFnKF9HVEZfcmVhZGlu Zywgc3RhdHVzKTsKLSAgICAgICAgcmVsZWFzZWRfcmVhZCA9IDE7Ci0gICAg fQogCiAgICAgYWN0aXZlX2VudHJ5X3JlbGVhc2UoYWN0KTsKICAgICBncmFu dF9yZWFkX3VubG9jayhyZ3QpOwpAQCAtMjExMCwxMyArMjA5OSwxMCBAQCBf X3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkoCiAgICAgaWYgKCB0ZCAhPSByZCAp CiAgICAgewogICAgICAgICAvKgotICAgICAgICAgKiBSZWN1cnNpdmUgY2Fs bHMsIGJ1dCB0aGV5J3JlIGJvdW5kZWQgKGFjcXVpcmUgcGVybWl0cyBvbmx5 IGEgc2luZ2xlCisgICAgICAgICAqIFJlY3Vyc2l2ZSBjYWxsLCBidXQgaXQg aXMgYm91bmRlZCAoYWNxdWlyZSBwZXJtaXRzIG9ubHkgYSBzaW5nbGUKICAg ICAgICAgICogbGV2ZWwgb2YgdHJhbnNpdGl2aXR5KSwgc28gaXQncyBva2F5 LgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKCByZWxlYXNlZF93cml0ZSAp Ci0gICAgICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkodGQsIHRy YW5zX2dyZWYsIDApOwotICAgICAgICBlbHNlIGlmICggcmVsZWFzZWRfcmVh ZCApCi0gICAgICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkodGQs IHRyYW5zX2dyZWYsIDEpOworICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9y X2NvcHkodGQsIHRyYW5zX2dyZWYsIHJlYWRvbmx5KTsKIAogICAgICAgICBy Y3VfdW5sb2NrX2RvbWFpbih0ZCk7CiAgICAgfQpAQCAtMjE5MCw4ICsyMTc2 LDEwOCBAQCBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoCiAgICAgICAgICAg ICAgICAgIGFjdC0+ZG9taWQsIGxkb20sIGFjdC0+cGluKTsKIAogICAgIG9s ZF9waW4gPSBhY3QtPnBpbjsKLSAgICBpZiAoICFhY3QtPnBpbiB8fAotICAg ICAgICAgKCFyZWFkb25seSAmJiAhKGFjdC0+cGluICYgKEdOVFBJTl9kZXZ3 X21hc2t8R05UUElOX2hzdHdfbWFzaykpKSApCisgICAgaWYgKCBzaGEyICYm IChzaGFoLT5mbGFncyAmIEdURl90eXBlX21hc2spID09IEdURl90cmFuc2l0 aXZlICkKKyAgICB7CisgICAgICAgIGlmICggKCFvbGRfcGluIHx8ICghcmVh ZG9ubHkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICEob2xkX3Bp biAmIChHTlRQSU5fZGV2d19tYXNrfEdOVFBJTl9oc3R3X21hc2spKSkpICYm CisgICAgICAgICAgICAgKHJjID0gX3NldF9zdGF0dXNfdjIobGRvbSwgcmVh ZG9ubHksIDAsIHNoYWgsIGFjdCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGF0dXMpKSAhPSBHTlRTVF9va2F5ICkKKyAgICAgICAg ICAgIGdvdG8gdW5sb2NrX291dDsKKworICAgICAgICBpZiAoICFhbGxvd190 cmFuc2l0aXZlICkKKyAgICAgICAgICAgIFBJTl9GQUlMKHVubG9ja19vdXRf Y2xlYXIsIEdOVFNUX2dlbmVyYWxfZXJyb3IsCisgICAgICAgICAgICAgICAg ICAgICAidHJhbnNpdGl2ZSBncmFudCB3aGVuIHRyYW5zaXRpdml0eSBub3Qg YWxsb3dlZFxuIik7CisKKyAgICAgICAgdHJhbnNfZG9taWQgPSBzaGEyLT50 cmFuc2l0aXZlLnRyYW5zX2RvbWlkOworICAgICAgICB0cmFuc19ncmVmID0g c2hhMi0+dHJhbnNpdGl2ZS5ncmVmOworICAgICAgICBiYXJyaWVyKCk7IC8q IFN0b3AgdGhlIGNvbXBpbGVyIGZyb20gcmUtbG9hZGluZworICAgICAgICAg ICAgICAgICAgICAgIHRyYW5zX2RvbWlkIGZyb20gc2hhcmVkIG1lbW9yeSAq LworICAgICAgICBpZiAoIHRyYW5zX2RvbWlkID09IHJkLT5kb21haW5faWQg KQorICAgICAgICAgICAgUElOX0ZBSUwodW5sb2NrX291dF9jbGVhciwgR05U U1RfZ2VuZXJhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJ0cmFu c2l0aXZlIGdyYW50cyBjYW5ub3QgYmUgc2VsZi1yZWZlcmVudGlhbFxuIik7 CisKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgYWxsb3cgdGhlIHRyYW5z X2RvbWlkID09IGxkb20gY2FzZSwgd2hpY2ggY29ycmVzcG9uZHMgdG8gYQor ICAgICAgICAgKiBncmFudCBiZWluZyBpc3N1ZWQgYnkgb25lIGRvbWFpbiwg c2VudCB0byBhbm90aGVyIG9uZSwgYW5kIHRoZW4KKyAgICAgICAgICogdHJh bnNpdGl2ZWx5IGdyYW50ZWQgYmFjayB0byB0aGUgb3JpZ2luYWwgZG9tYWlu LiAgQWxsb3dpbmcgaXQKKyAgICAgICAgICogaXMgZWFzeSwgYW5kIG1lYW5z IHRoYXQgeW91IGRvbid0IG5lZWQgdG8gZ28gb3V0IG9mIHlvdXIgd2F5IHRv CisgICAgICAgICAqIGF2b2lkIGl0IGluIHRoZSBndWVzdC4KKyAgICAgICAg ICovCisKKyAgICAgICAgLyogV2UgbmVlZCB0byBsZWF2ZSB0aGUgcnJkIGxv Y2tlZCBkdXJpbmcgdGhlIGdyYW50IGNvcHkuICovCisgICAgICAgIHRkID0g cmN1X2xvY2tfZG9tYWluX2J5X2lkKHRyYW5zX2RvbWlkKTsKKyAgICAgICAg aWYgKCB0ZCA9PSBOVUxMICkKKyAgICAgICAgICAgIFBJTl9GQUlMKHVubG9j a19vdXRfY2xlYXIsIEdOVFNUX2dlbmVyYWxfZXJyb3IsCisgICAgICAgICAg ICAgICAgICAgICAidHJhbnNpdGl2ZSBncmFudCByZWZlcmVuY2VkIGJhZCBk b21haW4gJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICB0cmFuc19kb21p ZCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogX19hY3F1aXJlX2dyYW50 X2Zvcl9jb3B5KCkgY291bGQgdGFrZSB0aGUgbG9jayBvbiB0aGUKKyAgICAg ICAgICogcmVtb3RlIHRhYmxlIChpZiByZCA9PSB0ZCksIHNvIHdlIGhhdmUg dG8gZHJvcCB0aGUgbG9jaworICAgICAgICAgKiBoZXJlIGFuZCByZWFjcXVp cmUuCisgICAgICAgICAqLworICAgICAgICBhY3RpdmVfZW50cnlfcmVsZWFz ZShhY3QpOworICAgICAgICBncmFudF9yZWFkX3VubG9jayhyZ3QpOworCisg ICAgICAgIHJjID0gX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KHRkLCB0cmFu c19ncmVmLCByZC0+ZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZWFkb25seSwgJmdyYW50X2ZyYW1lLCBwYWdl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHJh bnNfcGFnZV9vZmYsICZ0cmFuc19sZW5ndGgsIDApOworCisgICAgICAgIGdy YW50X3JlYWRfbG9jayhyZ3QpOworICAgICAgICBhY3QgPSBhY3RpdmVfZW50 cnlfYWNxdWlyZShyZ3QsIGdyZWYpOworCisgICAgICAgIGlmICggcmMgIT0g R05UU1Rfb2theSApCisgICAgICAgIHsKKyAgICAgICAgICAgIF9fZml4dXBf c3RhdHVzX2Zvcl9jb3B5X3BpbihhY3QsIHN0YXR1cyk7CisgICAgICAgICAg ICByY3VfdW5sb2NrX2RvbWFpbih0ZCk7CisgICAgICAgICAgICBhY3RpdmVf ZW50cnlfcmVsZWFzZShhY3QpOworICAgICAgICAgICAgZ3JhbnRfcmVhZF91 bmxvY2socmd0KTsKKyAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAg fQorCisgICAgICAgIC8qCisgICAgICAgICAqIFdlIGRyb3BwZWQgdGhlIGxv Y2ssIHNvIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCB0aGUgZ3JhbnQgZGlkbid0 CisgICAgICAgICAqIGNoYW5nZSwgYW5kIHRoYXQgbm9ib2R5IGVsc2UgdHJp ZWQgdG8gcGluL3VucGluIGl0LiBJZiBhbnl0aGluZworICAgICAgICAgKiBj aGFuZ2VkLCBqdXN0IGdpdmUgdXAgYW5kIHRlbGwgdGhlIGNhbGxlciB0byBy ZXRyeS4KKyAgICAgICAgICovCisgICAgICAgIGlmICggcmd0LT5ndF92ZXJz aW9uICE9IDIgfHwKKyAgICAgICAgICAgICBhY3QtPnBpbiAhPSBvbGRfcGlu IHx8CisgICAgICAgICAgICAgKG9sZF9waW4gJiYgKGFjdC0+ZG9taWQgIT0g bGRvbSB8fCBhY3QtPmZyYW1lICE9IGdyYW50X2ZyYW1lIHx8CisgICAgICAg ICAgICAgICAgICAgICAgICAgIGFjdC0+c3RhcnQgIT0gdHJhbnNfcGFnZV9v ZmYgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0LT5sZW5ndGgg IT0gdHJhbnNfbGVuZ3RoIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAg IGFjdC0+dHJhbnNfZG9tYWluICE9IHRkIHx8CisgICAgICAgICAgICAgICAg ICAgICAgICAgIGFjdC0+dHJhbnNfZ3JlZiAhPSB0cmFuc19ncmVmIHx8Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICFhY3QtPmlzX3N1Yl9wYWdlKSkg KQorICAgICAgICB7CisgICAgICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9y X2NvcHkodGQsIHRyYW5zX2dyZWYsIHJlYWRvbmx5KTsKKyAgICAgICAgICAg IF9fZml4dXBfc3RhdHVzX2Zvcl9jb3B5X3BpbihhY3QsIHN0YXR1cyk7Cisg ICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbih0ZCk7CisgICAgICAgICAg ICBhY3RpdmVfZW50cnlfcmVsZWFzZShhY3QpOworICAgICAgICAgICAgZ3Jh bnRfcmVhZF91bmxvY2socmd0KTsKKyAgICAgICAgICAgIHB1dF9wYWdlKCpw YWdlKTsKKyAgICAgICAgICAgICpwYWdlID0gTlVMTDsKKyAgICAgICAgICAg IHJldHVybiBFUkVTVEFSVDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgg IW9sZF9waW4gKQorICAgICAgICB7CisgICAgICAgICAgICBhY3QtPmRvbWlk ID0gbGRvbTsKKyAgICAgICAgICAgIGFjdC0+c3RhcnQgPSB0cmFuc19wYWdl X29mZjsKKyAgICAgICAgICAgIGFjdC0+bGVuZ3RoID0gdHJhbnNfbGVuZ3Ro OworICAgICAgICAgICAgYWN0LT50cmFuc19kb21haW4gPSB0ZDsKKyAgICAg ICAgICAgIGFjdC0+dHJhbnNfZ3JlZiA9IHRyYW5zX2dyZWY7CisgICAgICAg ICAgICBhY3QtPmZyYW1lID0gZ3JhbnRfZnJhbWU7CisgICAgICAgICAgICBh Y3QtPmdmbiA9IC0xdWw7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAg ICogVGhlIGFjdHVhbCByZW1vdGUgcmVtb3RlIGdyYW50IG1heSBvciBtYXkg bm90IGJlIGEgc3ViLXBhZ2UsCisgICAgICAgICAgICAgKiBidXQgd2UgYWx3 YXlzIHRyZWF0IGl0IGFzIG9uZSBiZWNhdXNlIHRoYXQgYmxvY2tzIG1hcHBp bmdzIG9mCisgICAgICAgICAgICAgKiB0cmFuc2l0aXZlIGdyYW50cy4KKyAg ICAgICAgICAgICAqLworICAgICAgICAgICAgYWN0LT5pc19zdWJfcGFnZSA9 IDE7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAoICFvbGRfcGlu IHx8CisgICAgICAgICAgICAgICghcmVhZG9ubHkgJiYgIShvbGRfcGluICYg KEdOVFBJTl9kZXZ3X21hc2t8R05UUElOX2hzdHdfbWFzaykpKSApCiAgICAg ewogICAgICAgICBpZiAoIChyYyA9IF9zZXRfc3RhdHVzKHJndC0+Z3RfdmVy c2lvbiwgbGRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZWFkb25seSwgMCwgc2hhaCwgYWN0LApAQCAtMjIxMiw4MCArMjI5OCw2IEBA IF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAgICAgICAgICAgIHRyYW5z X3BhZ2Vfb2ZmID0gMDsKICAgICAgICAgICAgIHRyYW5zX2xlbmd0aCA9IFBB R0VfU0laRTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmICggKHNoYWgt PmZsYWdzICYgR1RGX3R5cGVfbWFzaykgPT0gR1RGX3RyYW5zaXRpdmUgKQot ICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoICFhbGxvd190cmFuc2l0aXZl ICkKLSAgICAgICAgICAgICAgICBQSU5fRkFJTCh1bmxvY2tfb3V0X2NsZWFy LCBHTlRTVF9nZW5lcmFsX2Vycm9yLAotICAgICAgICAgICAgICAgICAgICAg ICAgICJ0cmFuc2l0aXZlIGdyYW50IHdoZW4gdHJhbnNpdGl2aXR5IG5vdCBh bGxvd2VkXG4iKTsKLQotICAgICAgICAgICAgdHJhbnNfZG9taWQgPSBzaGEy LT50cmFuc2l0aXZlLnRyYW5zX2RvbWlkOwotICAgICAgICAgICAgdHJhbnNf Z3JlZiA9IHNoYTItPnRyYW5zaXRpdmUuZ3JlZjsKLSAgICAgICAgICAgIGJh cnJpZXIoKTsgLyogU3RvcCB0aGUgY29tcGlsZXIgZnJvbSByZS1sb2FkaW5n Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zX2RvbWlkIGZyb20g c2hhcmVkIG1lbW9yeSAqLwotICAgICAgICAgICAgaWYgKCB0cmFuc19kb21p ZCA9PSByZC0+ZG9tYWluX2lkICkKLSAgICAgICAgICAgICAgICBQSU5fRkFJ TCh1bmxvY2tfb3V0X2NsZWFyLCBHTlRTVF9nZW5lcmFsX2Vycm9yLAotICAg ICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2l0aXZlIGdyYW50cyBjYW5u b3QgYmUgc2VsZi1yZWZlcmVudGlhbFxuIik7Ci0KLSAgICAgICAgICAgIC8q IFdlIGFsbG93IHRoZSB0cmFuc19kb21pZCA9PSBsZG9tIGNhc2UsIHdoaWNo Ci0gICAgICAgICAgICAgICBjb3JyZXNwb25kcyB0byBhIGdyYW50IGJlaW5n IGlzc3VlZCBieSBvbmUgZG9tYWluLCBzZW50Ci0gICAgICAgICAgICAgICB0 byBhbm90aGVyIG9uZSwgYW5kIHRoZW4gdHJhbnNpdGl2ZWx5IGdyYW50ZWQg YmFjayB0bwotICAgICAgICAgICAgICAgdGhlIG9yaWdpbmFsIGRvbWFpbi4g IEFsbG93aW5nIGl0IGlzIGVhc3ksIGFuZCBtZWFucwotICAgICAgICAgICAg ICAgdGhhdCB5b3UgZG9uJ3QgbmVlZCB0byBnbyBvdXQgb2YgeW91ciB3YXkg dG8gYXZvaWQgaXQKLSAgICAgICAgICAgICAgIGluIHRoZSBndWVzdC4gKi8K LQotICAgICAgICAgICAgLyogV2UgbmVlZCB0byBsZWF2ZSB0aGUgcnJkIGxv Y2tlZCBkdXJpbmcgdGhlIGdyYW50IGNvcHkgKi8KLSAgICAgICAgICAgIHRk ID0gcmN1X2xvY2tfZG9tYWluX2J5X2lkKHRyYW5zX2RvbWlkKTsKLSAgICAg ICAgICAgIGlmICggdGQgPT0gTlVMTCApCi0gICAgICAgICAgICAgICAgUElO X0ZBSUwodW5sb2NrX291dF9jbGVhciwgR05UU1RfZ2VuZXJhbF9lcnJvciwK LSAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNpdGl2ZSBncmFudCBy ZWZlcmVuY2VkIGJhZCBkb21haW4gJWRcbiIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgdHJhbnNfZG9taWQpOwotCi0gICAgICAgICAgICAvKgotICAg ICAgICAgICAgICogX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KCkgY291bGQg dGFrZSB0aGUgbG9jayBvbiB0aGUKLSAgICAgICAgICAgICAqIHJlbW90ZSB0 YWJsZSAoaWYgcmQgPT0gdGQpLCBzbyB3ZSBoYXZlIHRvIGRyb3AgdGhlIGxv Y2sKLSAgICAgICAgICAgICAqIGhlcmUgYW5kIHJlYWNxdWlyZQotICAgICAg ICAgICAgICovCi0gICAgICAgICAgICBhY3RpdmVfZW50cnlfcmVsZWFzZShh Y3QpOwotICAgICAgICAgICAgZ3JhbnRfcmVhZF91bmxvY2socmd0KTsKLQot ICAgICAgICAgICAgcmMgPSBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkodGQs IHRyYW5zX2dyZWYsIHJkLT5kb21haW5faWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkb25seSwgJmdyYW50X2Zy YW1lLCBwYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnRyYW5zX3BhZ2Vfb2ZmLCAmdHJhbnNfbGVuZ3RoLCAwKTsK LQotICAgICAgICAgICAgZ3JhbnRfcmVhZF9sb2NrKHJndCk7Ci0gICAgICAg ICAgICBhY3QgPSBhY3RpdmVfZW50cnlfYWNxdWlyZShyZ3QsIGdyZWYpOwot Ci0gICAgICAgICAgICBpZiAoIHJjICE9IEdOVFNUX29rYXkgKQotICAgICAg ICAgICAgewotICAgICAgICAgICAgICAgIF9fZml4dXBfc3RhdHVzX2Zvcl9j b3B5X3BpbihhY3QsIHN0YXR1cyk7Ci0gICAgICAgICAgICAgICAgcmN1X3Vu bG9ja19kb21haW4odGQpOwotICAgICAgICAgICAgICAgIGFjdGl2ZV9lbnRy eV9yZWxlYXNlKGFjdCk7Ci0gICAgICAgICAgICAgICAgZ3JhbnRfcmVhZF91 bmxvY2socmd0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmM7Ci0gICAg ICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBX ZSBkcm9wcGVkIHRoZSBsb2NrLCBzbyB3ZSBoYXZlIHRvIGNoZWNrIHRoYXQg bm9ib2R5IGVsc2UgdHJpZWQKLSAgICAgICAgICAgICAqIHRvIHBpbiAob3Is IGZvciB0aGF0IG1hdHRlciwgdW5waW4pIHRoZSByZWZlcmVuY2UgaW4gKnRo aXMqCi0gICAgICAgICAgICAgKiBkb21haW4uICBJZiB0aGV5IGRpZCwganVz dCBnaXZlIHVwIGFuZCB0ZWxsIHRoZSBjYWxsZXIgdG8gcmV0cnkuCi0gICAg ICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmICggYWN0LT5waW4gIT0gb2xk X3BpbiApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgX19maXh1 cF9zdGF0dXNfZm9yX2NvcHlfcGluKGFjdCwgc3RhdHVzKTsKLSAgICAgICAg ICAgICAgICByY3VfdW5sb2NrX2RvbWFpbih0ZCk7Ci0gICAgICAgICAgICAg ICAgYWN0aXZlX2VudHJ5X3JlbGVhc2UoYWN0KTsKLSAgICAgICAgICAgICAg ICBncmFudF9yZWFkX3VubG9jayhyZ3QpOwotICAgICAgICAgICAgICAgIHB1 dF9wYWdlKCpwYWdlKTsKLSAgICAgICAgICAgICAgICAqcGFnZSA9IE5VTEw7 Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEVSRVNUQVJUOwotICAgICAgICAg ICAgfQotCi0gICAgICAgICAgICAvKiBUaGUgYWN0dWFsIHJlbW90ZSByZW1v dGUgZ3JhbnQgbWF5IG9yIG1heSBub3QgYmUgYQotICAgICAgICAgICAgICAg c3ViLXBhZ2UsIGJ1dCB3ZSBhbHdheXMgdHJlYXQgaXQgYXMgb25lIGJlY2F1 c2UgdGhhdAotICAgICAgICAgICAgICAgYmxvY2tzIG1hcHBpbmdzIG9mIHRy YW5zaXRpdmUgZ3JhbnRzLiAqLwotICAgICAgICAgICAgaXNfc3ViX3BhZ2Ug PSAxOwotICAgICAgICAgICAgYWN0LT5nZm4gPSAtMXVsOwotICAgICAgICB9 CiAgICAgICAgIGVsc2UgaWYgKCAhKHNoYTItPmhkci5mbGFncyAmIEdURl9z dWJfcGFnZSkgKQogICAgICAgICB7CiAgICAgICAgICAgICByYyA9IF9fZ2V0 X3BhZ2VkX2ZyYW1lKHNoYTItPmZ1bGxfcGFnZS5mcmFtZSwgJmdyYW50X2Zy YW1lLCBwYWdlLCByZWFkb25seSwgcmQpOwpAQCAtMjcxMCwxMCArMjcyMiwx MyBAQCBnbnR0YWJfc2V0X3ZlcnNpb24oWEVOX0dVRVNUX0hBTkRMRV9QQVJB CiAgICAgY2FzZSAyOgogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEdOVFRB Ql9OUl9SRVNFUlZFRF9FTlRSSUVTOyBpKysgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBpZiAoICgoc2hhcmVkX2VudHJ5X3YyKGd0LCBpKS5oZHIuZmxh Z3MgJiBHVEZfdHlwZV9tYXNrKSA9PQotICAgICAgICAgICAgICAgICAgR1RG X3Blcm1pdF9hY2Nlc3MpICYmCi0gICAgICAgICAgICAgICAgIChzaGFyZWRf ZW50cnlfdjIoZ3QsIGkpLmZ1bGxfcGFnZS5mcmFtZSA+PiAzMikgKQorICAg ICAgICAgICAgc3dpdGNoICggc2hhcmVkX2VudHJ5X3YyKGd0LCBpKS5oZHIu ZmxhZ3MgJiBHVEZfdHlwZV9tYXNrICkKICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgIGNhc2UgR1RGX3Blcm1pdF9hY2Nlc3M6CisgICAgICAgICAgICAg ICAgIGlmICggIShzaGFyZWRfZW50cnlfdjIoZ3QsIGkpLmZ1bGxfcGFnZS5m cmFtZSA+PiAzMikgKQorICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLworICAgICAgICAg ICAgY2FzZSBHVEZfdHJhbnNpdGl2ZToKICAgICAgICAgICAgICAgICBnZHBy aW50ayhYRU5MT0dfV0FSTklORywKICAgICAgICAgICAgICAgICAgICAgICAg ICAidHJpZWQgdG8gY2hhbmdlIGdyYW50IHRhYmxlIHZlcnNpb24gdG8gMSB3 aXRoIG5vbi1yZXByZXNlbnRhYmxlIGVudHJpZXNcbiIpOwogICAgICAgICAg ICAgICAgIHJlcyA9IC1FUkFOR0U7Cg== --=separator Content-Type: application/octet-stream; name="xsa226-4.5.patch" Content-Disposition: attachment; filename="xsa226-4.5.patch" Content-Transfer-Encoding: base64 RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KU3ViamVjdDogZ3JhbnRfdGFibGU6IERlZmF1bHQgdG8gdjEsIGFuZCBk aXNhbGxvdyB0cmFuc2l0aXZlIGdyYW50cwoKVGhlIHJlZmVyZW5jZSBjb3Vu dGluZyBhbmQgbG9ja2luZyBkaXNjaXBsaW5lIGZvciB0cmFuc2l0aXZlIGdy YW50cyBpcyBicm9rZW4uClRoZWlyIHVzZSBpcyB0aGVyZWZvcmUgZGVjbGFy ZWQgb3V0IG9mIHNlY3VyaXR5IHN1cHBvcnQuCgpUaGlzIGlzIFhTQS0yMjYu CgpUcmFuc2l0aXZlIGdyYW50cyBhcmUgZXhwZWN0ZWQgdG8gYmUgdW5jb25k aXRpb25hbGx5IGF2YWlsYWJsZSB3aXRoIGdyYW50CnRhYmxlIHYyLiAgSGlk aW5nIHRyYW5zaXRpdmUgZ3JhbnRzIGFsb25lIGlzIGFuIEFCSSBicmVha2Fn ZSBmb3IgdGhlIGd1ZXN0LgpNb2Rlcm4gdmVyc2lvbnMgb2YgTGludXggYW5k IHRoZSBXaW5kb3dzIFBWIGRyaXZlcnMgdXNlIGdyYW50IHRhYmxlIHYxLCBi dXQKb2xkZXIgdmVyc2lvbnMgZGlkIHVzZSB2Mi4KCkluIHByaW5jaXBsZSwg ZGlzYWJsaW5nIGdudHRhYiB2MiBlbnRpcmVseSBpcyB0aGUgc2FmZXIgd2F5 IHRvIGNhdXNlIGd1ZXN0cyB0bwphdm9pZCB1c2luZyB0cmFuc2l0aXZlIGdy YW50cy4gSG93ZXZlciwgc29tZSBvbGRlciBndWVzdHMgd2hpY2ggZGVmYXVs dGVkIHRvCnVzaW5nIGdudHRhYiB2MiBkb24ndCB0b2xlcmF0ZSBmYWxsaW5n IGJhY2sgZnJvbSB2MiB0byB2MSBvdmVyIG1pZ3JhdGUuCgpUaGlzIHBhdGNo IGludHJvZHVjZXMgYSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBjb250 cm9sIGdyYW50IHRhYmxlCmJlaGF2aW91ci4gIE9uZSBzdWJvcHRpb24gYWxs b3dzIGEgY2hvaWNlIG9mIHRoZSBtYXhpbXVtIGdyYW50IHRhYmxlIHZlcnNp b24KWGVuIHdpbGwgYWxsb3cgdGhlIGd1ZXN0IHRvIHVzZSwgYW5kIGRlZmF1 bHRzIHRvIHYyLiAgQSBkaWZmZXJlbnQgc3Vib3B0aW9uCmluZGVwZW5kZW50 bHkgY29udHJvbHMgd2hldGhlciB0cmFuc2l0aXZlIGdyYW50cyBjYW4gYmUg dXNlZC4KClRoZSBkZWZhdWx0IGNhc2UgaXM6CgogICAgZ250dGFiPW1heF92 ZXI6MgoKVG8gZGlzYWJsZSBnbnR0YWIgdjIgZW50aXJlbHksIHVzZToKCiAg ICBnbnR0YWI9bWF4X3ZlcjoxCgpUbyBhbGxvdyBnbnR0YWIgdjIgYW5kIHRy YW5zaXRpdmUgZ3JhbnRzLCB1c2U6CgogICAgZ250dGFiPW1heF92ZXI6Mix0 cmFuc2l0aXZlCgpSZXBvcnRlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNo QHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgpkaWZmIC0tZ2l0IGEvZG9jcy9taXNj L3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93bgppbmRleCAxNmJmYjM5Li4zOTM2MzE2IDEw MDY0NAotLS0gYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93 bgorKysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgpA QCAtNjYyLDYgKzY2MiwyMiBAQCBkb2VzIG5vdCBwcm92aWRlIFZNXF9FTlRS WVxfTE9BRFxfR1VFU1RcX1BBVC4KIAogU3BlY2lmeSB0aGUgc2VyaWFsIHBh cmFtZXRlcnMgZm9yIHRoZSBHREIgc3R1Yi4KIAorIyMjIGdudHRhYgorPiBg PSBMaXN0IG9mIFsgbWF4X3Zlcjo8aW50ZWdlcj4sIHRyYW5zaXRpdmUgXWAK KworPiBEZWZhdWx0OiBgZ250dGFiPW1heF92ZXI6Mixuby10cmFuc2l0aXZl YAorCitDb250cm9sIHZhcmlvdXMgYXNwZWN0cyBvZiB0aGUgZ3JhbnQgdGFi bGUgYmVoYXZpb3VyIGF2YWlsYWJsZSB0byBndWVzdHMuCisKKyogYG1heF92 ZXJgIFNlbGVjdCB0aGUgbWF4aW11bSBncmFudCB0YWJsZSB2ZXJzaW9uIHRv IG9mZmVyIHRvIGd1ZXN0cy4gIFZhbGlkCit2ZXJzaW9uIGFyZSAxIGFuZCAy LgorKiBgdHJhbnNpdGl2ZWAgUGVybWl0IG9yIGRpc2FsbG93IHRoZSB1c2Ug b2YgdHJhbnNpdGl2ZSBncmFudHMuICBOb3RlIHRoYXQgdGhlCit1c2Ugb2Yg Z3JhbnQgdGFibGUgdjIgd2l0aG91dCB0cmFuc2l0aXZlIGdyYW50cyBpcyBh biBBQkkgYnJlYWthZ2UgZnJvbSB0aGUKK2d1ZXN0cyBwb2ludCBvZiB2aWV3 LgorCisqV2FybmluZzoqCitEdWUgdG8gWFNBLTIyNiwgdGhlIHVzZSBvZiB0 cmFuc2l0aXZlIGdyYW50cyBpcyBvdXRzaWRlIG9mIHNlY3VyaXR5IHN1cHBv cnQuCisKICMjIyBnbnR0YWJcX21heFxfZnJhbWVzCiA+IGA9IDxpbnRlZ2Vy PmAKIApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIv eGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCmluZGV4IDgzYTRiOWUuLmM5YTZj ZDkgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYworKysg Yi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKQEAgLTUwLDYgKzUwLDQyIEBA IGludGVnZXJfcGFyYW0oImdudHRhYl9tYXhfbnJfZnJhbWVzIiwgbWF4X25y X2dyYW50X2ZyYW1lcyk7CiB1bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSBt YXhfZ3JhbnRfZnJhbWVzOwogaW50ZWdlcl9wYXJhbSgiZ250dGFiX21heF9m cmFtZXMiLCBtYXhfZ3JhbnRfZnJhbWVzKTsKIAorc3RhdGljIHVuc2lnbmVk IGludCBfX3JlYWRfbW9zdGx5IG9wdF9nbnR0YWJfbWF4X3ZlcnNpb24gPSAy Oworc3RhdGljIGJvb2xfdCBfX3JlYWRfbW9zdGx5IG9wdF90cmFuc2l0aXZl X2dyYW50czsKKworc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX2dudHRhYihj aGFyICpzKQoreworICAgIGNoYXIgKnNzOworCisgICAgZG8geworICAgICAg ICBzcyA9IHN0cmNocihzLCAnLCcpOworICAgICAgICBpZiAoIHNzICkKKyAg ICAgICAgICAgICpzcyA9ICdcMCc7CisKKyAgICAgICAgaWYgKCAhc3RybmNt cChzLCAibWF4X3ZlcjoiLCA4KSApCisgICAgICAgIHsKKyAgICAgICAgICAg IGxvbmcgdmVyID0gc2ltcGxlX3N0cnRvbChzICsgOCwgTlVMTCwgMTApOwor CisgICAgICAgICAgICBpZiAoIHZlciA+PSAxICYmIHZlciA8PSAyICkKKyAg ICAgICAgICAgICAgICBvcHRfZ250dGFiX21heF92ZXJzaW9uID0gdmVyOwor ICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAg ICAgYm9vbF90IHZhbCA9ICEhc3RybmNtcChzLCAibm8tIiwgMyk7CisKKyAg ICAgICAgICAgIGlmICggIXZhbCApCisgICAgICAgICAgICAgICAgcyArPSAz OworCisgICAgICAgICAgICBpZiAoICFzdHJjbXAocywgInRyYW5zaXRpdmUi KSApCisgICAgICAgICAgICAgICAgb3B0X3RyYW5zaXRpdmVfZ3JhbnRzID0g dmFsOworICAgICAgICB9CisKKyAgICAgICAgcyA9IHNzICsgMTsKKyAgICB9 IHdoaWxlICggc3MgKTsKK30KKworY3VzdG9tX3BhcmFtKCJnbnR0YWIiLCBw YXJzZV9nbnR0YWIpOworCiAvKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZ3Jh bnQgbWFwcGluZ3MgaXMgZGVmaW5lZCBhcyBhIG11bHRpcGxpZXIgb2YgdGhl CiAgKiBtYXhpbXVtIG51bWJlciBvZiBncmFudCB0YWJsZSBlbnRyaWVzLiBU aGlzIGRlZmluZXMgdGhlIG11bHRpcGxpZXIgdXNlZC4KICAqIFByZXR0eSBh cmJpdHJhcnkuIFtQT0xJQ1ldCkBAIC0xOTU4LDYgKzE5OTQsMTAgQEAgX19h Y3F1aXJlX2dyYW50X2Zvcl9jb3B5KAogICAgICAgICB0cmFuc19ncmVmID0g Z3JlZjsKICAgICAgICAgaWYgKCBzaGEyICYmIChzaGFoLT5mbGFncyAmIEdU Rl90eXBlX21hc2spID09IEdURl90cmFuc2l0aXZlICkKICAgICAgICAgewor ICAgICAgICAgICAgaWYgKCAhb3B0X3RyYW5zaXRpdmVfZ3JhbnRzICkKKyAg ICAgICAgICAgICAgICBQSU5fRkFJTCh1bmxvY2tfb3V0X2NsZWFyLCBHTlRT VF9nZW5lcmFsX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ0 cmFuc2l0aXZlIGdyYW50IGRpc2FsbG93ZWQgYnkgcG9saWN5XG4iKTsKKwog ICAgICAgICAgICAgaWYgKCAhYWxsb3dfdHJhbnNpdGl2ZSApCiAgICAgICAg ICAgICAgICAgUElOX0ZBSUwodW5sb2NrX291dF9jbGVhciwgR05UU1RfZ2Vu ZXJhbF9lcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNp dGl2ZSBncmFudCB3aGVuIHRyYW5zaXRpdml0eSBub3QgYWxsb3dlZFxuIik7 CkBAIC0yNzQxLDcgKzI3ODEsMTAgQEAgZG9fZ3JhbnRfdGFibGVfb3AoCiAg ICAgfQogICAgIGNhc2UgR05UVEFCT1Bfc2V0X3ZlcnNpb246CiAgICAgewot ICAgICAgICByYyA9IGdudHRhYl9zZXRfdmVyc2lvbihndWVzdF9oYW5kbGVf Y2FzdCh1b3AsIGdudHRhYl9zZXRfdmVyc2lvbl90KSk7CisgICAgICAgIGlm ICggb3B0X2dudHRhYl9tYXhfdmVyc2lvbiA9PSAxICkKKyAgICAgICAgICAg IHJjID0gLUVOT1NZUzsgLyogQmVoYXZlIGFzIGJlZm9yZSBzZXRfdmVyc2lv biB3YXMgaW50cm9kdWNlZC4gKi8KKyAgICAgICAgZWxzZQorICAgICAgICAg ICAgcmMgPSBnbnR0YWJfc2V0X3ZlcnNpb24oZ3Vlc3RfaGFuZGxlX2Nhc3Qo dW9wLCBnbnR0YWJfc2V0X3ZlcnNpb25fdCkpOwogICAgICAgICBicmVhazsK ICAgICB9CiAgICAgY2FzZSBHTlRUQUJPUF9nZXRfc3RhdHVzX2ZyYW1lczoK --=separator Content-Type: application/octet-stream; name="xsa226-4.5/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch" Content-Disposition: attachment; filename="xsa226-4.5/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGRvbid0IHVzZSBwb3NzaWJseSB1bmJvdW5kZWQgdGFpbCBj YWxscwoKVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgdGhlIGNvbXBpbGVy IHdvdWxkIGFjdHVhbGx5IHRyYW5zbGF0ZSB0aGVtCnRvIGJyYW5jaGVzIGlu c3RlYWQgb2YgY2FsbHMsIHNvIG9ubHkgb25lcyB3aXRoIGEga25vd24gcmVj dXJzaW9uIGxpbWl0CmFyZSBva2F5OgotIF9fcmVsZWFzZV9ncmFudF9mb3Jf Y29weSgpIGNhbiBjYWxsIGl0c2VsZiBvbmx5IG9uY2UsIGFzCiAgX19hY3F1 aXJlX2dyYW50X2Zvcl9jb3B5KCkgd29uJ3QgcGVybWl0IHVzZSBvZiBtdWx0 aS1sZXZlbCB0cmFuc2l0aXZlCiAgZ3JhbnRzLAotIF9fYWNxdWlyZV9ncmFu dF9mb3JfY29weSgpIGlzIGZpbmUgdG8gY2FsbCBpdHNlbGYgd2l0aCB0aGUg bGFzdAogIGFyZ3VtZW50IGZhbHNlLCBhcyB0aGF0IHByZXZlbnRzIGZ1cnRo ZXIgcmVjdXJzaW9uLAotIF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSgpIG11 c3Qgbm90IGNhbGwgaXRzZWxmIHRvIHJlY292ZXIgZnJvbSBhbgogIG9ic2Vy dmVkIGNoYW5nZSB0byB0aGUgYWN0aXZlIGVudHJ5J3MgcGluIGNvdW50CgpU aGlzIGlzIHBhcnQgb2YgQ1ZFLTIwMTctMTIxMzUgLyBYU0EtMjI2LgoKU2ln bmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoK LS0tIGEveGVuL2NvbW1vbi9jb21wYXQvZ3JhbnRfdGFibGUuYworKysgYi94 ZW4vY29tbW9uL2NvbXBhdC9ncmFudF90YWJsZS5jCkBAIC0yNTgsOSArMjU4 LDkgQEAgaW50IGNvbXBhdF9ncmFudF90YWJsZV9vcCh1bnNpZ25lZCBpbnQg Y21kLAogICAgICAgICAgICAgICAgIHJjID0gZ250dGFiX2NvcHkoZ3Vlc3Rf aGFuZGxlX2Nhc3QobmF0LnVvcCwgZ250dGFiX2NvcHlfdCksIG4pOwogICAg ICAgICAgICAgaWYgKCByYyA+IDAgKQogICAgICAgICAgICAgewotICAgICAg ICAgICAgICAgIEFTU0VSVChyYyA8IG4pOwotICAgICAgICAgICAgICAgIGkg LT0gbiAtIHJjOwotICAgICAgICAgICAgICAgIG4gPSByYzsKKyAgICAgICAg ICAgICAgICBBU1NFUlQocmMgPD0gbik7CisgICAgICAgICAgICAgICAgaSAt PSByYzsKKyAgICAgICAgICAgICAgICBuIC09IHJjOwogICAgICAgICAgICAg fQogICAgICAgICAgICAgaWYgKCByYyA+PSAwICkKICAgICAgICAgICAgIHsK LS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hlbi9jb21t b24vZ3JhbnRfdGFibGUuYwpAQCAtMTg2MCw4ICsxODYwLDEwIEBAIF9fcmVs ZWFzZV9ncmFudF9mb3JfY29weSgKIAogICAgIGlmICggdGQgIT0gcmQgKQog ICAgIHsKLSAgICAgICAgLyogUmVjdXJzaXZlIGNhbGxzLCBidXQgdGhleSdy ZSB0YWlsIGNhbGxzLCBzbyBpdCdzCi0gICAgICAgICAgIG9rYXkuICovCisg ICAgICAgIC8qCisgICAgICAgICAqIFJlY3Vyc2l2ZSBjYWxscywgYnV0IHRo ZXkncmUgYm91bmRlZCAoYWNxdWlyZSBwZXJtaXRzIG9ubHkgYSBzaW5nbGUK KyAgICAgICAgICogbGV2ZWwgb2YgdHJhbnNpdGl2aXR5KSwgc28gaXQncyBv a2F5LgorICAgICAgICAgKi8KICAgICAgICAgaWYgKCByZWxlYXNlZF93cml0 ZSApCiAgICAgICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkodGQs IHRyYW5zX2dyZWYsIDApOwogICAgICAgICBlbHNlIGlmICggcmVsZWFzZWRf cmVhZCApCkBAIC0xOTk3LDE5ICsxOTk5LDE5IEBAIF9fYWNxdWlyZV9ncmFu dF9mb3JfY29weSgKICAgICAgICAgICAgICAgICByZXR1cm4gcmM7CiAgICAg ICAgICAgICB9CiAKLSAgICAgICAgICAgIC8qIFdlIGRyb3BwZWQgdGhlIGxv Y2ssIHNvIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBub2JvZHkKLSAgICAgICAg ICAgICAgIGVsc2UgdHJpZWQgdG8gcGluIChvciwgZm9yIHRoYXQgbWF0dGVy LCB1bnBpbikgdGhlCi0gICAgICAgICAgICAgICByZWZlcmVuY2UgaW4gKnRo aXMqIGRvbWFpbi4gIElmIHRoZXkgZGlkLCBqdXN0IGdpdmUgdXAKLSAgICAg ICAgICAgICAgIGFuZCB0cnkgYWdhaW4uICovCisgICAgICAgICAgICAvKgor ICAgICAgICAgICAgICogV2UgZHJvcHBlZCB0aGUgbG9jaywgc28gd2UgaGF2 ZSB0byBjaGVjayB0aGF0IG5vYm9keSBlbHNlIHRyaWVkCisgICAgICAgICAg ICAgKiB0byBwaW4gKG9yLCBmb3IgdGhhdCBtYXR0ZXIsIHVucGluKSB0aGUg cmVmZXJlbmNlIGluICp0aGlzKgorICAgICAgICAgICAgICogZG9tYWluLiAg SWYgdGhleSBkaWQsIGp1c3QgZ2l2ZSB1cCBhbmQgdGVsbCB0aGUgY2FsbGVy IHRvIHJldHJ5LgorICAgICAgICAgICAgICovCiAgICAgICAgICAgICBpZiAo IGFjdC0+cGluICE9IG9sZF9waW4gKQogICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgIF9fZml4dXBfc3RhdHVzX2Zvcl9jb3B5X3BpbihhY3QsIHN0 YXR1cyk7CiAgICAgICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4odGQp OwogICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZyZ3QtPmxvY2spOwog ICAgICAgICAgICAgICAgIHB1dF9wYWdlKCpwYWdlKTsKLSAgICAgICAgICAg ICAgICByZXR1cm4gX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KHJkLCBncmVm LCBsZG9tLCByZWFkb25seSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLCBwYWdlLCBwYWdlX29mZiwg bGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWxsb3dfdHJhbnNpdGl2ZSk7CisgICAgICAgICAgICAg ICAgKnBhZ2UgPSBOVUxMOworICAgICAgICAgICAgICAgIHJldHVybiBFUkVT VEFSVDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLyogVGhlIGFj dHVhbCByZW1vdGUgcmVtb3RlIGdyYW50IG1heSBvciBtYXkgbm90IGJlIGEK QEAgLTIwODksNyArMjA5MSw3IEBAIF9fYWNxdWlyZV9ncmFudF9mb3JfY29w eSgKICAgICByZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMg Ym9vbF90CiBfX2dudHRhYl9jb3B5KAogICAgIHN0cnVjdCBnbnR0YWJfY29w eSAqb3ApCiB7CkBAIC0yMjEzLDkgKzIyMTUsMjAgQEAgX19nbnR0YWJfY29w eSgKICAgICAgICAgcmN1X3VubG9ja19kb21haW4oc2QpOwogICAgIGlmICgg ZGQgKQogICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihkZCk7CisgICAgaWYg KCByYyA+IDAgKQorICAgICAgICByZXR1cm4gMDsKICAgICBvcC0+c3RhdHVz ID0gcmM7CisgICAgcmV0dXJuIDE7CiB9CiAKKy8qCisgKiBnbnR0YWJfY29w eSgpLCBvdGhlciB0aGFuIHRoZSB2YXJpb3VzIG90aGVyIGhlbHBlcnMgb2YK KyAqIGRvX2dyYW50X3RhYmxlX29wKCksIHJldHVybnMgKGJlc2lkZXMgcG9z c2libGUgZXJyb3IgaW5kaWNhdG9ycykKKyAqICJjb3VudCAtIGkiIHJhdGhl ciB0aGFuICJpIiB0byBlbnN1cmUgdGhhdCBldmVuIGlmIG5vIHByb2dyZXNz CisgKiB3YXMgbWFkZSBhdCBhbGwgKHBlcmhhcHMgZHVlIHRvIGdudHRhYl9j b3B5X29uZSgpIHJldHVybmluZyBhCisgKiBwb3NpdGl2ZSB2YWx1ZSkgYSBu b24temVybyB2YWx1ZSBpcyBiZWluZyBoYW5kZWQgYmFjayAoemVybyBuZWVk cworICogdG8gYmUgYXZvaWRlZCwgYXMgdGhhdCBtZWFucyAic3VjY2Vzcywg YWxsIGRvbmUiKS4KKyAqLwogc3RhdGljIGxvbmcKIGdudHRhYl9jb3B5KAog ICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oZ250dGFiX2NvcHlfdCkgdW9w LCB1bnNpZ25lZCBpbnQgY291bnQpCkBAIC0yMjI2LDEwICsyMjM5LDExIEBA IGdudHRhYl9jb3B5KAogICAgIGZvciAoIGkgPSAwOyBpIDwgY291bnQ7IGkr KyApCiAgICAgewogICAgICAgICBpZiAoaSAmJiBoeXBlcmNhbGxfcHJlZW1w dF9jaGVjaygpKQotICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgICAg ICByZXR1cm4gY291bnQgLSBpOwogICAgICAgICBpZiAoIHVubGlrZWx5KF9f Y29weV9mcm9tX2d1ZXN0KCZvcCwgdW9wLCAxKSkgKQogICAgICAgICAgICAg cmV0dXJuIC1FRkFVTFQ7Ci0gICAgICAgIF9fZ250dGFiX2NvcHkoJm9wKTsK KyAgICAgICAgaWYgKCAhX19nbnR0YWJfY29weSgmb3ApICkKKyAgICAgICAg ICAgIHJldHVybiBjb3VudCAtIGk7CiAgICAgICAgIGlmICggdW5saWtlbHko X19jb3B5X2ZpZWxkX3RvX2d1ZXN0KHVvcCwgJm9wLCBzdGF0dXMpKSApCiAg ICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKICAgICAgICAgZ3Vlc3RfaGFu ZGxlX2FkZF9vZmZzZXQodW9wLCAxKTsKQEAgLTI3MjcsNiArMjc0MSw3IEBA IGRvX2dyYW50X3RhYmxlX29wKAogICAgICAgICByYyA9IGdudHRhYl9jb3B5 KGNvcHksIGNvdW50KTsKICAgICAgICAgaWYgKCByYyA+IDAgKQogICAgICAg ICB7CisgICAgICAgICAgICByYyA9IGNvdW50IC0gcmM7CiAgICAgICAgICAg ICBndWVzdF9oYW5kbGVfYWRkX29mZnNldChjb3B5LCByYyk7CiAgICAgICAg ICAgICB1b3AgPSBndWVzdF9oYW5kbGVfY2FzdChjb3B5LCB2b2lkKTsKICAg ICAgICAgfQo= --=separator Content-Type: application/octet-stream; name="xsa226-4.5/0002-gnttab-fix-transitive-grant-handling.patch" Content-Disposition: attachment; filename="xsa226-4.5/0002-gnttab-fix-transitive-grant-handling.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGZpeCB0cmFuc2l0aXZlIGdyYW50IGhhbmRsaW5nCgpQcm9j ZXNzaW5nIG9mIHRyYW5zaXRpdmUgZ3JhbnRzIG11c3Qgbm90IHVzZSB0aGUg ZmFzdCBwYXRoLCBvciBlbHNlCnJlZmVyZW5jZSBjb3VudGluZyBicmVha3Mg ZHVlIHRvIHRoZSBza2lwcGVkIHJlY3Vyc2l2ZSBjYWxsIHRvCl9fYWNxdWly ZV9ncmFudF9mb3JfY29weSgpIChpdHMgX19yZWxlYXNlX2dyYW50X2Zvcl9j b3B5KCkKY291bnRlcnBhcnQgb2NjdXJzIGluZGVwZW5kZW50IG9mIG9yaWdp bmFsIHBpbiBjb3VudCkuIEZ1cnRoZXJtb3JlCmFmdGVyIHJlLWFjcXVpcmlu ZyB0ZW1wb3JhcmlseSBkcm9wcGVkIGxvY2tzIHdlIG5lZWQgdG8gdmVyaWZ5 IG5vIGdyYW50CnByb3BlcnRpZXMgY2hhbmdlZCBpZiB0aGUgb3JpZ2luYWwg cGluIGNvdW50IHdhcyBub24temVybzsgY2hlY2tpbmcKanVzdCB0aGUgcGlu IGNvdW50cyBpcyBzdWZmaWNpZW50IG9ubHkgZm9yIHdlbGwtYmVoYXZlZCBn dWVzdHMuIEFzIGEKcmVzdWx0LCBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHko KSBuZWVkcyB0byBtaXJyb3IgdGhhdCBuZXcgYmVoYXZpb3IuCgpGdXJ0aGVy bW9yZSBhIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSgpIGludm9jYXRpb24g d2FzIG1pc3Npbmcgb24gdGhlCnJldHJ5IHBhdGggb2YgX19hY3F1aXJlX2dy YW50X2Zvcl9jb3B5KCksIGFuZCBnbnR0YWJfc2V0X3ZlcnNpb24oKSBhbHNv Cm5lZWRzIHRvIGJhaWwgb3V0IHVwb24gZW5jb3VudGVyaW5nIGEgdHJhbnNp dGl2ZSBncmFudC4KClRoaXMgaXMgcGFydCBvZiBDVkUtMjAxNy0xMjEzNSAv IFhTQS0yMjYuCgpSZXBvcnRlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCi0tLSBhL3hlbi9j b21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMKQEAgLTE4MDgsMTMgKzE4MDgsOCBAQCBfX3JlbGVhc2VfZ3JhbnRf Zm9yX2NvcHkoCiAgICAgdW5zaWduZWQgbG9uZyByX2ZyYW1lOwogICAgIHVp bnQxNl90ICpzdGF0dXM7CiAgICAgZ3JhbnRfcmVmX3QgdHJhbnNfZ3JlZjsK LSAgICBpbnQgcmVsZWFzZWRfcmVhZDsKLSAgICBpbnQgcmVsZWFzZWRfd3Jp dGU7CiAgICAgc3RydWN0IGRvbWFpbiAqdGQ7CiAKLSAgICByZWxlYXNlZF9y ZWFkID0gMDsKLSAgICByZWxlYXNlZF93cml0ZSA9IDA7Ci0KICAgICBzcGlu X2xvY2soJnJndC0+bG9jayk7CiAKICAgICBhY3QgPSAmYWN0aXZlX2VudHJ5 KHJndCwgZ3JlZik7CkBAIC0xODQ0LDMwICsxODM5LDIxIEBAIF9fcmVsZWFz ZV9ncmFudF9mb3JfY29weSgKIAogICAgICAgICBhY3QtPnBpbiAtPSBHTlRQ SU5faHN0d19pbmM7CiAgICAgICAgIGlmICggIShhY3QtPnBpbiAmIChHTlRQ SU5fZGV2d19tYXNrfEdOVFBJTl9oc3R3X21hc2spKSApCi0gICAgICAgIHsK LSAgICAgICAgICAgIHJlbGVhc2VkX3dyaXRlID0gMTsKICAgICAgICAgICAg IGdudHRhYl9jbGVhcl9mbGFnKF9HVEZfd3JpdGluZywgc3RhdHVzKTsKLSAg ICAgICAgfQogICAgIH0KIAogICAgIGlmICggIWFjdC0+cGluICkKLSAgICB7 CiAgICAgICAgIGdudHRhYl9jbGVhcl9mbGFnKF9HVEZfcmVhZGluZywgc3Rh dHVzKTsKLSAgICAgICAgcmVsZWFzZWRfcmVhZCA9IDE7Ci0gICAgfQogCiAg ICAgc3Bpbl91bmxvY2soJnJndC0+bG9jayk7CiAKICAgICBpZiAoIHRkICE9 IHJkICkKICAgICB7CiAgICAgICAgIC8qCi0gICAgICAgICAqIFJlY3Vyc2l2 ZSBjYWxscywgYnV0IHRoZXkncmUgYm91bmRlZCAoYWNxdWlyZSBwZXJtaXRz IG9ubHkgYSBzaW5nbGUKKyAgICAgICAgICogUmVjdXJzaXZlIGNhbGwsIGJ1 dCBpdCBpcyBib3VuZGVkIChhY3F1aXJlIHBlcm1pdHMgb25seSBhIHNpbmds ZQogICAgICAgICAgKiBsZXZlbCBvZiB0cmFuc2l0aXZpdHkpLCBzbyBpdCdz IG9rYXkuCiAgICAgICAgICAqLwotICAgICAgICBpZiAoIHJlbGVhc2VkX3dy aXRlICkKLSAgICAgICAgICAgIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSh0 ZCwgdHJhbnNfZ3JlZiwgMCk7Ci0gICAgICAgIGVsc2UgaWYgKCByZWxlYXNl ZF9yZWFkICkKLSAgICAgICAgICAgIF9fcmVsZWFzZV9ncmFudF9mb3JfY29w eSh0ZCwgdHJhbnNfZ3JlZiwgMSk7CisgICAgICAgIF9fcmVsZWFzZV9ncmFu dF9mb3JfY29weSh0ZCwgdHJhbnNfZ3JlZiwgcmVhZG9ubHkpOwogCiAgICAg ICAgIHJjdV91bmxvY2tfZG9tYWluKHRkKTsKICAgICB9CkBAIC0xOTQ4LDc5 ICsxOTM0LDExMyBAQCBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoCiAgICAg ICAgICAgICAgICAgIGFjdC0+ZG9taWQsIGxkb20sIGFjdC0+cGluKTsKIAog ICAgIG9sZF9waW4gPSBhY3QtPnBpbjsKLSAgICBpZiAoICFhY3QtPnBpbiB8 fAotICAgICAgICAgKCFyZWFkb25seSAmJiAhKGFjdC0+cGluICYgKEdOVFBJ Tl9kZXZ3X21hc2t8R05UUElOX2hzdHdfbWFzaykpKSApCisgICAgaWYgKCBz aGEyICYmIChzaGFoLT5mbGFncyAmIEdURl90eXBlX21hc2spID09IEdURl90 cmFuc2l0aXZlICkKICAgICB7Ci0gICAgICAgIGlmICggKHJjID0gX3NldF9z dGF0dXMocmd0LT5ndF92ZXJzaW9uLCBsZG9tLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlYWRvbmx5LCAwLCBzaGFoLCBhY3QsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzKSApICE9IEdOVFNU X29rYXkgKQotICAgICAgICAgICAgIGdvdG8gdW5sb2NrX291dDsKKyAgICAg ICAgaWYgKCAoIW9sZF9waW4gfHwgKCFyZWFkb25seSAmJgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIShvbGRfcGluICYgKEdOVFBJTl9kZXZ3X21h c2t8R05UUElOX2hzdHdfbWFzaykpKSkgJiYKKyAgICAgICAgICAgICAocmMg PSBfc2V0X3N0YXR1c192MihsZG9tLCByZWFkb25seSwgMCwgc2hhaCwgYWN0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cykp ICE9IEdOVFNUX29rYXkgKQorICAgICAgICAgICAgZ290byB1bmxvY2tfb3V0 OworCisgICAgICAgIGlmICggIWFsbG93X3RyYW5zaXRpdmUgKQorICAgICAg ICAgICAgUElOX0ZBSUwodW5sb2NrX291dF9jbGVhciwgR05UU1RfZ2VuZXJh bF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2l0aXZlIGdy YW50IHdoZW4gdHJhbnNpdGl2aXR5IG5vdCBhbGxvd2VkXG4iKTsKKworICAg ICAgICB0cmFuc19kb21pZCA9IHNoYTItPnRyYW5zaXRpdmUudHJhbnNfZG9t aWQ7CisgICAgICAgIHRyYW5zX2dyZWYgPSBzaGEyLT50cmFuc2l0aXZlLmdy ZWY7CisgICAgICAgIGJhcnJpZXIoKTsgLyogU3RvcCB0aGUgY29tcGlsZXIg ZnJvbSByZS1sb2FkaW5nCisgICAgICAgICAgICAgICAgICAgICAgdHJhbnNf ZG9taWQgZnJvbSBzaGFyZWQgbWVtb3J5ICovCisgICAgICAgIGlmICggdHJh bnNfZG9taWQgPT0gcmQtPmRvbWFpbl9pZCApCisgICAgICAgICAgICBQSU5f RkFJTCh1bmxvY2tfb3V0X2NsZWFyLCBHTlRTVF9nZW5lcmFsX2Vycm9yLAor ICAgICAgICAgICAgICAgICAgICAgInRyYW5zaXRpdmUgZ3JhbnRzIGNhbm5v dCBiZSBzZWxmLXJlZmVyZW50aWFsXG4iKTsKIAotICAgICAgICB0ZCA9IHJk OwotICAgICAgICB0cmFuc19ncmVmID0gZ3JlZjsKLSAgICAgICAgaWYgKCBz aGEyICYmIChzaGFoLT5mbGFncyAmIEdURl90eXBlX21hc2spID09IEdURl90 cmFuc2l0aXZlICkKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgYWxsb3cg dGhlIHRyYW5zX2RvbWlkID09IGxkb20gY2FzZSwgd2hpY2ggY29ycmVzcG9u ZHMgdG8gYQorICAgICAgICAgKiBncmFudCBiZWluZyBpc3N1ZWQgYnkgb25l IGRvbWFpbiwgc2VudCB0byBhbm90aGVyIG9uZSwgYW5kIHRoZW4KKyAgICAg ICAgICogdHJhbnNpdGl2ZWx5IGdyYW50ZWQgYmFjayB0byB0aGUgb3JpZ2lu YWwgZG9tYWluLiAgQWxsb3dpbmcgaXQKKyAgICAgICAgICogaXMgZWFzeSwg YW5kIG1lYW5zIHRoYXQgeW91IGRvbid0IG5lZWQgdG8gZ28gb3V0IG9mIHlv dXIgd2F5IHRvCisgICAgICAgICAqIGF2b2lkIGl0IGluIHRoZSBndWVzdC4K KyAgICAgICAgICovCisKKyAgICAgICAgLyogV2UgbmVlZCB0byBsZWF2ZSB0 aGUgcnJkIGxvY2tlZCBkdXJpbmcgdGhlIGdyYW50IGNvcHkuICovCisgICAg ICAgIHRkID0gcmN1X2xvY2tfZG9tYWluX2J5X2lkKHRyYW5zX2RvbWlkKTsK KyAgICAgICAgaWYgKCB0ZCA9PSBOVUxMICkKKyAgICAgICAgICAgIFBJTl9G QUlMKHVubG9ja19vdXRfY2xlYXIsIEdOVFNUX2dlbmVyYWxfZXJyb3IsCisg ICAgICAgICAgICAgICAgICAgICAidHJhbnNpdGl2ZSBncmFudCByZWZlcmVu Y2VkIGJhZCBkb21haW4gJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICB0 cmFuc19kb21pZCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogX19hY3F1 aXJlX2dyYW50X2Zvcl9jb3B5KCkgY291bGQgdGFrZSB0aGUgbG9jayBvbiB0 aGUKKyAgICAgICAgICogcmVtb3RlIHRhYmxlIChpZiByZCA9PSB0ZCksIHNv IHdlIGhhdmUgdG8gZHJvcCB0aGUgbG9jaworICAgICAgICAgKiBoZXJlIGFu ZCByZWFjcXVpcmUuCisgICAgICAgICAqLworICAgICAgICBzcGluX3VubG9j aygmcmd0LT5sb2NrKTsKKworICAgICAgICByYyA9IF9fYWNxdWlyZV9ncmFu dF9mb3JfY29weSh0ZCwgdHJhbnNfZ3JlZiwgcmQtPmRvbWFpbl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHks ICZncmFudF9mcmFtZSwgcGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnRyYW5zX3BhZ2Vfb2ZmLCAmdHJhbnNfbGVuZ3Ro LCAwKTsKKworICAgICAgICBzcGluX2xvY2soJnJndC0+bG9jayk7CisKKyAg ICAgICAgaWYgKCByYyAhPSBHTlRTVF9va2F5ICkKICAgICAgICAgewotICAg ICAgICAgICAgaWYgKCAhYWxsb3dfdHJhbnNpdGl2ZSApCi0gICAgICAgICAg ICAgICAgUElOX0ZBSUwodW5sb2NrX291dF9jbGVhciwgR05UU1RfZ2VuZXJh bF9lcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNpdGl2 ZSBncmFudCB3aGVuIHRyYW5zaXRpdml0eSBub3QgYWxsb3dlZFxuIik7Ci0K LSAgICAgICAgICAgIHRyYW5zX2RvbWlkID0gc2hhMi0+dHJhbnNpdGl2ZS50 cmFuc19kb21pZDsKLSAgICAgICAgICAgIHRyYW5zX2dyZWYgPSBzaGEyLT50 cmFuc2l0aXZlLmdyZWY7Ci0gICAgICAgICAgICBiYXJyaWVyKCk7IC8qIFN0 b3AgdGhlIGNvbXBpbGVyIGZyb20gcmUtbG9hZGluZwotICAgICAgICAgICAg ICAgICAgICAgICAgICB0cmFuc19kb21pZCBmcm9tIHNoYXJlZCBtZW1vcnkg Ki8KLSAgICAgICAgICAgIGlmICggdHJhbnNfZG9taWQgPT0gcmQtPmRvbWFp bl9pZCApCi0gICAgICAgICAgICAgICAgUElOX0ZBSUwodW5sb2NrX291dF9j bGVhciwgR05UU1RfZ2VuZXJhbF9lcnJvciwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAidHJhbnNpdGl2ZSBncmFudHMgY2Fubm90IGJlIHNlbGYtcmVm ZXJlbnRpYWxcbiIpOwotCi0gICAgICAgICAgICAvKiBXZSBhbGxvdyB0aGUg dHJhbnNfZG9taWQgPT0gbGRvbSBjYXNlLCB3aGljaAotICAgICAgICAgICAg ICAgY29ycmVzcG9uZHMgdG8gYSBncmFudCBiZWluZyBpc3N1ZWQgYnkgb25l IGRvbWFpbiwgc2VudAotICAgICAgICAgICAgICAgdG8gYW5vdGhlciBvbmUs IGFuZCB0aGVuIHRyYW5zaXRpdmVseSBncmFudGVkIGJhY2sgdG8KLSAgICAg ICAgICAgICAgIHRoZSBvcmlnaW5hbCBkb21haW4uICBBbGxvd2luZyBpdCBp cyBlYXN5LCBhbmQgbWVhbnMKLSAgICAgICAgICAgICAgIHRoYXQgeW91IGRv bid0IG5lZWQgdG8gZ28gb3V0IG9mIHlvdXIgd2F5IHRvIGF2b2lkIGl0Ci0g ICAgICAgICAgICAgICBpbiB0aGUgZ3Vlc3QuICovCi0KLSAgICAgICAgICAg IC8qIFdlIG5lZWQgdG8gbGVhdmUgdGhlIHJyZCBsb2NrZWQgZHVyaW5nIHRo ZSBncmFudCBjb3B5ICovCi0gICAgICAgICAgICB0ZCA9IHJjdV9sb2NrX2Rv bWFpbl9ieV9pZCh0cmFuc19kb21pZCk7Ci0gICAgICAgICAgICBpZiAoIHRk ID09IE5VTEwgKQotICAgICAgICAgICAgICAgIFBJTl9GQUlMKHVubG9ja19v dXRfY2xlYXIsIEdOVFNUX2dlbmVyYWxfZXJyb3IsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgInRyYW5zaXRpdmUgZ3JhbnQgcmVmZXJlbmNlZCBiYWQg ZG9tYWluICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5z X2RvbWlkKTsKKyAgICAgICAgICAgIF9fZml4dXBfc3RhdHVzX2Zvcl9jb3B5 X3BpbihhY3QsIHN0YXR1cyk7CisgICAgICAgICAgICByY3VfdW5sb2NrX2Rv bWFpbih0ZCk7CiAgICAgICAgICAgICBzcGluX3VubG9jaygmcmd0LT5sb2Nr KTsKKyAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgfQogCi0gICAg ICAgICAgICByYyA9IF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSh0ZCwgdHJh bnNfZ3JlZiwgcmQtPmRvbWFpbl9pZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlYWRvbmx5LCAmZ3JhbnRfZnJhbWUs IHBhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmdHJhbnNfcGFnZV9vZmYsICZ0cmFuc19sZW5ndGgsIDApOwotCi0g ICAgICAgICAgICBzcGluX2xvY2soJnJndC0+bG9jayk7Ci0gICAgICAgICAg ICBpZiAoIHJjICE9IEdOVFNUX29rYXkgKSB7Ci0gICAgICAgICAgICAgICAg X19maXh1cF9zdGF0dXNfZm9yX2NvcHlfcGluKGFjdCwgc3RhdHVzKTsKLSAg ICAgICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbih0ZCk7Ci0gICAgICAg ICAgICAgICAgc3Bpbl91bmxvY2soJnJndC0+bG9jayk7Ci0gICAgICAgICAg ICAgICAgcmV0dXJuIHJjOwotICAgICAgICAgICAgfQorICAgICAgICAvKgor ICAgICAgICAgKiBXZSBkcm9wcGVkIHRoZSBsb2NrLCBzbyB3ZSBoYXZlIHRv IGNoZWNrIHRoYXQgdGhlIGdyYW50IGRpZG4ndAorICAgICAgICAgKiBjaGFu Z2UsIGFuZCB0aGF0IG5vYm9keSBlbHNlIHRyaWVkIHRvIHBpbi91bnBpbiBp dC4gSWYgYW55dGhpbmcKKyAgICAgICAgICogY2hhbmdlZCwganVzdCBnaXZl IHVwIGFuZCB0ZWxsIHRoZSBjYWxsZXIgdG8gcmV0cnkuCisgICAgICAgICAq LworICAgICAgICBpZiAoIHJndC0+Z3RfdmVyc2lvbiAhPSAyIHx8CisgICAg ICAgICAgICAgYWN0LT5waW4gIT0gb2xkX3BpbiB8fAorICAgICAgICAgICAg IChvbGRfcGluICYmIChhY3QtPmRvbWlkICE9IGxkb20gfHwgYWN0LT5mcmFt ZSAhPSBncmFudF9mcmFtZSB8fAorICAgICAgICAgICAgICAgICAgICAgICAg ICBhY3QtPnN0YXJ0ICE9IHRyYW5zX3BhZ2Vfb2ZmIHx8CisgICAgICAgICAg ICAgICAgICAgICAgICAgIGFjdC0+bGVuZ3RoICE9IHRyYW5zX2xlbmd0aCB8 fAorICAgICAgICAgICAgICAgICAgICAgICAgICBhY3QtPnRyYW5zX2RvbWFp biAhPSB0ZCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICBhY3QtPnRy YW5zX2dyZWYgIT0gdHJhbnNfZ3JlZiB8fAorICAgICAgICAgICAgICAgICAg ICAgICAgICAhYWN0LT5pc19zdWJfcGFnZSkpICkKKyAgICAgICAgeworICAg ICAgICAgICAgX19yZWxlYXNlX2dyYW50X2Zvcl9jb3B5KHRkLCB0cmFuc19n cmVmLCByZWFkb25seSk7CisgICAgICAgICAgICBfX2ZpeHVwX3N0YXR1c19m b3JfY29weV9waW4oYWN0LCBzdGF0dXMpOworICAgICAgICAgICAgcmN1X3Vu bG9ja19kb21haW4odGQpOworICAgICAgICAgICAgc3Bpbl91bmxvY2soJnJn dC0+bG9jayk7CisgICAgICAgICAgICBwdXRfcGFnZSgqcGFnZSk7CisgICAg ICAgICAgICAqcGFnZSA9IE5VTEw7CisgICAgICAgICAgICByZXR1cm4gRVJF U1RBUlQ7CisgICAgICAgIH0KIAorICAgICAgICBpZiAoICFvbGRfcGluICkK KyAgICAgICAgeworICAgICAgICAgICAgYWN0LT5kb21pZCA9IGxkb207Cisg ICAgICAgICAgICBhY3QtPnN0YXJ0ID0gdHJhbnNfcGFnZV9vZmY7CisgICAg ICAgICAgICBhY3QtPmxlbmd0aCA9IHRyYW5zX2xlbmd0aDsKKyAgICAgICAg ICAgIGFjdC0+dHJhbnNfZG9tYWluID0gdGQ7CisgICAgICAgICAgICBhY3Qt PnRyYW5zX2dyZWYgPSB0cmFuc19ncmVmOworICAgICAgICAgICAgYWN0LT5m cmFtZSA9IGdyYW50X2ZyYW1lOworICAgICAgICAgICAgYWN0LT5nZm4gPSAt MXVsOwogICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFdlIGRyb3Bw ZWQgdGhlIGxvY2ssIHNvIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBub2JvZHkg ZWxzZSB0cmllZAotICAgICAgICAgICAgICogdG8gcGluIChvciwgZm9yIHRo YXQgbWF0dGVyLCB1bnBpbikgdGhlIHJlZmVyZW5jZSBpbiAqdGhpcyoKLSAg ICAgICAgICAgICAqIGRvbWFpbi4gIElmIHRoZXkgZGlkLCBqdXN0IGdpdmUg dXAgYW5kIHRlbGwgdGhlIGNhbGxlciB0byByZXRyeS4KKyAgICAgICAgICAg ICAqIFRoZSBhY3R1YWwgcmVtb3RlIHJlbW90ZSBncmFudCBtYXkgb3IgbWF5 IG5vdCBiZSBhIHN1Yi1wYWdlLAorICAgICAgICAgICAgICogYnV0IHdlIGFs d2F5cyB0cmVhdCBpdCBhcyBvbmUgYmVjYXVzZSB0aGF0IGJsb2NrcyBtYXBw aW5ncyBvZgorICAgICAgICAgICAgICogdHJhbnNpdGl2ZSBncmFudHMuCiAg ICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmICggYWN0LT5waW4gIT0g b2xkX3BpbiApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgX19m aXh1cF9zdGF0dXNfZm9yX2NvcHlfcGluKGFjdCwgc3RhdHVzKTsKLSAgICAg ICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbih0ZCk7Ci0gICAgICAgICAg ICAgICAgc3Bpbl91bmxvY2soJnJndC0+bG9jayk7Ci0gICAgICAgICAgICAg ICAgcHV0X3BhZ2UoKnBhZ2UpOwotICAgICAgICAgICAgICAgICpwYWdlID0g TlVMTDsKLSAgICAgICAgICAgICAgICByZXR1cm4gRVJFU1RBUlQ7Ci0gICAg ICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qIFRoZSBhY3R1YWwgcmVtb3Rl IHJlbW90ZSBncmFudCBtYXkgb3IgbWF5IG5vdCBiZSBhCi0gICAgICAgICAg ICAgICBzdWItcGFnZSwgYnV0IHdlIGFsd2F5cyB0cmVhdCBpdCBhcyBvbmUg YmVjYXVzZSB0aGF0Ci0gICAgICAgICAgICAgICBibG9ja3MgbWFwcGluZ3Mg b2YgdHJhbnNpdGl2ZSBncmFudHMuICovCi0gICAgICAgICAgICBpc19zdWJf cGFnZSA9IDE7Ci0gICAgICAgICAgICBhY3QtPmdmbiA9IC0xdWw7CisgICAg ICAgICAgICBhY3QtPmlzX3N1Yl9wYWdlID0gMTsKICAgICAgICAgfQotICAg ICAgICBlbHNlIGlmICggc2hhMSApCisgICAgfQorICAgIGVsc2UgaWYgKCAh b2xkX3BpbiB8fAorICAgICAgICAgICAgICAoIXJlYWRvbmx5ICYmICEob2xk X3BpbiAmIChHTlRQSU5fZGV2d19tYXNrfEdOVFBJTl9oc3R3X21hc2spKSkg KQorICAgIHsKKyAgICAgICAgaWYgKCAocmMgPSBfc2V0X3N0YXR1cyhyZ3Qt Pmd0X3ZlcnNpb24sIGxkb20sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVhZG9ubHksIDAsIHNoYWgsIGFjdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdGF0dXMpICkgIT0gR05UU1Rfb2theSApCisg ICAgICAgICAgICAgZ290byB1bmxvY2tfb3V0OworCisgICAgICAgIHRkID0g cmQ7CisgICAgICAgIHRyYW5zX2dyZWYgPSBncmVmOworICAgICAgICBpZiAo IHNoYTEgKQogICAgICAgICB7CiAgICAgICAgICAgICByYyA9IF9fZ2V0X3Bh Z2VkX2ZyYW1lKHNoYTEtPmZyYW1lLCAmZ3JhbnRfZnJhbWUsIHBhZ2UsIHJl YWRvbmx5LCByZCk7CiAgICAgICAgICAgICBpZiAoIHJjICE9IEdOVFNUX29r YXkgKQpAQCAtMjI5NSwxNCArMjMxNSwzNSBAQCBnbnR0YWJfc2V0X3ZlcnNp b24oWEVOX0dVRVNUX0hBTkRMRV9QQVJBCiAgICAgICAgIH0KICAgICB9CiAK LSAgICAvKiBYWFg6IElmIHdlJ3JlIGdvaW5nIHRvIHZlcnNpb24gMiwgd2Ug Y291bGQgbWF5YmUgc2hyaW5rIHRoZQotICAgICAgIGFjdGl2ZSBncmFudCB0 YWJsZSBoZXJlLiAqLwotCi0gICAgaWYgKCBvcC52ZXJzaW9uID09IDIgJiYg Z3QtPmd0X3ZlcnNpb24gPCAyICkKKyAgICBzd2l0Y2ggKCBndC0+Z3RfdmVy c2lvbiApCiAgICAgewotICAgICAgICByZXMgPSBnbnR0YWJfcG9wdWxhdGVf c3RhdHVzX2ZyYW1lcyhkLCBndCwgbnJfZ3JhbnRfZnJhbWVzKGd0KSk7Ci0g ICAgICAgIGlmICggcmVzIDwgMCkKLSAgICAgICAgICAgIGdvdG8gb3V0X3Vu bG9jazsKKyAgICBjYXNlIDA6CisgICAgICAgIGlmICggb3AudmVyc2lvbiA9 PSAyICkKKyAgICAgICAgeworICAgIGNhc2UgMToKKyAgICAgICAgICAgIC8q IFhYWDogV2UgY291bGQgbWF5YmUgc2hyaW5rIHRoZSBhY3RpdmUgZ3JhbnQg dGFibGUgaGVyZS4gKi8KKyAgICAgICAgICAgIHJlcyA9IGdudHRhYl9wb3B1 bGF0ZV9zdGF0dXNfZnJhbWVzKGQsIGd0LCBucl9ncmFudF9mcmFtZXMoZ3Qp KTsKKyAgICAgICAgICAgIGlmICggcmVzIDwgMCkKKyAgICAgICAgICAgICAg ICBnb3RvIG91dF91bmxvY2s7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7 CisgICAgY2FzZSAyOgorICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEdOVFRB Ql9OUl9SRVNFUlZFRF9FTlRSSUVTOyBpKysgKQorICAgICAgICB7CisgICAg ICAgICAgICBzd2l0Y2ggKCBzaGFyZWRfZW50cnlfdjIoZ3QsIGkpLmhkci5m bGFncyAmIEdURl90eXBlX21hc2sgKQorICAgICAgICAgICAgeworICAgICAg ICAgICAgY2FzZSBHVEZfcGVybWl0X2FjY2VzczoKKyAgICAgICAgICAgICAg ICAgaWYgKCAhKHNoYXJlZF9lbnRyeV92MihndCwgaSkuZnVsbF9wYWdlLmZy YW1lID4+IDMyKSApCisgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAgICAgICAg ICBjYXNlIEdURl90cmFuc2l0aXZlOgorICAgICAgICAgICAgICAgIGdkcHJp bnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAg ICJ0cmllZCB0byBjaGFuZ2UgZ3JhbnQgdGFibGUgdmVyc2lvbiB0byAxIHdp dGggbm9uLXJlcHJlc2VudGFibGUgZW50cmllc1xuIik7CisgICAgICAgICAg ICAgICAgcmVzID0gLUVSQU5HRTsKKyAgICAgICAgICAgICAgICBnb3RvIG91 dF91bmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg YnJlYWs7CiAgICAgfQogCiAgICAgLyogUHJlc2VydmUgdGhlIGZpcnN0IDgg ZW50cmllcyAodG9vbHN0YWNrIHJlc2VydmVkIGdyYW50cykgKi8K --=separator Content-Type: application/octet-stream; name="xsa226-4.6.patch" Content-Disposition: attachment; filename="xsa226-4.6.patch" Content-Transfer-Encoding: base64 RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KU3ViamVjdDogZ3JhbnRfdGFibGU6IERlZmF1bHQgdG8gdjEsIGFuZCBk aXNhbGxvdyB0cmFuc2l0aXZlIGdyYW50cwoKVGhlIHJlZmVyZW5jZSBjb3Vu dGluZyBhbmQgbG9ja2luZyBkaXNjaXBsaW5lIGZvciB0cmFuc2l0aXZlIGdy YW50cyBpcyBicm9rZW4uClRoZWlyIHVzZSBpcyB0aGVyZWZvcmUgZGVjbGFy ZWQgb3V0IG9mIHNlY3VyaXR5IHN1cHBvcnQuCgpUaGlzIGlzIFhTQS0yMjYu CgpUcmFuc2l0aXZlIGdyYW50cyBhcmUgZXhwZWN0ZWQgdG8gYmUgdW5jb25k aXRpb25hbGx5IGF2YWlsYWJsZSB3aXRoIGdyYW50CnRhYmxlIHYyLiAgSGlk aW5nIHRyYW5zaXRpdmUgZ3JhbnRzIGFsb25lIGlzIGFuIEFCSSBicmVha2Fn ZSBmb3IgdGhlIGd1ZXN0LgpNb2Rlcm4gdmVyc2lvbnMgb2YgTGludXggYW5k IHRoZSBXaW5kb3dzIFBWIGRyaXZlcnMgdXNlIGdyYW50IHRhYmxlIHYxLCBi dXQKb2xkZXIgdmVyc2lvbnMgZGlkIHVzZSB2Mi4KCkluIHByaW5jaXBsZSwg ZGlzYWJsaW5nIGdudHRhYiB2MiBlbnRpcmVseSBpcyB0aGUgc2FmZXIgd2F5 IHRvIGNhdXNlIGd1ZXN0cyB0bwphdm9pZCB1c2luZyB0cmFuc2l0aXZlIGdy YW50cy4gSG93ZXZlciwgc29tZSBvbGRlciBndWVzdHMgd2hpY2ggZGVmYXVs dGVkIHRvCnVzaW5nIGdudHRhYiB2MiBkb24ndCB0b2xlcmF0ZSBmYWxsaW5n IGJhY2sgZnJvbSB2MiB0byB2MSBvdmVyIG1pZ3JhdGUuCgpUaGlzIHBhdGNo IGludHJvZHVjZXMgYSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBjb250 cm9sIGdyYW50IHRhYmxlCmJlaGF2aW91ci4gIE9uZSBzdWJvcHRpb24gYWxs b3dzIGEgY2hvaWNlIG9mIHRoZSBtYXhpbXVtIGdyYW50IHRhYmxlIHZlcnNp b24KWGVuIHdpbGwgYWxsb3cgdGhlIGd1ZXN0IHRvIHVzZSwgYW5kIGRlZmF1 bHRzIHRvIHYyLiAgQSBkaWZmZXJlbnQgc3Vib3B0aW9uCmluZGVwZW5kZW50 bHkgY29udHJvbHMgd2hldGhlciB0cmFuc2l0aXZlIGdyYW50cyBjYW4gYmUg dXNlZC4KClRoZSBkZWZhdWx0IGNhc2UgaXM6CgogICAgZ250dGFiPW1heF92 ZXI6MgoKVG8gZGlzYWJsZSBnbnR0YWIgdjIgZW50aXJlbHksIHVzZToKCiAg ICBnbnR0YWI9bWF4X3ZlcjoxCgpUbyBhbGxvdyBnbnR0YWIgdjIgYW5kIHRy YW5zaXRpdmUgZ3JhbnRzLCB1c2U6CgogICAgZ250dGFiPW1heF92ZXI6Mix0 cmFuc2l0aXZlCgpSZXBvcnRlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNo QHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgpkaWZmIC0tZ2l0IGEvZG9jcy9taXNj L3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93bgppbmRleCBkOTlhMjBhLi4xMTNiYjI5IDEw MDY0NAotLS0gYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93 bgorKysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgpA QCAtNzMzLDYgKzczMywyMiBAQCBDb250cm9scyBFUFQgcmVsYXRlZCBmZWF0 dXJlcy4KIAogU3BlY2lmeSB0aGUgc2VyaWFsIHBhcmFtZXRlcnMgZm9yIHRo ZSBHREIgc3R1Yi4KIAorIyMjIGdudHRhYgorPiBgPSBMaXN0IG9mIFsgbWF4 X3Zlcjo8aW50ZWdlcj4sIHRyYW5zaXRpdmUgXWAKKworPiBEZWZhdWx0OiBg Z250dGFiPW1heF92ZXI6Mixuby10cmFuc2l0aXZlYAorCitDb250cm9sIHZh cmlvdXMgYXNwZWN0cyBvZiB0aGUgZ3JhbnQgdGFibGUgYmVoYXZpb3VyIGF2 YWlsYWJsZSB0byBndWVzdHMuCisKKyogYG1heF92ZXJgIFNlbGVjdCB0aGUg bWF4aW11bSBncmFudCB0YWJsZSB2ZXJzaW9uIHRvIG9mZmVyIHRvIGd1ZXN0 cy4gIFZhbGlkCit2ZXJzaW9uIGFyZSAxIGFuZCAyLgorKiBgdHJhbnNpdGl2 ZWAgUGVybWl0IG9yIGRpc2FsbG93IHRoZSB1c2Ugb2YgdHJhbnNpdGl2ZSBn cmFudHMuICBOb3RlIHRoYXQgdGhlCit1c2Ugb2YgZ3JhbnQgdGFibGUgdjIg d2l0aG91dCB0cmFuc2l0aXZlIGdyYW50cyBpcyBhbiBBQkkgYnJlYWthZ2Ug ZnJvbSB0aGUKK2d1ZXN0cyBwb2ludCBvZiB2aWV3LgorCisqV2FybmluZzoq CitEdWUgdG8gWFNBLTIyNiwgdGhlIHVzZSBvZiB0cmFuc2l0aXZlIGdyYW50 cyBpcyBvdXRzaWRlIG9mIHNlY3VyaXR5IHN1cHBvcnQuCisKICMjIyBnbnR0 YWJcX21heFxfZnJhbWVzCiA+IGA9IDxpbnRlZ2VyPmAKIApkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1vbi9ncmFu dF90YWJsZS5jCmluZGV4IDIwMjMwZmIuLjk4ODQ1YzQgMTAwNjQ0Ci0tLSBh L3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dy YW50X3RhYmxlLmMKQEAgLTUwLDYgKzUwLDQyIEBAIGludGVnZXJfcGFyYW0o ImdudHRhYl9tYXhfbnJfZnJhbWVzIiwgbWF4X25yX2dyYW50X2ZyYW1lcyk7 CiB1bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSBtYXhfZ3JhbnRfZnJhbWVz OwogaW50ZWdlcl9wYXJhbSgiZ250dGFiX21heF9mcmFtZXMiLCBtYXhfZ3Jh bnRfZnJhbWVzKTsKIAorc3RhdGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9z dGx5IG9wdF9nbnR0YWJfbWF4X3ZlcnNpb24gPSAyOworc3RhdGljIGJvb2xf dCBfX3JlYWRfbW9zdGx5IG9wdF90cmFuc2l0aXZlX2dyYW50czsKKworc3Rh dGljIHZvaWQgX19pbml0IHBhcnNlX2dudHRhYihjaGFyICpzKQoreworICAg IGNoYXIgKnNzOworCisgICAgZG8geworICAgICAgICBzcyA9IHN0cmNocihz LCAnLCcpOworICAgICAgICBpZiAoIHNzICkKKyAgICAgICAgICAgICpzcyA9 ICdcMCc7CisKKyAgICAgICAgaWYgKCAhc3RybmNtcChzLCAibWF4X3Zlcjoi LCA4KSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvbmcgdmVyID0gc2lt cGxlX3N0cnRvbChzICsgOCwgTlVMTCwgMTApOworCisgICAgICAgICAgICBp ZiAoIHZlciA+PSAxICYmIHZlciA8PSAyICkKKyAgICAgICAgICAgICAgICBv cHRfZ250dGFiX21heF92ZXJzaW9uID0gdmVyOworICAgICAgICB9CisgICAg ICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgYm9vbF90IHZhbCA9 ICEhc3RybmNtcChzLCAibm8tIiwgMyk7CisKKyAgICAgICAgICAgIGlmICgg IXZhbCApCisgICAgICAgICAgICAgICAgcyArPSAzOworCisgICAgICAgICAg ICBpZiAoICFzdHJjbXAocywgInRyYW5zaXRpdmUiKSApCisgICAgICAgICAg ICAgICAgb3B0X3RyYW5zaXRpdmVfZ3JhbnRzID0gdmFsOworICAgICAgICB9 CisKKyAgICAgICAgcyA9IHNzICsgMTsKKyAgICB9IHdoaWxlICggc3MgKTsK K30KKworY3VzdG9tX3BhcmFtKCJnbnR0YWIiLCBwYXJzZV9nbnR0YWIpOwor CiAvKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZ3JhbnQgbWFwcGluZ3MgaXMg ZGVmaW5lZCBhcyBhIG11bHRpcGxpZXIgb2YgdGhlCiAgKiBtYXhpbXVtIG51 bWJlciBvZiBncmFudCB0YWJsZSBlbnRyaWVzLiBUaGlzIGRlZmluZXMgdGhl IG11bHRpcGxpZXIgdXNlZC4KICAqIFByZXR0eSBhcmJpdHJhcnkuIFtQT0xJ Q1ldCkBAIC0yMTc1LDYgKzIyMTEsMTAgQEAgX19hY3F1aXJlX2dyYW50X2Zv cl9jb3B5KAogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKCAoc2hhaC0+ ZmxhZ3MgJiBHVEZfdHlwZV9tYXNrKSA9PSBHVEZfdHJhbnNpdGl2ZSApCiAg ICAgICAgIHsKKyAgICAgICAgICAgIGlmICggIW9wdF90cmFuc2l0aXZlX2dy YW50cyApCisgICAgICAgICAgICAgICAgUElOX0ZBSUwodW5sb2NrX291dF9j bGVhciwgR05UU1RfZ2VuZXJhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAidHJhbnNpdGl2ZSBncmFudCBkaXNhbGxvd2VkIGJ5IHBvbGlj eVxuIik7CisKICAgICAgICAgICAgIGlmICggIWFsbG93X3RyYW5zaXRpdmUg KQogICAgICAgICAgICAgICAgIFBJTl9GQUlMKHVubG9ja19vdXRfY2xlYXIs IEdOVFNUX2dlbmVyYWxfZXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgInRyYW5zaXRpdmUgZ3JhbnQgd2hlbiB0cmFuc2l0aXZpdHkgbm90IGFs bG93ZWRcbiIpOwpAQCAtMzE0Myw3ICszMTgzLDEwIEBAIGRvX2dyYW50X3Rh YmxlX29wKAogICAgIH0KICAgICBjYXNlIEdOVFRBQk9QX3NldF92ZXJzaW9u OgogICAgIHsKLSAgICAgICAgcmMgPSBnbnR0YWJfc2V0X3ZlcnNpb24oZ3Vl c3RfaGFuZGxlX2Nhc3QodW9wLCBnbnR0YWJfc2V0X3ZlcnNpb25fdCkpOwor ICAgICAgICBpZiAoIG9wdF9nbnR0YWJfbWF4X3ZlcnNpb24gPT0gMSApCisg ICAgICAgICAgICByYyA9IC1FTk9TWVM7IC8qIEJlaGF2ZSBhcyBiZWZvcmUg c2V0X3ZlcnNpb24gd2FzIGludHJvZHVjZWQuICovCisgICAgICAgIGVsc2UK KyAgICAgICAgICAgIHJjID0gZ250dGFiX3NldF92ZXJzaW9uKGd1ZXN0X2hh bmRsZV9jYXN0KHVvcCwgZ250dGFiX3NldF92ZXJzaW9uX3QpKTsKICAgICAg ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgR05UVEFCT1BfZ2V0X3N0YXR1 c19mcmFtZXM6Cg== --=separator Content-Type: application/octet-stream; name="xsa226-4.6/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch" Content-Disposition: attachment; filename="xsa226-4.6/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGRvbid0IHVzZSBwb3NzaWJseSB1bmJvdW5kZWQgdGFpbCBj YWxscwoKVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgdGhlIGNvbXBpbGVy IHdvdWxkIGFjdHVhbGx5IHRyYW5zbGF0ZSB0aGVtCnRvIGJyYW5jaGVzIGlu c3RlYWQgb2YgY2FsbHMsIHNvIG9ubHkgb25lcyB3aXRoIGEga25vd24gcmVj dXJzaW9uIGxpbWl0CmFyZSBva2F5OgotIF9fcmVsZWFzZV9ncmFudF9mb3Jf Y29weSgpIGNhbiBjYWxsIGl0c2VsZiBvbmx5IG9uY2UsIGFzCiAgX19hY3F1 aXJlX2dyYW50X2Zvcl9jb3B5KCkgd29uJ3QgcGVybWl0IHVzZSBvZiBtdWx0 aS1sZXZlbCB0cmFuc2l0aXZlCiAgZ3JhbnRzLAotIF9fYWNxdWlyZV9ncmFu dF9mb3JfY29weSgpIGlzIGZpbmUgdG8gY2FsbCBpdHNlbGYgd2l0aCB0aGUg bGFzdAogIGFyZ3VtZW50IGZhbHNlLCBhcyB0aGF0IHByZXZlbnRzIGZ1cnRo ZXIgcmVjdXJzaW9uLAotIF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSgpIG11 c3Qgbm90IGNhbGwgaXRzZWxmIHRvIHJlY292ZXIgZnJvbSBhbgogIG9ic2Vy dmVkIGNoYW5nZSB0byB0aGUgYWN0aXZlIGVudHJ5J3MgcGluIGNvdW50CgpU aGlzIGlzIHBhcnQgb2YgQ1ZFLTIwMTctMTIxMzUgLyBYU0EtMjI2LgoKU2ln bmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoK LS0tIGEveGVuL2NvbW1vbi9jb21wYXQvZ3JhbnRfdGFibGUuYworKysgYi94 ZW4vY29tbW9uL2NvbXBhdC9ncmFudF90YWJsZS5jCkBAIC0yNTgsOSArMjU4 LDkgQEAgaW50IGNvbXBhdF9ncmFudF90YWJsZV9vcCh1bnNpZ25lZCBpbnQg Y21kLAogICAgICAgICAgICAgICAgIHJjID0gZ250dGFiX2NvcHkoZ3Vlc3Rf aGFuZGxlX2Nhc3QobmF0LnVvcCwgZ250dGFiX2NvcHlfdCksIG4pOwogICAg ICAgICAgICAgaWYgKCByYyA+IDAgKQogICAgICAgICAgICAgewotICAgICAg ICAgICAgICAgIEFTU0VSVChyYyA8IG4pOwotICAgICAgICAgICAgICAgIGkg LT0gbiAtIHJjOwotICAgICAgICAgICAgICAgIG4gPSByYzsKKyAgICAgICAg ICAgICAgICBBU1NFUlQocmMgPD0gbik7CisgICAgICAgICAgICAgICAgaSAt PSByYzsKKyAgICAgICAgICAgICAgICBuIC09IHJjOwogICAgICAgICAgICAg fQogICAgICAgICAgICAgaWYgKCByYyA+PSAwICkKICAgICAgICAgICAgIHsK LS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hlbi9jb21t b24vZ3JhbnRfdGFibGUuYwpAQCAtMjA4OSw4ICsyMDg5LDEwIEBAIF9fcmVs ZWFzZV9ncmFudF9mb3JfY29weSgKIAogICAgIGlmICggdGQgIT0gcmQgKQog ICAgIHsKLSAgICAgICAgLyogUmVjdXJzaXZlIGNhbGxzLCBidXQgdGhleSdy ZSB0YWlsIGNhbGxzLCBzbyBpdCdzCi0gICAgICAgICAgIG9rYXkuICovCisg ICAgICAgIC8qCisgICAgICAgICAqIFJlY3Vyc2l2ZSBjYWxscywgYnV0IHRo ZXkncmUgYm91bmRlZCAoYWNxdWlyZSBwZXJtaXRzIG9ubHkgYSBzaW5nbGUK KyAgICAgICAgICogbGV2ZWwgb2YgdHJhbnNpdGl2aXR5KSwgc28gaXQncyBv a2F5LgorICAgICAgICAgKi8KICAgICAgICAgaWYgKCByZWxlYXNlZF93cml0 ZSApCiAgICAgICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkodGQs IHRyYW5zX2dyZWYsIDApOwogICAgICAgICBlbHNlIGlmICggcmVsZWFzZWRf cmVhZCApCkBAIC0yMjQxLDEwICsyMjQzLDExIEBAIF9fYWNxdWlyZV9ncmFu dF9mb3JfY29weSgKICAgICAgICAgICAgICAgICByZXR1cm4gcmM7CiAgICAg ICAgICAgICB9CiAKLSAgICAgICAgICAgIC8qIFdlIGRyb3BwZWQgdGhlIGxv Y2ssIHNvIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBub2JvZHkKLSAgICAgICAg ICAgICAgIGVsc2UgdHJpZWQgdG8gcGluIChvciwgZm9yIHRoYXQgbWF0dGVy LCB1bnBpbikgdGhlCi0gICAgICAgICAgICAgICByZWZlcmVuY2UgaW4gKnRo aXMqIGRvbWFpbi4gIElmIHRoZXkgZGlkLCBqdXN0IGdpdmUgdXAKLSAgICAg ICAgICAgICAgIGFuZCB0cnkgYWdhaW4uICovCisgICAgICAgICAgICAvKgor ICAgICAgICAgICAgICogV2UgZHJvcHBlZCB0aGUgbG9jaywgc28gd2UgaGF2 ZSB0byBjaGVjayB0aGF0IG5vYm9keSBlbHNlIHRyaWVkCisgICAgICAgICAg ICAgKiB0byBwaW4gKG9yLCBmb3IgdGhhdCBtYXR0ZXIsIHVucGluKSB0aGUg cmVmZXJlbmNlIGluICp0aGlzKgorICAgICAgICAgICAgICogZG9tYWluLiAg SWYgdGhleSBkaWQsIGp1c3QgZ2l2ZSB1cCBhbmQgdGVsbCB0aGUgY2FsbGVy IHRvIHJldHJ5LgorICAgICAgICAgICAgICovCiAgICAgICAgICAgICBpZiAo IGFjdC0+cGluICE9IG9sZF9waW4gKQogICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgIF9fZml4dXBfc3RhdHVzX2Zvcl9jb3B5X3BpbihhY3QsIHN0 YXR1cyk7CkBAIC0yMjUyLDkgKzIyNTUsOCBAQCBfX2FjcXVpcmVfZ3JhbnRf Zm9yX2NvcHkoCiAgICAgICAgICAgICAgICAgYWN0aXZlX2VudHJ5X3JlbGVh c2UoYWN0KTsKICAgICAgICAgICAgICAgICByZWFkX3VubG9jaygmcmd0LT5s b2NrKTsKICAgICAgICAgICAgICAgICBwdXRfcGFnZSgqcGFnZSk7Ci0gICAg ICAgICAgICAgICAgcmV0dXJuIF9fYWNxdWlyZV9ncmFudF9mb3JfY29weShy ZCwgZ3JlZiwgbGRvbSwgcmVhZG9ubHksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSwgcGFnZSwgcGFn ZV9vZmYsIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFsbG93X3RyYW5zaXRpdmUpOworICAgICAg ICAgICAgICAgICpwYWdlID0gTlVMTDsKKyAgICAgICAgICAgICAgICByZXR1 cm4gRVJFU1RBUlQ7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8q IFRoZSBhY3R1YWwgcmVtb3RlIHJlbW90ZSBncmFudCBtYXkgb3IgbWF5IG5v dCBiZSBhCkBAIC0yNTYwLDcgKzI1NjIsNyBAQCBzdGF0aWMgaW50IGdudHRh Yl9jb3B5X29uZShjb25zdCBzdHJ1Y3QKICAgICB7CiAgICAgICAgIGdudHRh Yl9jb3B5X3JlbGVhc2VfYnVmKHNyYyk7CiAgICAgICAgIHJjID0gZ250dGFi X2NvcHlfY2xhaW1fYnVmKG9wLCAmb3AtPnNvdXJjZSwgc3JjLCBHTlRDT1BZ X3NvdXJjZV9ncmVmKTsKLSAgICAgICAgaWYgKCByYyA8IDAgKQorICAgICAg ICBpZiAoIHJjICkKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIApA QCAtMjU3MCw3ICsyNTcyLDcgQEAgc3RhdGljIGludCBnbnR0YWJfY29weV9v bmUoY29uc3Qgc3RydWN0CiAgICAgewogICAgICAgICBnbnR0YWJfY29weV9y ZWxlYXNlX2J1ZihkZXN0KTsKICAgICAgICAgcmMgPSBnbnR0YWJfY29weV9j bGFpbV9idWYob3AsICZvcC0+ZGVzdCwgZGVzdCwgR05UQ09QWV9kZXN0X2dy ZWYpOwotICAgICAgICBpZiAoIHJjIDwgMCApCisgICAgICAgIGlmICggcmMg KQogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCkBAIC0yNTc5LDYg KzI1ODEsMTQgQEAgc3RhdGljIGludCBnbnR0YWJfY29weV9vbmUoY29uc3Qg c3RydWN0CiAgICAgcmV0dXJuIHJjOwogfQogCisvKgorICogZ250dGFiX2Nv cHkoKSwgb3RoZXIgdGhhbiB0aGUgdmFyaW91cyBvdGhlciBoZWxwZXJzIG9m CisgKiBkb19ncmFudF90YWJsZV9vcCgpLCByZXR1cm5zIChiZXNpZGVzIHBv c3NpYmxlIGVycm9yIGluZGljYXRvcnMpCisgKiAiY291bnQgLSBpIiByYXRo ZXIgdGhhbiAiaSIgdG8gZW5zdXJlIHRoYXQgZXZlbiBpZiBubyBwcm9ncmVz cworICogd2FzIG1hZGUgYXQgYWxsIChwZXJoYXBzIGR1ZSB0byBnbnR0YWJf Y29weV9vbmUoKSByZXR1cm5pbmcgYQorICogcG9zaXRpdmUgdmFsdWUpIGEg bm9uLXplcm8gdmFsdWUgaXMgYmVpbmcgaGFuZGVkIGJhY2sgKHplcm8gbmVl ZHMKKyAqIHRvIGJlIGF2b2lkZWQsIGFzIHRoYXQgbWVhbnMgInN1Y2Nlc3Ms IGFsbCBkb25lIikuCisgKi8KIHN0YXRpYyBsb25nIGdudHRhYl9jb3B5KAog ICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oZ250dGFiX2NvcHlfdCkgdW9w LCB1bnNpZ25lZCBpbnQgY291bnQpCiB7CkBAIC0yNTkyLDcgKzI2MDIsNyBA QCBzdGF0aWMgbG9uZyBnbnR0YWJfY29weSgKICAgICB7CiAgICAgICAgIGlm ICggaSAmJiBoeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkKICAgICAgICAg ewotICAgICAgICAgICAgcmMgPSBpOworICAgICAgICAgICAgcmMgPSBjb3Vu dCAtIGk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0y NjAyLDEzICsyNjEyLDIwIEBAIHN0YXRpYyBsb25nIGdudHRhYl9jb3B5KAog ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBvcC5z dGF0dXMgPSBnbnR0YWJfY29weV9vbmUoJm9wLCAmZGVzdCwgJnNyYyk7Ci0g ICAgICAgIGlmICggb3Auc3RhdHVzICE9IEdOVFNUX29rYXkgKQorICAgICAg ICByYyA9IGdudHRhYl9jb3B5X29uZSgmb3AsICZkZXN0LCAmc3JjKTsKKyAg ICAgICAgaWYgKCByYyA+IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBy YyA9IGNvdW50IC0gaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9 CisgICAgICAgIGlmICggcmMgIT0gR05UU1Rfb2theSApCiAgICAgICAgIHsK ICAgICAgICAgICAgIGdudHRhYl9jb3B5X3JlbGVhc2VfYnVmKCZzcmMpOwog ICAgICAgICAgICAgZ250dGFiX2NvcHlfcmVsZWFzZV9idWYoJmRlc3QpOwog ICAgICAgICB9CiAKKyAgICAgICAgb3Auc3RhdHVzID0gcmM7CisgICAgICAg IHJjID0gMDsKICAgICAgICAgaWYgKCB1bmxpa2VseShfX2NvcHlfZmllbGRf dG9fZ3Vlc3QodW9wLCAmb3AsIHN0YXR1cykpICkKICAgICAgICAgewogICAg ICAgICAgICAgcmMgPSAtRUZBVUxUOwpAQCAtMzE0Niw2ICszMTYzLDcgQEAg ZG9fZ3JhbnRfdGFibGVfb3AoCiAgICAgICAgIHJjID0gZ250dGFiX2NvcHko Y29weSwgY291bnQpOwogICAgICAgICBpZiAoIHJjID4gMCApCiAgICAgICAg IHsKKyAgICAgICAgICAgIHJjID0gY291bnQgLSByYzsKICAgICAgICAgICAg IGd1ZXN0X2hhbmRsZV9hZGRfb2Zmc2V0KGNvcHksIHJjKTsKICAgICAgICAg ICAgIHVvcCA9IGd1ZXN0X2hhbmRsZV9jYXN0KGNvcHksIHZvaWQpOwogICAg ICAgICB9Cg== --=separator Content-Type: application/octet-stream; name="xsa226-4.6/0002-gnttab-fix-transitive-grant-handling.patch" Content-Disposition: attachment; filename="xsa226-4.6/0002-gnttab-fix-transitive-grant-handling.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGZpeCB0cmFuc2l0aXZlIGdyYW50IGhhbmRsaW5nCgpQcm9j ZXNzaW5nIG9mIHRyYW5zaXRpdmUgZ3JhbnRzIG11c3Qgbm90IHVzZSB0aGUg ZmFzdCBwYXRoLCBvciBlbHNlCnJlZmVyZW5jZSBjb3VudGluZyBicmVha3Mg ZHVlIHRvIHRoZSBza2lwcGVkIHJlY3Vyc2l2ZSBjYWxsIHRvCl9fYWNxdWly ZV9ncmFudF9mb3JfY29weSgpIChpdHMgX19yZWxlYXNlX2dyYW50X2Zvcl9j b3B5KCkKY291bnRlcnBhcnQgb2NjdXJzIGluZGVwZW5kZW50IG9mIG9yaWdp bmFsIHBpbiBjb3VudCkuIEZ1cnRoZXJtb3JlCmFmdGVyIHJlLWFjcXVpcmlu ZyB0ZW1wb3JhcmlseSBkcm9wcGVkIGxvY2tzIHdlIG5lZWQgdG8gdmVyaWZ5 IG5vIGdyYW50CnByb3BlcnRpZXMgY2hhbmdlZCBpZiB0aGUgb3JpZ2luYWwg cGluIGNvdW50IHdhcyBub24temVybzsgY2hlY2tpbmcKanVzdCB0aGUgcGlu IGNvdW50cyBpcyBzdWZmaWNpZW50IG9ubHkgZm9yIHdlbGwtYmVoYXZlZCBn dWVzdHMuIEFzIGEKcmVzdWx0LCBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHko KSBuZWVkcyB0byBtaXJyb3IgdGhhdCBuZXcgYmVoYXZpb3IuCgpGdXJ0aGVy bW9yZSBhIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSgpIGludm9jYXRpb24g d2FzIG1pc3Npbmcgb24gdGhlCnJldHJ5IHBhdGggb2YgX19hY3F1aXJlX2dy YW50X2Zvcl9jb3B5KCksIGFuZCBnbnR0YWJfc2V0X3ZlcnNpb24oKSBhbHNv Cm5lZWRzIHRvIGJhaWwgb3V0IHVwb24gZW5jb3VudGVyaW5nIGEgdHJhbnNp dGl2ZSBncmFudC4KClRoaXMgaXMgcGFydCBvZiBDVkUtMjAxNy0xMjEzNSAv IFhTQS0yMjYuCgpSZXBvcnRlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCi0tLSBhL3hlbi9j b21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMKQEAgLTIwMzYsMTMgKzIwMzYsOCBAQCBfX3JlbGVhc2VfZ3JhbnRf Zm9yX2NvcHkoCiAgICAgdW5zaWduZWQgbG9uZyByX2ZyYW1lOwogICAgIHVp bnQxNl90ICpzdGF0dXM7CiAgICAgZ3JhbnRfcmVmX3QgdHJhbnNfZ3JlZjsK LSAgICBpbnQgcmVsZWFzZWRfcmVhZDsKLSAgICBpbnQgcmVsZWFzZWRfd3Jp dGU7CiAgICAgc3RydWN0IGRvbWFpbiAqdGQ7CiAKLSAgICByZWxlYXNlZF9y ZWFkID0gMDsKLSAgICByZWxlYXNlZF93cml0ZSA9IDA7Ci0KICAgICByZWFk X2xvY2soJnJndC0+bG9jayk7CiAKICAgICBhY3QgPSBhY3RpdmVfZW50cnlf YWNxdWlyZShyZ3QsIGdyZWYpOwpAQCAtMjA3MiwxNyArMjA2NywxMSBAQCBf X3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkoCiAKICAgICAgICAgYWN0LT5waW4g LT0gR05UUElOX2hzdHdfaW5jOwogICAgICAgICBpZiAoICEoYWN0LT5waW4g JiAoR05UUElOX2RldndfbWFza3xHTlRQSU5faHN0d19tYXNrKSkgKQotICAg ICAgICB7Ci0gICAgICAgICAgICByZWxlYXNlZF93cml0ZSA9IDE7CiAgICAg ICAgICAgICBnbnR0YWJfY2xlYXJfZmxhZyhfR1RGX3dyaXRpbmcsIHN0YXR1 cyk7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoICFhY3QtPnBpbiAp Ci0gICAgewogICAgICAgICBnbnR0YWJfY2xlYXJfZmxhZyhfR1RGX3JlYWRp bmcsIHN0YXR1cyk7Ci0gICAgICAgIHJlbGVhc2VkX3JlYWQgPSAxOwotICAg IH0KIAogICAgIGFjdGl2ZV9lbnRyeV9yZWxlYXNlKGFjdCk7CiAgICAgcmVh ZF91bmxvY2soJnJndC0+bG9jayk7CkBAIC0yMDkwLDEzICsyMDc5LDEwIEBA IF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSgKICAgICBpZiAoIHRkICE9IHJk ICkKICAgICB7CiAgICAgICAgIC8qCi0gICAgICAgICAqIFJlY3Vyc2l2ZSBj YWxscywgYnV0IHRoZXkncmUgYm91bmRlZCAoYWNxdWlyZSBwZXJtaXRzIG9u bHkgYSBzaW5nbGUKKyAgICAgICAgICogUmVjdXJzaXZlIGNhbGwsIGJ1dCBp dCBpcyBib3VuZGVkIChhY3F1aXJlIHBlcm1pdHMgb25seSBhIHNpbmdsZQog ICAgICAgICAgKiBsZXZlbCBvZiB0cmFuc2l0aXZpdHkpLCBzbyBpdCdzIG9r YXkuCiAgICAgICAgICAqLwotICAgICAgICBpZiAoIHJlbGVhc2VkX3dyaXRl ICkKLSAgICAgICAgICAgIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSh0ZCwg dHJhbnNfZ3JlZiwgMCk7Ci0gICAgICAgIGVsc2UgaWYgKCByZWxlYXNlZF9y ZWFkICkKLSAgICAgICAgICAgIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSh0 ZCwgdHJhbnNfZ3JlZiwgMSk7CisgICAgICAgIF9fcmVsZWFzZV9ncmFudF9m b3JfY29weSh0ZCwgdHJhbnNfZ3JlZiwgcmVhZG9ubHkpOwogCiAgICAgICAg IHJjdV91bmxvY2tfZG9tYWluKHRkKTsKICAgICB9CkBAIC0yMTcwLDggKzIx NTYsMTA4IEBAIF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAgICAgICAg ICAgICAgICAgYWN0LT5kb21pZCwgbGRvbSwgYWN0LT5waW4pOwogCiAgICAg b2xkX3BpbiA9IGFjdC0+cGluOwotICAgIGlmICggIWFjdC0+cGluIHx8Ci0g ICAgICAgICAoIXJlYWRvbmx5ICYmICEoYWN0LT5waW4gJiAoR05UUElOX2Rl dndfbWFza3xHTlRQSU5faHN0d19tYXNrKSkpICkKKyAgICBpZiAoIHNoYTIg JiYgKHNoYWgtPmZsYWdzICYgR1RGX3R5cGVfbWFzaykgPT0gR1RGX3RyYW5z aXRpdmUgKQorICAgIHsKKyAgICAgICAgaWYgKCAoIW9sZF9waW4gfHwgKCFy ZWFkb25seSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIShvbGRf cGluICYgKEdOVFBJTl9kZXZ3X21hc2t8R05UUElOX2hzdHdfbWFzaykpKSkg JiYKKyAgICAgICAgICAgICAocmMgPSBfc2V0X3N0YXR1c192MihsZG9tLCBy ZWFkb25seSwgMCwgc2hhaCwgYWN0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0YXR1cykpICE9IEdOVFNUX29rYXkgKQorICAgICAg ICAgICAgZ290byB1bmxvY2tfb3V0OworCisgICAgICAgIGlmICggIWFsbG93 X3RyYW5zaXRpdmUgKQorICAgICAgICAgICAgUElOX0ZBSUwodW5sb2NrX291 dF9jbGVhciwgR05UU1RfZ2VuZXJhbF9lcnJvciwKKyAgICAgICAgICAgICAg ICAgICAgICJ0cmFuc2l0aXZlIGdyYW50IHdoZW4gdHJhbnNpdGl2aXR5IG5v dCBhbGxvd2VkXG4iKTsKKworICAgICAgICB0cmFuc19kb21pZCA9IHNoYTIt PnRyYW5zaXRpdmUudHJhbnNfZG9taWQ7CisgICAgICAgIHRyYW5zX2dyZWYg PSBzaGEyLT50cmFuc2l0aXZlLmdyZWY7CisgICAgICAgIGJhcnJpZXIoKTsg LyogU3RvcCB0aGUgY29tcGlsZXIgZnJvbSByZS1sb2FkaW5nCisgICAgICAg ICAgICAgICAgICAgICAgdHJhbnNfZG9taWQgZnJvbSBzaGFyZWQgbWVtb3J5 ICovCisgICAgICAgIGlmICggdHJhbnNfZG9taWQgPT0gcmQtPmRvbWFpbl9p ZCApCisgICAgICAgICAgICBQSU5fRkFJTCh1bmxvY2tfb3V0X2NsZWFyLCBH TlRTVF9nZW5lcmFsX2Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgInRy YW5zaXRpdmUgZ3JhbnRzIGNhbm5vdCBiZSBzZWxmLXJlZmVyZW50aWFsXG4i KTsKKworICAgICAgICAvKgorICAgICAgICAgKiBXZSBhbGxvdyB0aGUgdHJh bnNfZG9taWQgPT0gbGRvbSBjYXNlLCB3aGljaCBjb3JyZXNwb25kcyB0byBh CisgICAgICAgICAqIGdyYW50IGJlaW5nIGlzc3VlZCBieSBvbmUgZG9tYWlu LCBzZW50IHRvIGFub3RoZXIgb25lLCBhbmQgdGhlbgorICAgICAgICAgKiB0 cmFuc2l0aXZlbHkgZ3JhbnRlZCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBkb21h aW4uICBBbGxvd2luZyBpdAorICAgICAgICAgKiBpcyBlYXN5LCBhbmQgbWVh bnMgdGhhdCB5b3UgZG9uJ3QgbmVlZCB0byBnbyBvdXQgb2YgeW91ciB3YXkg dG8KKyAgICAgICAgICogYXZvaWQgaXQgaW4gdGhlIGd1ZXN0LgorICAgICAg ICAgKi8KKworICAgICAgICAvKiBXZSBuZWVkIHRvIGxlYXZlIHRoZSBycmQg bG9ja2VkIGR1cmluZyB0aGUgZ3JhbnQgY29weS4gKi8KKyAgICAgICAgdGQg PSByY3VfbG9ja19kb21haW5fYnlfaWQodHJhbnNfZG9taWQpOworICAgICAg ICBpZiAoIHRkID09IE5VTEwgKQorICAgICAgICAgICAgUElOX0ZBSUwodW5s b2NrX291dF9jbGVhciwgR05UU1RfZ2VuZXJhbF9lcnJvciwKKyAgICAgICAg ICAgICAgICAgICAgICJ0cmFuc2l0aXZlIGdyYW50IHJlZmVyZW5jZWQgYmFk IGRvbWFpbiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgIHRyYW5zX2Rv bWlkKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBfX2FjcXVpcmVfZ3Jh bnRfZm9yX2NvcHkoKSBjb3VsZCB0YWtlIHRoZSBsb2NrIG9uIHRoZQorICAg ICAgICAgKiByZW1vdGUgdGFibGUgKGlmIHJkID09IHRkKSwgc28gd2UgaGF2 ZSB0byBkcm9wIHRoZSBsb2NrCisgICAgICAgICAqIGhlcmUgYW5kIHJlYWNx dWlyZS4KKyAgICAgICAgICovCisgICAgICAgIGFjdGl2ZV9lbnRyeV9yZWxl YXNlKGFjdCk7CisgICAgICAgIHJlYWRfdW5sb2NrKCZyZ3QtPmxvY2spOwor CisgICAgICAgIHJjID0gX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KHRkLCB0 cmFuc19ncmVmLCByZC0+ZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZWFkb25seSwgJmdyYW50X2ZyYW1lLCBw YWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm dHJhbnNfcGFnZV9vZmYsICZ0cmFuc19sZW5ndGgsIDApOworCisgICAgICAg IHJlYWRfbG9jaygmcmd0LT5sb2NrKTsKKyAgICAgICAgYWN0ID0gYWN0aXZl X2VudHJ5X2FjcXVpcmUocmd0LCBncmVmKTsKKworICAgICAgICBpZiAoIHJj ICE9IEdOVFNUX29rYXkgKQorICAgICAgICB7CisgICAgICAgICAgICBfX2Zp eHVwX3N0YXR1c19mb3JfY29weV9waW4oYWN0LCBzdGF0dXMpOworICAgICAg ICAgICAgcmN1X3VubG9ja19kb21haW4odGQpOworICAgICAgICAgICAgYWN0 aXZlX2VudHJ5X3JlbGVhc2UoYWN0KTsKKyAgICAgICAgICAgIHJlYWRfdW5s b2NrKCZyZ3QtPmxvY2spOworICAgICAgICAgICAgcmV0dXJuIHJjOworICAg ICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgZHJvcHBlZCB0 aGUgbG9jaywgc28gd2UgaGF2ZSB0byBjaGVjayB0aGF0IHRoZSBncmFudCBk aWRuJ3QKKyAgICAgICAgICogY2hhbmdlLCBhbmQgdGhhdCBub2JvZHkgZWxz ZSB0cmllZCB0byBwaW4vdW5waW4gaXQuIElmIGFueXRoaW5nCisgICAgICAg ICAqIGNoYW5nZWQsIGp1c3QgZ2l2ZSB1cCBhbmQgdGVsbCB0aGUgY2FsbGVy IHRvIHJldHJ5LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCByZ3QtPmd0 X3ZlcnNpb24gIT0gMiB8fAorICAgICAgICAgICAgIGFjdC0+cGluICE9IG9s ZF9waW4gfHwKKyAgICAgICAgICAgICAob2xkX3BpbiAmJiAoYWN0LT5kb21p ZCAhPSBsZG9tIHx8IGFjdC0+ZnJhbWUgIT0gZ3JhbnRfZnJhbWUgfHwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgYWN0LT5zdGFydCAhPSB0cmFuc19w YWdlX29mZiB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICBhY3QtPmxl bmd0aCAhPSB0cmFuc19sZW5ndGggfHwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgYWN0LT50cmFuc19kb21haW4gIT0gdGQgfHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgYWN0LT50cmFuc19ncmVmICE9IHRyYW5zX2dyZWYg fHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIWFjdC0+aXNfc3ViX3Bh Z2UpKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIF9fcmVsZWFzZV9ncmFu dF9mb3JfY29weSh0ZCwgdHJhbnNfZ3JlZiwgcmVhZG9ubHkpOworICAgICAg ICAgICAgX19maXh1cF9zdGF0dXNfZm9yX2NvcHlfcGluKGFjdCwgc3RhdHVz KTsKKyAgICAgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKHRkKTsKKyAgICAg ICAgICAgIGFjdGl2ZV9lbnRyeV9yZWxlYXNlKGFjdCk7CisgICAgICAgICAg ICByZWFkX3VubG9jaygmcmd0LT5sb2NrKTsKKyAgICAgICAgICAgIHB1dF9w YWdlKCpwYWdlKTsKKyAgICAgICAgICAgICpwYWdlID0gTlVMTDsKKyAgICAg ICAgICAgIHJldHVybiBFUkVTVEFSVDsKKyAgICAgICAgfQorCisgICAgICAg IGlmICggIW9sZF9waW4gKQorICAgICAgICB7CisgICAgICAgICAgICBhY3Qt PmRvbWlkID0gbGRvbTsKKyAgICAgICAgICAgIGFjdC0+c3RhcnQgPSB0cmFu c19wYWdlX29mZjsKKyAgICAgICAgICAgIGFjdC0+bGVuZ3RoID0gdHJhbnNf bGVuZ3RoOworICAgICAgICAgICAgYWN0LT50cmFuc19kb21haW4gPSB0ZDsK KyAgICAgICAgICAgIGFjdC0+dHJhbnNfZ3JlZiA9IHRyYW5zX2dyZWY7Cisg ICAgICAgICAgICBhY3QtPmZyYW1lID0gZ3JhbnRfZnJhbWU7CisgICAgICAg ICAgICBhY3QtPmdmbiA9IC0xdWw7CisgICAgICAgICAgICAvKgorICAgICAg ICAgICAgICogVGhlIGFjdHVhbCByZW1vdGUgcmVtb3RlIGdyYW50IG1heSBv ciBtYXkgbm90IGJlIGEgc3ViLXBhZ2UsCisgICAgICAgICAgICAgKiBidXQg d2UgYWx3YXlzIHRyZWF0IGl0IGFzIG9uZSBiZWNhdXNlIHRoYXQgYmxvY2tz IG1hcHBpbmdzIG9mCisgICAgICAgICAgICAgKiB0cmFuc2l0aXZlIGdyYW50 cy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgYWN0LT5pc19zdWJf cGFnZSA9IDE7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAoICFv bGRfcGluIHx8CisgICAgICAgICAgICAgICghcmVhZG9ubHkgJiYgIShvbGRf cGluICYgKEdOVFBJTl9kZXZ3X21hc2t8R05UUElOX2hzdHdfbWFzaykpKSAp CiAgICAgewogICAgICAgICBpZiAoIChyYyA9IF9zZXRfc3RhdHVzKHJndC0+ Z3RfdmVyc2lvbiwgbGRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZWFkb25seSwgMCwgc2hhaCwgYWN0LApAQCAtMjE5Miw3OSArMjI3 OCw2IEBAIF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAgICAgICAgICAg IHRyYW5zX3BhZ2Vfb2ZmID0gMDsKICAgICAgICAgICAgIHRyYW5zX2xlbmd0 aCA9IFBBR0VfU0laRTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmICgg KHNoYWgtPmZsYWdzICYgR1RGX3R5cGVfbWFzaykgPT0gR1RGX3RyYW5zaXRp dmUgKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoICFhbGxvd190cmFu c2l0aXZlICkKLSAgICAgICAgICAgICAgICBQSU5fRkFJTCh1bmxvY2tfb3V0 X2NsZWFyLCBHTlRTVF9nZW5lcmFsX2Vycm9yLAotICAgICAgICAgICAgICAg ICAgICAgICAgICJ0cmFuc2l0aXZlIGdyYW50IHdoZW4gdHJhbnNpdGl2aXR5 IG5vdCBhbGxvd2VkXG4iKTsKLQotICAgICAgICAgICAgdHJhbnNfZG9taWQg PSBzaGEyLT50cmFuc2l0aXZlLnRyYW5zX2RvbWlkOwotICAgICAgICAgICAg dHJhbnNfZ3JlZiA9IHNoYTItPnRyYW5zaXRpdmUuZ3JlZjsKLSAgICAgICAg ICAgIGJhcnJpZXIoKTsgLyogU3RvcCB0aGUgY29tcGlsZXIgZnJvbSByZS1s b2FkaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zX2RvbWlk IGZyb20gc2hhcmVkIG1lbW9yeSAqLwotICAgICAgICAgICAgaWYgKCB0cmFu c19kb21pZCA9PSByZC0+ZG9tYWluX2lkICkKLSAgICAgICAgICAgICAgICBQ SU5fRkFJTCh1bmxvY2tfb3V0X2NsZWFyLCBHTlRTVF9nZW5lcmFsX2Vycm9y LAotICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2l0aXZlIGdyYW50 cyBjYW5ub3QgYmUgc2VsZi1yZWZlcmVudGlhbFxuIik7Ci0KLSAgICAgICAg ICAgIC8qIFdlIGFsbG93IHRoZSB0cmFuc19kb21pZCA9PSBsZG9tIGNhc2Us IHdoaWNoCi0gICAgICAgICAgICAgICBjb3JyZXNwb25kcyB0byBhIGdyYW50 IGJlaW5nIGlzc3VlZCBieSBvbmUgZG9tYWluLCBzZW50Ci0gICAgICAgICAg ICAgICB0byBhbm90aGVyIG9uZSwgYW5kIHRoZW4gdHJhbnNpdGl2ZWx5IGdy YW50ZWQgYmFjayB0bwotICAgICAgICAgICAgICAgdGhlIG9yaWdpbmFsIGRv bWFpbi4gIEFsbG93aW5nIGl0IGlzIGVhc3ksIGFuZCBtZWFucwotICAgICAg ICAgICAgICAgdGhhdCB5b3UgZG9uJ3QgbmVlZCB0byBnbyBvdXQgb2YgeW91 ciB3YXkgdG8gYXZvaWQgaXQKLSAgICAgICAgICAgICAgIGluIHRoZSBndWVz dC4gKi8KLQotICAgICAgICAgICAgLyogV2UgbmVlZCB0byBsZWF2ZSB0aGUg cnJkIGxvY2tlZCBkdXJpbmcgdGhlIGdyYW50IGNvcHkgKi8KLSAgICAgICAg ICAgIHRkID0gcmN1X2xvY2tfZG9tYWluX2J5X2lkKHRyYW5zX2RvbWlkKTsK LSAgICAgICAgICAgIGlmICggdGQgPT0gTlVMTCApCi0gICAgICAgICAgICAg ICAgUElOX0ZBSUwodW5sb2NrX291dF9jbGVhciwgR05UU1RfZ2VuZXJhbF9l cnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNpdGl2ZSBn cmFudCByZWZlcmVuY2VkIGJhZCBkb21haW4gJWRcbiIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgdHJhbnNfZG9taWQpOwotCi0gICAgICAgICAgICAv KgotICAgICAgICAgICAgICogX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KCkg Y291bGQgdGFrZSB0aGUgbG9jayBvbiB0aGUKLSAgICAgICAgICAgICAqIHJl bW90ZSB0YWJsZSAoaWYgcmQgPT0gdGQpLCBzbyB3ZSBoYXZlIHRvIGRyb3Ag dGhlIGxvY2sKLSAgICAgICAgICAgICAqIGhlcmUgYW5kIHJlYWNxdWlyZQot ICAgICAgICAgICAgICovCi0gICAgICAgICAgICBhY3RpdmVfZW50cnlfcmVs ZWFzZShhY3QpOwotICAgICAgICAgICAgcmVhZF91bmxvY2soJnJndC0+bG9j ayk7Ci0KLSAgICAgICAgICAgIHJjID0gX19hY3F1aXJlX2dyYW50X2Zvcl9j b3B5KHRkLCB0cmFuc19ncmVmLCByZC0+ZG9tYWluX2lkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHksICZn cmFudF9mcmFtZSwgcGFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZ0cmFuc19wYWdlX29mZiwgJnRyYW5zX2xlbmd0 aCwgMCk7Ci0KLSAgICAgICAgICAgIHJlYWRfbG9jaygmcmd0LT5sb2NrKTsK LSAgICAgICAgICAgIGFjdCA9IGFjdGl2ZV9lbnRyeV9hY3F1aXJlKHJndCwg Z3JlZik7Ci0KLSAgICAgICAgICAgIGlmICggcmMgIT0gR05UU1Rfb2theSAp IHsKLSAgICAgICAgICAgICAgICBfX2ZpeHVwX3N0YXR1c19mb3JfY29weV9w aW4oYWN0LCBzdGF0dXMpOwotICAgICAgICAgICAgICAgIHJjdV91bmxvY2tf ZG9tYWluKHRkKTsKLSAgICAgICAgICAgICAgICBhY3RpdmVfZW50cnlfcmVs ZWFzZShhY3QpOwotICAgICAgICAgICAgICAgIHJlYWRfdW5sb2NrKCZyZ3Qt PmxvY2spOwotICAgICAgICAgICAgICAgIHJldHVybiByYzsKLSAgICAgICAg ICAgIH0KLQotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFdlIGRy b3BwZWQgdGhlIGxvY2ssIHNvIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBub2Jv ZHkgZWxzZSB0cmllZAotICAgICAgICAgICAgICogdG8gcGluIChvciwgZm9y IHRoYXQgbWF0dGVyLCB1bnBpbikgdGhlIHJlZmVyZW5jZSBpbiAqdGhpcyoK LSAgICAgICAgICAgICAqIGRvbWFpbi4gIElmIHRoZXkgZGlkLCBqdXN0IGdp dmUgdXAgYW5kIHRlbGwgdGhlIGNhbGxlciB0byByZXRyeS4KLSAgICAgICAg ICAgICAqLwotICAgICAgICAgICAgaWYgKCBhY3QtPnBpbiAhPSBvbGRfcGlu ICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBfX2ZpeHVwX3N0 YXR1c19mb3JfY29weV9waW4oYWN0LCBzdGF0dXMpOwotICAgICAgICAgICAg ICAgIHJjdV91bmxvY2tfZG9tYWluKHRkKTsKLSAgICAgICAgICAgICAgICBh Y3RpdmVfZW50cnlfcmVsZWFzZShhY3QpOwotICAgICAgICAgICAgICAgIHJl YWRfdW5sb2NrKCZyZ3QtPmxvY2spOwotICAgICAgICAgICAgICAgIHB1dF9w YWdlKCpwYWdlKTsKLSAgICAgICAgICAgICAgICAqcGFnZSA9IE5VTEw7Ci0g ICAgICAgICAgICAgICAgcmV0dXJuIEVSRVNUQVJUOwotICAgICAgICAgICAg fQotCi0gICAgICAgICAgICAvKiBUaGUgYWN0dWFsIHJlbW90ZSByZW1vdGUg Z3JhbnQgbWF5IG9yIG1heSBub3QgYmUgYQotICAgICAgICAgICAgICAgc3Vi LXBhZ2UsIGJ1dCB3ZSBhbHdheXMgdHJlYXQgaXQgYXMgb25lIGJlY2F1c2Ug dGhhdAotICAgICAgICAgICAgICAgYmxvY2tzIG1hcHBpbmdzIG9mIHRyYW5z aXRpdmUgZ3JhbnRzLiAqLwotICAgICAgICAgICAgaXNfc3ViX3BhZ2UgPSAx OwotICAgICAgICAgICAgYWN0LT5nZm4gPSAtMXVsOwotICAgICAgICB9CiAg ICAgICAgIGVsc2UgaWYgKCAhKHNoYTItPmhkci5mbGFncyAmIEdURl9zdWJf cGFnZSkgKQogICAgICAgICB7CiAgICAgICAgICAgICByYyA9IF9fZ2V0X3Bh Z2VkX2ZyYW1lKHNoYTItPmZ1bGxfcGFnZS5mcmFtZSwgJmdyYW50X2ZyYW1l LCBwYWdlLCByZWFkb25seSwgcmQpOwpAQCAtMjY5NiwxMCArMjcwOSwxMyBA QCBnbnR0YWJfc2V0X3ZlcnNpb24oWEVOX0dVRVNUX0hBTkRMRV9QQVJBCiAg ICAgY2FzZSAyOgogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEdOVFRBQl9O Ul9SRVNFUlZFRF9FTlRSSUVTOyBpKysgKQogICAgICAgICB7Ci0gICAgICAg ICAgICBpZiAoICgoc2hhcmVkX2VudHJ5X3YyKGd0LCBpKS5oZHIuZmxhZ3Mg JiBHVEZfdHlwZV9tYXNrKSA9PQotICAgICAgICAgICAgICAgICAgR1RGX3Bl cm1pdF9hY2Nlc3MpICYmCi0gICAgICAgICAgICAgICAgIChzaGFyZWRfZW50 cnlfdjIoZ3QsIGkpLmZ1bGxfcGFnZS5mcmFtZSA+PiAzMikgKQorICAgICAg ICAgICAgc3dpdGNoICggc2hhcmVkX2VudHJ5X3YyKGd0LCBpKS5oZHIuZmxh Z3MgJiBHVEZfdHlwZV9tYXNrICkKICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgIGNhc2UgR1RGX3Blcm1pdF9hY2Nlc3M6CisgICAgICAgICAgICAgICAg IGlmICggIShzaGFyZWRfZW50cnlfdjIoZ3QsIGkpLmZ1bGxfcGFnZS5mcmFt ZSA+PiAzMikgKQorICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAg Y2FzZSBHVEZfdHJhbnNpdGl2ZToKICAgICAgICAgICAgICAgICBnZHByaW50 ayhYRU5MT0dfV0FSTklORywKICAgICAgICAgICAgICAgICAgICAgICAgICAi dHJpZWQgdG8gY2hhbmdlIGdyYW50IHRhYmxlIHZlcnNpb24gdG8gMSB3aXRo IG5vbi1yZXByZXNlbnRhYmxlIGVudHJpZXNcbiIpOwogICAgICAgICAgICAg ICAgIHJlcyA9IC1FUkFOR0U7Cg== --=separator Content-Type: application/octet-stream; name="xsa226-4.7.patch" Content-Disposition: attachment; filename="xsa226-4.7.patch" Content-Transfer-Encoding: base64 RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KU3ViamVjdDogZ3JhbnRfdGFibGU6IERlZmF1bHQgdG8gdjEsIGFuZCBk aXNhbGxvdyB0cmFuc2l0aXZlIGdyYW50cwoKVGhlIHJlZmVyZW5jZSBjb3Vu dGluZyBhbmQgbG9ja2luZyBkaXNjaXBsaW5lIGZvciB0cmFuc2l0aXZlIGdy YW50cyBpcyBicm9rZW4uClRoZWlyIHVzZSBpcyB0aGVyZWZvcmUgZGVjbGFy ZWQgb3V0IG9mIHNlY3VyaXR5IHN1cHBvcnQuCgpUaGlzIGlzIFhTQS0yMjYu CgpUcmFuc2l0aXZlIGdyYW50cyBhcmUgZXhwZWN0ZWQgdG8gYmUgdW5jb25k aXRpb25hbGx5IGF2YWlsYWJsZSB3aXRoIGdyYW50CnRhYmxlIHYyLiAgSGlk aW5nIHRyYW5zaXRpdmUgZ3JhbnRzIGFsb25lIGlzIGFuIEFCSSBicmVha2Fn ZSBmb3IgdGhlIGd1ZXN0LgpNb2Rlcm4gdmVyc2lvbnMgb2YgTGludXggYW5k IHRoZSBXaW5kb3dzIFBWIGRyaXZlcnMgdXNlIGdyYW50IHRhYmxlIHYxLCBi dXQKb2xkZXIgdmVyc2lvbnMgZGlkIHVzZSB2Mi4KCkluIHByaW5jaXBsZSwg ZGlzYWJsaW5nIGdudHRhYiB2MiBlbnRpcmVseSBpcyB0aGUgc2FmZXIgd2F5 IHRvIGNhdXNlIGd1ZXN0cyB0bwphdm9pZCB1c2luZyB0cmFuc2l0aXZlIGdy YW50cy4gSG93ZXZlciwgc29tZSBvbGRlciBndWVzdHMgd2hpY2ggZGVmYXVs dGVkIHRvCnVzaW5nIGdudHRhYiB2MiBkb24ndCB0b2xlcmF0ZSBmYWxsaW5n IGJhY2sgZnJvbSB2MiB0byB2MSBvdmVyIG1pZ3JhdGUuCgpUaGlzIHBhdGNo IGludHJvZHVjZXMgYSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBjb250 cm9sIGdyYW50IHRhYmxlCmJlaGF2aW91ci4gIE9uZSBzdWJvcHRpb24gYWxs b3dzIGEgY2hvaWNlIG9mIHRoZSBtYXhpbXVtIGdyYW50IHRhYmxlIHZlcnNp b24KWGVuIHdpbGwgYWxsb3cgdGhlIGd1ZXN0IHRvIHVzZSwgYW5kIGRlZmF1 bHRzIHRvIHYyLiAgQSBkaWZmZXJlbnQgc3Vib3B0aW9uCmluZGVwZW5kZW50 bHkgY29udHJvbHMgd2hldGhlciB0cmFuc2l0aXZlIGdyYW50cyBjYW4gYmUg dXNlZC4KClRoZSBkZWZhdWx0IGNhc2UgaXM6CgogICAgZ250dGFiPW1heF92 ZXI6MgoKVG8gZGlzYWJsZSBnbnR0YWIgdjIgZW50aXJlbHksIHVzZToKCiAg ICBnbnR0YWI9bWF4X3ZlcjoxCgpUbyBhbGxvdyBnbnR0YWIgdjIgYW5kIHRy YW5zaXRpdmUgZ3JhbnRzLCB1c2U6CgogICAgZ250dGFiPW1heF92ZXI6Mix0 cmFuc2l0aXZlCgpSZXBvcnRlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNo QHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgpkaWZmIC0tZ2l0IGEvZG9jcy9taXNj L3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93bgppbmRleCA3M2Y1MjY1Li5iNzkyYWJmIDEw MDY0NAotLS0gYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93 bgorKysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgpA QCAtNzU4LDYgKzc1OCwyMiBAQCBDb250cm9scyBFUFQgcmVsYXRlZCBmZWF0 dXJlcy4KIAogU3BlY2lmeSB3aGljaCBjb25zb2xlIGdkYnN0dWIgc2hvdWxk IHVzZS4gU2VlICoqY29uc29sZSoqLgogCisjIyMgZ250dGFiCis+IGA9IExp c3Qgb2YgWyBtYXhfdmVyOjxpbnRlZ2VyPiwgdHJhbnNpdGl2ZSBdYAorCis+ IERlZmF1bHQ6IGBnbnR0YWI9bWF4X3ZlcjoyLG5vLXRyYW5zaXRpdmVgCisK K0NvbnRyb2wgdmFyaW91cyBhc3BlY3RzIG9mIHRoZSBncmFudCB0YWJsZSBi ZWhhdmlvdXIgYXZhaWxhYmxlIHRvIGd1ZXN0cy4KKworKiBgbWF4X3ZlcmAg U2VsZWN0IHRoZSBtYXhpbXVtIGdyYW50IHRhYmxlIHZlcnNpb24gdG8gb2Zm ZXIgdG8gZ3Vlc3RzLiAgVmFsaWQKK3ZlcnNpb24gYXJlIDEgYW5kIDIuCisq IGB0cmFuc2l0aXZlYCBQZXJtaXQgb3IgZGlzYWxsb3cgdGhlIHVzZSBvZiB0 cmFuc2l0aXZlIGdyYW50cy4gIE5vdGUgdGhhdCB0aGUKK3VzZSBvZiBncmFu dCB0YWJsZSB2MiB3aXRob3V0IHRyYW5zaXRpdmUgZ3JhbnRzIGlzIGFuIEFC SSBicmVha2FnZSBmcm9tIHRoZQorZ3Vlc3RzIHBvaW50IG9mIHZpZXcuCisK KypXYXJuaW5nOioKK0R1ZSB0byBYU0EtMjI2LCB0aGUgdXNlIG9mIHRyYW5z aXRpdmUgZ3JhbnRzIGlzIG91dHNpZGUgb2Ygc2VjdXJpdHkgc3VwcG9ydC4K KwogIyMjIGdudHRhYlxfbWF4XF9mcmFtZXMKID4gYD0gPGludGVnZXI+YAog CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgYi94ZW4v Y29tbW9uL2dyYW50X3RhYmxlLmMKaW5kZXggZjA2YjY2NC4uMTA5YzU1MiAx MDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hl bi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAtNTAsNiArNTAsNDIgQEAgaW50 ZWdlcl9wYXJhbSgiZ250dGFiX21heF9ucl9mcmFtZXMiLCBtYXhfbnJfZ3Jh bnRfZnJhbWVzKTsKIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IG1heF9n cmFudF9mcmFtZXM7CiBpbnRlZ2VyX3BhcmFtKCJnbnR0YWJfbWF4X2ZyYW1l cyIsIG1heF9ncmFudF9mcmFtZXMpOwogCitzdGF0aWMgdW5zaWduZWQgaW50 IF9fcmVhZF9tb3N0bHkgb3B0X2dudHRhYl9tYXhfdmVyc2lvbiA9IDI7Citz dGF0aWMgYm9vbF90IF9fcmVhZF9tb3N0bHkgb3B0X3RyYW5zaXRpdmVfZ3Jh bnRzOworCitzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfZ250dGFiKGNoYXIg KnMpCit7CisgICAgY2hhciAqc3M7CisKKyAgICBkbyB7CisgICAgICAgIHNz ID0gc3RyY2hyKHMsICcsJyk7CisgICAgICAgIGlmICggc3MgKQorICAgICAg ICAgICAgKnNzID0gJ1wwJzsKKworICAgICAgICBpZiAoICFzdHJuY21wKHMs ICJtYXhfdmVyOiIsIDgpICkKKyAgICAgICAgeworICAgICAgICAgICAgbG9u ZyB2ZXIgPSBzaW1wbGVfc3RydG9sKHMgKyA4LCBOVUxMLCAxMCk7CisKKyAg ICAgICAgICAgIGlmICggdmVyID49IDEgJiYgdmVyIDw9IDIgKQorICAgICAg ICAgICAgICAgIG9wdF9nbnR0YWJfbWF4X3ZlcnNpb24gPSB2ZXI7CisgICAg ICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBi b29sX3QgdmFsID0gISFzdHJuY21wKHMsICJuby0iLCAzKTsKKworICAgICAg ICAgICAgaWYgKCAhdmFsICkKKyAgICAgICAgICAgICAgICBzICs9IDM7CisK KyAgICAgICAgICAgIGlmICggIXN0cmNtcChzLCAidHJhbnNpdGl2ZSIpICkK KyAgICAgICAgICAgICAgICBvcHRfdHJhbnNpdGl2ZV9ncmFudHMgPSB2YWw7 CisgICAgICAgIH0KKworICAgICAgICBzID0gc3MgKyAxOworICAgIH0gd2hp bGUgKCBzcyApOworfQorCitjdXN0b21fcGFyYW0oImdudHRhYiIsIHBhcnNl X2dudHRhYik7CisKIC8qIFRoZSBtYXhpbXVtIG51bWJlciBvZiBncmFudCBt YXBwaW5ncyBpcyBkZWZpbmVkIGFzIGEgbXVsdGlwbGllciBvZiB0aGUKICAq IG1heGltdW0gbnVtYmVyIG9mIGdyYW50IHRhYmxlIGVudHJpZXMuIFRoaXMg ZGVmaW5lcyB0aGUgbXVsdGlwbGllciB1c2VkLgogICogUHJldHR5IGFyYml0 cmFyeS4gW1BPTElDWV0KQEAgLTIxODgsNiArMjIyNCwxMCBAQCBfX2FjcXVp cmVfZ3JhbnRfZm9yX2NvcHkoCiAgICAgICAgIH0KICAgICAgICAgZWxzZSBp ZiAoIChzaGFoLT5mbGFncyAmIEdURl90eXBlX21hc2spID09IEdURl90cmFu c2l0aXZlICkKICAgICAgICAgeworICAgICAgICAgICAgaWYgKCAhb3B0X3Ry YW5zaXRpdmVfZ3JhbnRzICkKKyAgICAgICAgICAgICAgICBQSU5fRkFJTCh1 bmxvY2tfb3V0X2NsZWFyLCBHTlRTVF9nZW5lcmFsX2Vycm9yLAorICAgICAg ICAgICAgICAgICAgICAgICAgICJ0cmFuc2l0aXZlIGdyYW50IGRpc2FsbG93 ZWQgYnkgcG9saWN5XG4iKTsKKwogICAgICAgICAgICAgaWYgKCAhYWxsb3df dHJhbnNpdGl2ZSApCiAgICAgICAgICAgICAgICAgUElOX0ZBSUwodW5sb2Nr X291dF9jbGVhciwgR05UU1RfZ2VuZXJhbF9lcnJvciwKICAgICAgICAgICAg ICAgICAgICAgICAgICAidHJhbnNpdGl2ZSBncmFudCB3aGVuIHRyYW5zaXRp dml0eSBub3QgYWxsb3dlZFxuIik7CkBAIC0zMTU2LDcgKzMxOTYsMTAgQEAg ZG9fZ3JhbnRfdGFibGVfb3AoCiAgICAgfQogICAgIGNhc2UgR05UVEFCT1Bf c2V0X3ZlcnNpb246CiAgICAgewotICAgICAgICByYyA9IGdudHRhYl9zZXRf dmVyc2lvbihndWVzdF9oYW5kbGVfY2FzdCh1b3AsIGdudHRhYl9zZXRfdmVy c2lvbl90KSk7CisgICAgICAgIGlmICggb3B0X2dudHRhYl9tYXhfdmVyc2lv biA9PSAxICkKKyAgICAgICAgICAgIHJjID0gLUVOT1NZUzsgLyogQmVoYXZl IGFzIGJlZm9yZSBzZXRfdmVyc2lvbiB3YXMgaW50cm9kdWNlZC4gKi8KKyAg ICAgICAgZWxzZQorICAgICAgICAgICAgcmMgPSBnbnR0YWJfc2V0X3ZlcnNp b24oZ3Vlc3RfaGFuZGxlX2Nhc3QodW9wLCBnbnR0YWJfc2V0X3ZlcnNpb25f dCkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHTlRUQUJP UF9nZXRfc3RhdHVzX2ZyYW1lczoK --=separator Content-Type: application/octet-stream; name="xsa226-4.9/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch" Content-Disposition: attachment; filename="xsa226-4.9/0001-gnttab-dont-use-possibly-unbounded-tail-calls.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGRvbid0IHVzZSBwb3NzaWJseSB1bmJvdW5kZWQgdGFpbCBj YWxscwoKVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgdGhlIGNvbXBpbGVy IHdvdWxkIGFjdHVhbGx5IHRyYW5zbGF0ZSB0aGVtCnRvIGJyYW5jaGVzIGlu c3RlYWQgb2YgY2FsbHMsIHNvIG9ubHkgb25lcyB3aXRoIGEga25vd24gcmVj dXJzaW9uIGxpbWl0CmFyZSBva2F5OgotIF9fcmVsZWFzZV9ncmFudF9mb3Jf Y29weSgpIGNhbiBjYWxsIGl0c2VsZiBvbmx5IG9uY2UsIGFzCiAgX19hY3F1 aXJlX2dyYW50X2Zvcl9jb3B5KCkgd29uJ3QgcGVybWl0IHVzZSBvZiBtdWx0 aS1sZXZlbCB0cmFuc2l0aXZlCiAgZ3JhbnRzLAotIF9fYWNxdWlyZV9ncmFu dF9mb3JfY29weSgpIGlzIGZpbmUgdG8gY2FsbCBpdHNlbGYgd2l0aCB0aGUg bGFzdAogIGFyZ3VtZW50IGZhbHNlLCBhcyB0aGF0IHByZXZlbnRzIGZ1cnRo ZXIgcmVjdXJzaW9uLAotIF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSgpIG11 c3Qgbm90IGNhbGwgaXRzZWxmIHRvIHJlY292ZXIgZnJvbSBhbgogIG9ic2Vy dmVkIGNoYW5nZSB0byB0aGUgYWN0aXZlIGVudHJ5J3MgcGluIGNvdW50CgpU aGlzIGlzIHBhcnQgb2YgQ1ZFLTIwMTctMTIxMzUgLyBYU0EtMjI2LgoKU2ln bmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoK LS0tIGEveGVuL2NvbW1vbi9jb21wYXQvZ3JhbnRfdGFibGUuYworKysgYi94 ZW4vY29tbW9uL2NvbXBhdC9ncmFudF90YWJsZS5jCkBAIC0yNTgsOSArMjU4 LDkgQEAgaW50IGNvbXBhdF9ncmFudF90YWJsZV9vcCh1bnNpZ25lZCBpbnQg Y21kLAogICAgICAgICAgICAgICAgIHJjID0gZ250dGFiX2NvcHkoZ3Vlc3Rf aGFuZGxlX2Nhc3QobmF0LnVvcCwgZ250dGFiX2NvcHlfdCksIG4pOwogICAg ICAgICAgICAgaWYgKCByYyA+IDAgKQogICAgICAgICAgICAgewotICAgICAg ICAgICAgICAgIEFTU0VSVChyYyA8IG4pOwotICAgICAgICAgICAgICAgIGkg LT0gbiAtIHJjOwotICAgICAgICAgICAgICAgIG4gPSByYzsKKyAgICAgICAg ICAgICAgICBBU1NFUlQocmMgPD0gbik7CisgICAgICAgICAgICAgICAgaSAt PSByYzsKKyAgICAgICAgICAgICAgICBuIC09IHJjOwogICAgICAgICAgICAg fQogICAgICAgICAgICAgaWYgKCByYyA+PSAwICkKICAgICAgICAgICAgIHsK LS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hlbi9jb21t b24vZ3JhbnRfdGFibGUuYwpAQCAtMjEwMyw4ICsyMTAzLDEwIEBAIF9fcmVs ZWFzZV9ncmFudF9mb3JfY29weSgKIAogICAgIGlmICggdGQgIT0gcmQgKQog ICAgIHsKLSAgICAgICAgLyogUmVjdXJzaXZlIGNhbGxzLCBidXQgdGhleSdy ZSB0YWlsIGNhbGxzLCBzbyBpdCdzCi0gICAgICAgICAgIG9rYXkuICovCisg ICAgICAgIC8qCisgICAgICAgICAqIFJlY3Vyc2l2ZSBjYWxscywgYnV0IHRo ZXkncmUgYm91bmRlZCAoYWNxdWlyZSBwZXJtaXRzIG9ubHkgYSBzaW5nbGUK KyAgICAgICAgICogbGV2ZWwgb2YgdHJhbnNpdGl2aXR5KSwgc28gaXQncyBv a2F5LgorICAgICAgICAgKi8KICAgICAgICAgaWYgKCByZWxlYXNlZF93cml0 ZSApCiAgICAgICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkodGQs IHRyYW5zX2dyZWYsIDApOwogICAgICAgICBlbHNlIGlmICggcmVsZWFzZWRf cmVhZCApCkBAIC0yMjU1LDEwICsyMjU3LDExIEBAIF9fYWNxdWlyZV9ncmFu dF9mb3JfY29weSgKICAgICAgICAgICAgICAgICByZXR1cm4gcmM7CiAgICAg ICAgICAgICB9CiAKLSAgICAgICAgICAgIC8qIFdlIGRyb3BwZWQgdGhlIGxv Y2ssIHNvIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBub2JvZHkKLSAgICAgICAg ICAgICAgIGVsc2UgdHJpZWQgdG8gcGluIChvciwgZm9yIHRoYXQgbWF0dGVy LCB1bnBpbikgdGhlCi0gICAgICAgICAgICAgICByZWZlcmVuY2UgaW4gKnRo aXMqIGRvbWFpbi4gIElmIHRoZXkgZGlkLCBqdXN0IGdpdmUgdXAKLSAgICAg ICAgICAgICAgIGFuZCB0cnkgYWdhaW4uICovCisgICAgICAgICAgICAvKgor ICAgICAgICAgICAgICogV2UgZHJvcHBlZCB0aGUgbG9jaywgc28gd2UgaGF2 ZSB0byBjaGVjayB0aGF0IG5vYm9keSBlbHNlIHRyaWVkCisgICAgICAgICAg ICAgKiB0byBwaW4gKG9yLCBmb3IgdGhhdCBtYXR0ZXIsIHVucGluKSB0aGUg cmVmZXJlbmNlIGluICp0aGlzKgorICAgICAgICAgICAgICogZG9tYWluLiAg SWYgdGhleSBkaWQsIGp1c3QgZ2l2ZSB1cCBhbmQgdGVsbCB0aGUgY2FsbGVy IHRvIHJldHJ5LgorICAgICAgICAgICAgICovCiAgICAgICAgICAgICBpZiAo IGFjdC0+cGluICE9IG9sZF9waW4gKQogICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgIF9fZml4dXBfc3RhdHVzX2Zvcl9jb3B5X3BpbihhY3QsIHN0 YXR1cyk7CkBAIC0yMjY2LDkgKzIyNjksOCBAQCBfX2FjcXVpcmVfZ3JhbnRf Zm9yX2NvcHkoCiAgICAgICAgICAgICAgICAgYWN0aXZlX2VudHJ5X3JlbGVh c2UoYWN0KTsKICAgICAgICAgICAgICAgICBncmFudF9yZWFkX3VubG9jayhy Z3QpOwogICAgICAgICAgICAgICAgIHB1dF9wYWdlKCpwYWdlKTsKLSAgICAg ICAgICAgICAgICByZXR1cm4gX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KHJk LCBncmVmLCBsZG9tLCByZWFkb25seSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLCBwYWdlLCBwYWdl X29mZiwgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWxsb3dfdHJhbnNpdGl2ZSk7CisgICAgICAg ICAgICAgICAgKnBhZ2UgPSBOVUxMOworICAgICAgICAgICAgICAgIHJldHVy biBFUkVTVEFSVDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLyog VGhlIGFjdHVhbCByZW1vdGUgcmVtb3RlIGdyYW50IG1heSBvciBtYXkgbm90 IGJlIGEKQEAgLTI1NzQsNyArMjU3Niw3IEBAIHN0YXRpYyBpbnQgZ250dGFi X2NvcHlfb25lKGNvbnN0IHN0cnVjdAogICAgIHsKICAgICAgICAgZ250dGFi X2NvcHlfcmVsZWFzZV9idWYoc3JjKTsKICAgICAgICAgcmMgPSBnbnR0YWJf Y29weV9jbGFpbV9idWYob3AsICZvcC0+c291cmNlLCBzcmMsIEdOVENPUFlf c291cmNlX2dyZWYpOwotICAgICAgICBpZiAoIHJjIDwgMCApCisgICAgICAg IGlmICggcmMgKQogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCkBA IC0yNTg0LDcgKzI1ODYsNyBAQCBzdGF0aWMgaW50IGdudHRhYl9jb3B5X29u ZShjb25zdCBzdHJ1Y3QKICAgICB7CiAgICAgICAgIGdudHRhYl9jb3B5X3Jl bGVhc2VfYnVmKGRlc3QpOwogICAgICAgICByYyA9IGdudHRhYl9jb3B5X2Ns YWltX2J1ZihvcCwgJm9wLT5kZXN0LCBkZXN0LCBHTlRDT1BZX2Rlc3RfZ3Jl Zik7Ci0gICAgICAgIGlmICggcmMgPCAwICkKKyAgICAgICAgaWYgKCByYyAp CiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKQEAgLTI1OTMsNiAr MjU5NSwxNCBAQCBzdGF0aWMgaW50IGdudHRhYl9jb3B5X29uZShjb25zdCBz dHJ1Y3QKICAgICByZXR1cm4gcmM7CiB9CiAKKy8qCisgKiBnbnR0YWJfY29w eSgpLCBvdGhlciB0aGFuIHRoZSB2YXJpb3VzIG90aGVyIGhlbHBlcnMgb2YK KyAqIGRvX2dyYW50X3RhYmxlX29wKCksIHJldHVybnMgKGJlc2lkZXMgcG9z c2libGUgZXJyb3IgaW5kaWNhdG9ycykKKyAqICJjb3VudCAtIGkiIHJhdGhl ciB0aGFuICJpIiB0byBlbnN1cmUgdGhhdCBldmVuIGlmIG5vIHByb2dyZXNz CisgKiB3YXMgbWFkZSBhdCBhbGwgKHBlcmhhcHMgZHVlIHRvIGdudHRhYl9j b3B5X29uZSgpIHJldHVybmluZyBhCisgKiBwb3NpdGl2ZSB2YWx1ZSkgYSBu b24temVybyB2YWx1ZSBpcyBiZWluZyBoYW5kZWQgYmFjayAoemVybyBuZWVk cworICogdG8gYmUgYXZvaWRlZCwgYXMgdGhhdCBtZWFucyAic3VjY2Vzcywg YWxsIGRvbmUiKS4KKyAqLwogc3RhdGljIGxvbmcgZ250dGFiX2NvcHkoCiAg ICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShnbnR0YWJfY29weV90KSB1b3As IHVuc2lnbmVkIGludCBjb3VudCkKIHsKQEAgLTI2MDYsNyArMjYxNiw3IEBA IHN0YXRpYyBsb25nIGdudHRhYl9jb3B5KAogICAgIHsKICAgICAgICAgaWYg KCBpICYmIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQogICAgICAgICB7 Ci0gICAgICAgICAgICByYyA9IGk7CisgICAgICAgICAgICByYyA9IGNvdW50 IC0gaTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI2 MTYsMTMgKzI2MjYsMjAgQEAgc3RhdGljIGxvbmcgZ250dGFiX2NvcHkoCiAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIG9wLnN0 YXR1cyA9IGdudHRhYl9jb3B5X29uZSgmb3AsICZkZXN0LCAmc3JjKTsKLSAg ICAgICAgaWYgKCBvcC5zdGF0dXMgIT0gR05UU1Rfb2theSApCisgICAgICAg IHJjID0gZ250dGFiX2NvcHlfb25lKCZvcCwgJmRlc3QsICZzcmMpOworICAg ICAgICBpZiAoIHJjID4gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJj ID0gY291bnQgLSBpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K KyAgICAgICAgaWYgKCByYyAhPSBHTlRTVF9va2F5ICkKICAgICAgICAgewog ICAgICAgICAgICAgZ250dGFiX2NvcHlfcmVsZWFzZV9idWYoJnNyYyk7CiAg ICAgICAgICAgICBnbnR0YWJfY29weV9yZWxlYXNlX2J1ZigmZGVzdCk7CiAg ICAgICAgIH0KIAorICAgICAgICBvcC5zdGF0dXMgPSByYzsKKyAgICAgICAg cmMgPSAwOwogICAgICAgICBpZiAoIHVubGlrZWx5KF9fY29weV9maWVsZF90 b19ndWVzdCh1b3AsICZvcCwgc3RhdHVzKSkgKQogICAgICAgICB7CiAgICAg ICAgICAgICByYyA9IC1FRkFVTFQ7CkBAIC0zMTYwLDYgKzMxNzcsNyBAQCBk b19ncmFudF90YWJsZV9vcCgKICAgICAgICAgcmMgPSBnbnR0YWJfY29weShj b3B5LCBjb3VudCk7CiAgICAgICAgIGlmICggcmMgPiAwICkKICAgICAgICAg eworICAgICAgICAgICAgcmMgPSBjb3VudCAtIHJjOwogICAgICAgICAgICAg Z3Vlc3RfaGFuZGxlX2FkZF9vZmZzZXQoY29weSwgcmMpOwogICAgICAgICAg ICAgdW9wID0gZ3Vlc3RfaGFuZGxlX2Nhc3QoY29weSwgdm9pZCk7CiAgICAg ICAgIH0K --=separator Content-Type: application/octet-stream; name="xsa226-4.9/0002-gnttab-fix-transitive-grant-handling.patch" Content-Disposition: attachment; filename="xsa226-4.9/0002-gnttab-fix-transitive-grant-handling.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGZpeCB0cmFuc2l0aXZlIGdyYW50IGhhbmRsaW5nCgpQcm9j ZXNzaW5nIG9mIHRyYW5zaXRpdmUgZ3JhbnRzIG11c3Qgbm90IHVzZSB0aGUg ZmFzdCBwYXRoLCBvciBlbHNlCnJlZmVyZW5jZSBjb3VudGluZyBicmVha3Mg ZHVlIHRvIHRoZSBza2lwcGVkIHJlY3Vyc2l2ZSBjYWxsIHRvCl9fYWNxdWly ZV9ncmFudF9mb3JfY29weSgpIChpdHMgX19yZWxlYXNlX2dyYW50X2Zvcl9j b3B5KCkKY291bnRlcnBhcnQgb2NjdXJzIGluZGVwZW5kZW50IG9mIG9yaWdp bmFsIHBpbiBjb3VudCkuIEZ1cnRoZXJtb3JlCmFmdGVyIHJlLWFjcXVpcmlu ZyB0ZW1wb3JhcmlseSBkcm9wcGVkIGxvY2tzIHdlIG5lZWQgdG8gdmVyaWZ5 IG5vIGdyYW50CnByb3BlcnRpZXMgY2hhbmdlZCBpZiB0aGUgb3JpZ2luYWwg cGluIGNvdW50IHdhcyBub24temVybzsgY2hlY2tpbmcKanVzdCB0aGUgcGlu IGNvdW50cyBpcyBzdWZmaWNpZW50IG9ubHkgZm9yIHdlbGwtYmVoYXZlZCBn dWVzdHMuIEFzIGEKcmVzdWx0LCBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHko KSBuZWVkcyB0byBtaXJyb3IgdGhhdCBuZXcgYmVoYXZpb3IuCgpGdXJ0aGVy bW9yZSBhIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSgpIGludm9jYXRpb24g d2FzIG1pc3Npbmcgb24gdGhlCnJldHJ5IHBhdGggb2YgX19hY3F1aXJlX2dy YW50X2Zvcl9jb3B5KCksIGFuZCBnbnR0YWJfc2V0X3ZlcnNpb24oKSBhbHNv Cm5lZWRzIHRvIGJhaWwgb3V0IHVwb24gZW5jb3VudGVyaW5nIGEgdHJhbnNp dGl2ZSBncmFudC4KClRoaXMgaXMgcGFydCBvZiBDVkUtMjAxNy0xMjEzNSAv IFhTQS0yMjYuCgpSZXBvcnRlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCi0tLSBhL3hlbi9j b21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMKQEAgLTIwNTAsMTMgKzIwNTAsOCBAQCBfX3JlbGVhc2VfZ3JhbnRf Zm9yX2NvcHkoCiAgICAgdW5zaWduZWQgbG9uZyByX2ZyYW1lOwogICAgIHVp bnQxNl90ICpzdGF0dXM7CiAgICAgZ3JhbnRfcmVmX3QgdHJhbnNfZ3JlZjsK LSAgICBpbnQgcmVsZWFzZWRfcmVhZDsKLSAgICBpbnQgcmVsZWFzZWRfd3Jp dGU7CiAgICAgc3RydWN0IGRvbWFpbiAqdGQ7CiAKLSAgICByZWxlYXNlZF9y ZWFkID0gMDsKLSAgICByZWxlYXNlZF93cml0ZSA9IDA7Ci0KICAgICBncmFu dF9yZWFkX2xvY2socmd0KTsKIAogICAgIGFjdCA9IGFjdGl2ZV9lbnRyeV9h Y3F1aXJlKHJndCwgZ3JlZik7CkBAIC0yMDg2LDE3ICsyMDgxLDExIEBAIF9f cmVsZWFzZV9ncmFudF9mb3JfY29weSgKIAogICAgICAgICBhY3QtPnBpbiAt PSBHTlRQSU5faHN0d19pbmM7CiAgICAgICAgIGlmICggIShhY3QtPnBpbiAm IChHTlRQSU5fZGV2d19tYXNrfEdOVFBJTl9oc3R3X21hc2spKSApCi0gICAg ICAgIHsKLSAgICAgICAgICAgIHJlbGVhc2VkX3dyaXRlID0gMTsKICAgICAg ICAgICAgIGdudHRhYl9jbGVhcl9mbGFnKF9HVEZfd3JpdGluZywgc3RhdHVz KTsKLSAgICAgICAgfQogICAgIH0KIAogICAgIGlmICggIWFjdC0+cGluICkK LSAgICB7CiAgICAgICAgIGdudHRhYl9jbGVhcl9mbGFnKF9HVEZfcmVhZGlu Zywgc3RhdHVzKTsKLSAgICAgICAgcmVsZWFzZWRfcmVhZCA9IDE7Ci0gICAg fQogCiAgICAgYWN0aXZlX2VudHJ5X3JlbGVhc2UoYWN0KTsKICAgICBncmFu dF9yZWFkX3VubG9jayhyZ3QpOwpAQCAtMjEwNCwxMyArMjA5MywxMCBAQCBf X3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkoCiAgICAgaWYgKCB0ZCAhPSByZCAp CiAgICAgewogICAgICAgICAvKgotICAgICAgICAgKiBSZWN1cnNpdmUgY2Fs bHMsIGJ1dCB0aGV5J3JlIGJvdW5kZWQgKGFjcXVpcmUgcGVybWl0cyBvbmx5 IGEgc2luZ2xlCisgICAgICAgICAqIFJlY3Vyc2l2ZSBjYWxsLCBidXQgaXQg aXMgYm91bmRlZCAoYWNxdWlyZSBwZXJtaXRzIG9ubHkgYSBzaW5nbGUKICAg ICAgICAgICogbGV2ZWwgb2YgdHJhbnNpdGl2aXR5KSwgc28gaXQncyBva2F5 LgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKCByZWxlYXNlZF93cml0ZSAp Ci0gICAgICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkodGQsIHRy YW5zX2dyZWYsIDApOwotICAgICAgICBlbHNlIGlmICggcmVsZWFzZWRfcmVh ZCApCi0gICAgICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkodGQs IHRyYW5zX2dyZWYsIDEpOworICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9y X2NvcHkodGQsIHRyYW5zX2dyZWYsIHJlYWRvbmx5KTsKIAogICAgICAgICBy Y3VfdW5sb2NrX2RvbWFpbih0ZCk7CiAgICAgfQpAQCAtMjE4NCw4ICsyMTcw LDEwOCBAQCBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoCiAgICAgICAgICAg ICAgICAgIGFjdC0+ZG9taWQsIGxkb20sIGFjdC0+cGluKTsKIAogICAgIG9s ZF9waW4gPSBhY3QtPnBpbjsKLSAgICBpZiAoICFhY3QtPnBpbiB8fAotICAg ICAgICAgKCFyZWFkb25seSAmJiAhKGFjdC0+cGluICYgKEdOVFBJTl9kZXZ3 X21hc2t8R05UUElOX2hzdHdfbWFzaykpKSApCisgICAgaWYgKCBzaGEyICYm IChzaGFoLT5mbGFncyAmIEdURl90eXBlX21hc2spID09IEdURl90cmFuc2l0 aXZlICkKKyAgICB7CisgICAgICAgIGlmICggKCFvbGRfcGluIHx8ICghcmVh ZG9ubHkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICEob2xkX3Bp biAmIChHTlRQSU5fZGV2d19tYXNrfEdOVFBJTl9oc3R3X21hc2spKSkpICYm CisgICAgICAgICAgICAgKHJjID0gX3NldF9zdGF0dXNfdjIobGRvbSwgcmVh ZG9ubHksIDAsIHNoYWgsIGFjdCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGF0dXMpKSAhPSBHTlRTVF9va2F5ICkKKyAgICAgICAg ICAgIGdvdG8gdW5sb2NrX291dDsKKworICAgICAgICBpZiAoICFhbGxvd190 cmFuc2l0aXZlICkKKyAgICAgICAgICAgIFBJTl9GQUlMKHVubG9ja19vdXRf Y2xlYXIsIEdOVFNUX2dlbmVyYWxfZXJyb3IsCisgICAgICAgICAgICAgICAg ICAgICAidHJhbnNpdGl2ZSBncmFudCB3aGVuIHRyYW5zaXRpdml0eSBub3Qg YWxsb3dlZFxuIik7CisKKyAgICAgICAgdHJhbnNfZG9taWQgPSBzaGEyLT50 cmFuc2l0aXZlLnRyYW5zX2RvbWlkOworICAgICAgICB0cmFuc19ncmVmID0g c2hhMi0+dHJhbnNpdGl2ZS5ncmVmOworICAgICAgICBiYXJyaWVyKCk7IC8q IFN0b3AgdGhlIGNvbXBpbGVyIGZyb20gcmUtbG9hZGluZworICAgICAgICAg ICAgICAgICAgICAgIHRyYW5zX2RvbWlkIGZyb20gc2hhcmVkIG1lbW9yeSAq LworICAgICAgICBpZiAoIHRyYW5zX2RvbWlkID09IHJkLT5kb21haW5faWQg KQorICAgICAgICAgICAgUElOX0ZBSUwodW5sb2NrX291dF9jbGVhciwgR05U U1RfZ2VuZXJhbF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJ0cmFu c2l0aXZlIGdyYW50cyBjYW5ub3QgYmUgc2VsZi1yZWZlcmVudGlhbFxuIik7 CisKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgYWxsb3cgdGhlIHRyYW5z X2RvbWlkID09IGxkb20gY2FzZSwgd2hpY2ggY29ycmVzcG9uZHMgdG8gYQor ICAgICAgICAgKiBncmFudCBiZWluZyBpc3N1ZWQgYnkgb25lIGRvbWFpbiwg c2VudCB0byBhbm90aGVyIG9uZSwgYW5kIHRoZW4KKyAgICAgICAgICogdHJh bnNpdGl2ZWx5IGdyYW50ZWQgYmFjayB0byB0aGUgb3JpZ2luYWwgZG9tYWlu LiAgQWxsb3dpbmcgaXQKKyAgICAgICAgICogaXMgZWFzeSwgYW5kIG1lYW5z IHRoYXQgeW91IGRvbid0IG5lZWQgdG8gZ28gb3V0IG9mIHlvdXIgd2F5IHRv CisgICAgICAgICAqIGF2b2lkIGl0IGluIHRoZSBndWVzdC4KKyAgICAgICAg ICovCisKKyAgICAgICAgLyogV2UgbmVlZCB0byBsZWF2ZSB0aGUgcnJkIGxv Y2tlZCBkdXJpbmcgdGhlIGdyYW50IGNvcHkuICovCisgICAgICAgIHRkID0g cmN1X2xvY2tfZG9tYWluX2J5X2lkKHRyYW5zX2RvbWlkKTsKKyAgICAgICAg aWYgKCB0ZCA9PSBOVUxMICkKKyAgICAgICAgICAgIFBJTl9GQUlMKHVubG9j a19vdXRfY2xlYXIsIEdOVFNUX2dlbmVyYWxfZXJyb3IsCisgICAgICAgICAg ICAgICAgICAgICAidHJhbnNpdGl2ZSBncmFudCByZWZlcmVuY2VkIGJhZCBk b21haW4gJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICB0cmFuc19kb21p ZCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogX19hY3F1aXJlX2dyYW50 X2Zvcl9jb3B5KCkgY291bGQgdGFrZSB0aGUgbG9jayBvbiB0aGUKKyAgICAg ICAgICogcmVtb3RlIHRhYmxlIChpZiByZCA9PSB0ZCksIHNvIHdlIGhhdmUg dG8gZHJvcCB0aGUgbG9jaworICAgICAgICAgKiBoZXJlIGFuZCByZWFjcXVp cmUuCisgICAgICAgICAqLworICAgICAgICBhY3RpdmVfZW50cnlfcmVsZWFz ZShhY3QpOworICAgICAgICBncmFudF9yZWFkX3VubG9jayhyZ3QpOworCisg ICAgICAgIHJjID0gX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KHRkLCB0cmFu c19ncmVmLCByZC0+ZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZWFkb25seSwgJmdyYW50X2ZyYW1lLCBwYWdl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHJh bnNfcGFnZV9vZmYsICZ0cmFuc19sZW5ndGgsIDApOworCisgICAgICAgIGdy YW50X3JlYWRfbG9jayhyZ3QpOworICAgICAgICBhY3QgPSBhY3RpdmVfZW50 cnlfYWNxdWlyZShyZ3QsIGdyZWYpOworCisgICAgICAgIGlmICggcmMgIT0g R05UU1Rfb2theSApCisgICAgICAgIHsKKyAgICAgICAgICAgIF9fZml4dXBf c3RhdHVzX2Zvcl9jb3B5X3BpbihhY3QsIHN0YXR1cyk7CisgICAgICAgICAg ICByY3VfdW5sb2NrX2RvbWFpbih0ZCk7CisgICAgICAgICAgICBhY3RpdmVf ZW50cnlfcmVsZWFzZShhY3QpOworICAgICAgICAgICAgZ3JhbnRfcmVhZF91 bmxvY2socmd0KTsKKyAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAg fQorCisgICAgICAgIC8qCisgICAgICAgICAqIFdlIGRyb3BwZWQgdGhlIGxv Y2ssIHNvIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCB0aGUgZ3JhbnQgZGlkbid0 CisgICAgICAgICAqIGNoYW5nZSwgYW5kIHRoYXQgbm9ib2R5IGVsc2UgdHJp ZWQgdG8gcGluL3VucGluIGl0LiBJZiBhbnl0aGluZworICAgICAgICAgKiBj aGFuZ2VkLCBqdXN0IGdpdmUgdXAgYW5kIHRlbGwgdGhlIGNhbGxlciB0byBy ZXRyeS4KKyAgICAgICAgICovCisgICAgICAgIGlmICggcmd0LT5ndF92ZXJz aW9uICE9IDIgfHwKKyAgICAgICAgICAgICBhY3QtPnBpbiAhPSBvbGRfcGlu IHx8CisgICAgICAgICAgICAgKG9sZF9waW4gJiYgKGFjdC0+ZG9taWQgIT0g bGRvbSB8fCBhY3QtPmZyYW1lICE9IGdyYW50X2ZyYW1lIHx8CisgICAgICAg ICAgICAgICAgICAgICAgICAgIGFjdC0+c3RhcnQgIT0gdHJhbnNfcGFnZV9v ZmYgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0LT5sZW5ndGgg IT0gdHJhbnNfbGVuZ3RoIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAg IGFjdC0+dHJhbnNfZG9tYWluICE9IHRkIHx8CisgICAgICAgICAgICAgICAg ICAgICAgICAgIGFjdC0+dHJhbnNfZ3JlZiAhPSB0cmFuc19ncmVmIHx8Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICFhY3QtPmlzX3N1Yl9wYWdlKSkg KQorICAgICAgICB7CisgICAgICAgICAgICBfX3JlbGVhc2VfZ3JhbnRfZm9y X2NvcHkodGQsIHRyYW5zX2dyZWYsIHJlYWRvbmx5KTsKKyAgICAgICAgICAg IF9fZml4dXBfc3RhdHVzX2Zvcl9jb3B5X3BpbihhY3QsIHN0YXR1cyk7Cisg ICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbih0ZCk7CisgICAgICAgICAg ICBhY3RpdmVfZW50cnlfcmVsZWFzZShhY3QpOworICAgICAgICAgICAgZ3Jh bnRfcmVhZF91bmxvY2socmd0KTsKKyAgICAgICAgICAgIHB1dF9wYWdlKCpw YWdlKTsKKyAgICAgICAgICAgICpwYWdlID0gTlVMTDsKKyAgICAgICAgICAg IHJldHVybiBFUkVTVEFSVDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgg IW9sZF9waW4gKQorICAgICAgICB7CisgICAgICAgICAgICBhY3QtPmRvbWlk ID0gbGRvbTsKKyAgICAgICAgICAgIGFjdC0+c3RhcnQgPSB0cmFuc19wYWdl X29mZjsKKyAgICAgICAgICAgIGFjdC0+bGVuZ3RoID0gdHJhbnNfbGVuZ3Ro OworICAgICAgICAgICAgYWN0LT50cmFuc19kb21haW4gPSB0ZDsKKyAgICAg ICAgICAgIGFjdC0+dHJhbnNfZ3JlZiA9IHRyYW5zX2dyZWY7CisgICAgICAg ICAgICBhY3QtPmZyYW1lID0gZ3JhbnRfZnJhbWU7CisgICAgICAgICAgICBh Y3QtPmdmbiA9IC0xdWw7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAg ICogVGhlIGFjdHVhbCByZW1vdGUgcmVtb3RlIGdyYW50IG1heSBvciBtYXkg bm90IGJlIGEgc3ViLXBhZ2UsCisgICAgICAgICAgICAgKiBidXQgd2UgYWx3 YXlzIHRyZWF0IGl0IGFzIG9uZSBiZWNhdXNlIHRoYXQgYmxvY2tzIG1hcHBp bmdzIG9mCisgICAgICAgICAgICAgKiB0cmFuc2l0aXZlIGdyYW50cy4KKyAg ICAgICAgICAgICAqLworICAgICAgICAgICAgYWN0LT5pc19zdWJfcGFnZSA9 IDE7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAoICFvbGRfcGlu IHx8CisgICAgICAgICAgICAgICghcmVhZG9ubHkgJiYgIShvbGRfcGluICYg KEdOVFBJTl9kZXZ3X21hc2t8R05UUElOX2hzdHdfbWFzaykpKSApCiAgICAg ewogICAgICAgICBpZiAoIChyYyA9IF9zZXRfc3RhdHVzKHJndC0+Z3RfdmVy c2lvbiwgbGRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZWFkb25seSwgMCwgc2hhaCwgYWN0LApAQCAtMjIwNiw3OSArMjI5Miw2IEBA IF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAgICAgICAgICAgIHRyYW5z X3BhZ2Vfb2ZmID0gMDsKICAgICAgICAgICAgIHRyYW5zX2xlbmd0aCA9IFBB R0VfU0laRTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmICggKHNoYWgt PmZsYWdzICYgR1RGX3R5cGVfbWFzaykgPT0gR1RGX3RyYW5zaXRpdmUgKQot ICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoICFhbGxvd190cmFuc2l0aXZl ICkKLSAgICAgICAgICAgICAgICBQSU5fRkFJTCh1bmxvY2tfb3V0X2NsZWFy LCBHTlRTVF9nZW5lcmFsX2Vycm9yLAotICAgICAgICAgICAgICAgICAgICAg ICAgICJ0cmFuc2l0aXZlIGdyYW50IHdoZW4gdHJhbnNpdGl2aXR5IG5vdCBh bGxvd2VkXG4iKTsKLQotICAgICAgICAgICAgdHJhbnNfZG9taWQgPSBzaGEy LT50cmFuc2l0aXZlLnRyYW5zX2RvbWlkOwotICAgICAgICAgICAgdHJhbnNf Z3JlZiA9IHNoYTItPnRyYW5zaXRpdmUuZ3JlZjsKLSAgICAgICAgICAgIGJh cnJpZXIoKTsgLyogU3RvcCB0aGUgY29tcGlsZXIgZnJvbSByZS1sb2FkaW5n Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zX2RvbWlkIGZyb20g c2hhcmVkIG1lbW9yeSAqLwotICAgICAgICAgICAgaWYgKCB0cmFuc19kb21p ZCA9PSByZC0+ZG9tYWluX2lkICkKLSAgICAgICAgICAgICAgICBQSU5fRkFJ TCh1bmxvY2tfb3V0X2NsZWFyLCBHTlRTVF9nZW5lcmFsX2Vycm9yLAotICAg ICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2l0aXZlIGdyYW50cyBjYW5u b3QgYmUgc2VsZi1yZWZlcmVudGlhbFxuIik7Ci0KLSAgICAgICAgICAgIC8q IFdlIGFsbG93IHRoZSB0cmFuc19kb21pZCA9PSBsZG9tIGNhc2UsIHdoaWNo Ci0gICAgICAgICAgICAgICBjb3JyZXNwb25kcyB0byBhIGdyYW50IGJlaW5n IGlzc3VlZCBieSBvbmUgZG9tYWluLCBzZW50Ci0gICAgICAgICAgICAgICB0 byBhbm90aGVyIG9uZSwgYW5kIHRoZW4gdHJhbnNpdGl2ZWx5IGdyYW50ZWQg YmFjayB0bwotICAgICAgICAgICAgICAgdGhlIG9yaWdpbmFsIGRvbWFpbi4g IEFsbG93aW5nIGl0IGlzIGVhc3ksIGFuZCBtZWFucwotICAgICAgICAgICAg ICAgdGhhdCB5b3UgZG9uJ3QgbmVlZCB0byBnbyBvdXQgb2YgeW91ciB3YXkg dG8gYXZvaWQgaXQKLSAgICAgICAgICAgICAgIGluIHRoZSBndWVzdC4gKi8K LQotICAgICAgICAgICAgLyogV2UgbmVlZCB0byBsZWF2ZSB0aGUgcnJkIGxv Y2tlZCBkdXJpbmcgdGhlIGdyYW50IGNvcHkgKi8KLSAgICAgICAgICAgIHRk ID0gcmN1X2xvY2tfZG9tYWluX2J5X2lkKHRyYW5zX2RvbWlkKTsKLSAgICAg ICAgICAgIGlmICggdGQgPT0gTlVMTCApCi0gICAgICAgICAgICAgICAgUElO X0ZBSUwodW5sb2NrX291dF9jbGVhciwgR05UU1RfZ2VuZXJhbF9lcnJvciwK LSAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNpdGl2ZSBncmFudCBy ZWZlcmVuY2VkIGJhZCBkb21haW4gJWRcbiIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgdHJhbnNfZG9taWQpOwotCi0gICAgICAgICAgICAvKgotICAg ICAgICAgICAgICogX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KCkgY291bGQg dGFrZSB0aGUgbG9jayBvbiB0aGUKLSAgICAgICAgICAgICAqIHJlbW90ZSB0 YWJsZSAoaWYgcmQgPT0gdGQpLCBzbyB3ZSBoYXZlIHRvIGRyb3AgdGhlIGxv Y2sKLSAgICAgICAgICAgICAqIGhlcmUgYW5kIHJlYWNxdWlyZQotICAgICAg ICAgICAgICovCi0gICAgICAgICAgICBhY3RpdmVfZW50cnlfcmVsZWFzZShh Y3QpOwotICAgICAgICAgICAgZ3JhbnRfcmVhZF91bmxvY2socmd0KTsKLQot ICAgICAgICAgICAgcmMgPSBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkodGQs IHRyYW5zX2dyZWYsIHJkLT5kb21haW5faWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkb25seSwgJmdyYW50X2Zy YW1lLCBwYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnRyYW5zX3BhZ2Vfb2ZmLCAmdHJhbnNfbGVuZ3RoLCAwKTsK LQotICAgICAgICAgICAgZ3JhbnRfcmVhZF9sb2NrKHJndCk7Ci0gICAgICAg ICAgICBhY3QgPSBhY3RpdmVfZW50cnlfYWNxdWlyZShyZ3QsIGdyZWYpOwot Ci0gICAgICAgICAgICBpZiAoIHJjICE9IEdOVFNUX29rYXkgKSB7Ci0gICAg ICAgICAgICAgICAgX19maXh1cF9zdGF0dXNfZm9yX2NvcHlfcGluKGFjdCwg c3RhdHVzKTsKLSAgICAgICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbih0 ZCk7Ci0gICAgICAgICAgICAgICAgYWN0aXZlX2VudHJ5X3JlbGVhc2UoYWN0 KTsKLSAgICAgICAgICAgICAgICBncmFudF9yZWFkX3VubG9jayhyZ3QpOwot ICAgICAgICAgICAgICAgIHJldHVybiByYzsKLSAgICAgICAgICAgIH0KLQot ICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFdlIGRyb3BwZWQgdGhl IGxvY2ssIHNvIHdlIGhhdmUgdG8gY2hlY2sgdGhhdCBub2JvZHkgZWxzZSB0 cmllZAotICAgICAgICAgICAgICogdG8gcGluIChvciwgZm9yIHRoYXQgbWF0 dGVyLCB1bnBpbikgdGhlIHJlZmVyZW5jZSBpbiAqdGhpcyoKLSAgICAgICAg ICAgICAqIGRvbWFpbi4gIElmIHRoZXkgZGlkLCBqdXN0IGdpdmUgdXAgYW5k IHRlbGwgdGhlIGNhbGxlciB0byByZXRyeS4KLSAgICAgICAgICAgICAqLwot ICAgICAgICAgICAgaWYgKCBhY3QtPnBpbiAhPSBvbGRfcGluICkKLSAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICBfX2ZpeHVwX3N0YXR1c19mb3Jf Y29weV9waW4oYWN0LCBzdGF0dXMpOwotICAgICAgICAgICAgICAgIHJjdV91 bmxvY2tfZG9tYWluKHRkKTsKLSAgICAgICAgICAgICAgICBhY3RpdmVfZW50 cnlfcmVsZWFzZShhY3QpOwotICAgICAgICAgICAgICAgIGdyYW50X3JlYWRf dW5sb2NrKHJndCk7Ci0gICAgICAgICAgICAgICAgcHV0X3BhZ2UoKnBhZ2Up OwotICAgICAgICAgICAgICAgICpwYWdlID0gTlVMTDsKLSAgICAgICAgICAg ICAgICByZXR1cm4gRVJFU1RBUlQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg ICAgICAgIC8qIFRoZSBhY3R1YWwgcmVtb3RlIHJlbW90ZSBncmFudCBtYXkg b3IgbWF5IG5vdCBiZSBhCi0gICAgICAgICAgICAgICBzdWItcGFnZSwgYnV0 IHdlIGFsd2F5cyB0cmVhdCBpdCBhcyBvbmUgYmVjYXVzZSB0aGF0Ci0gICAg ICAgICAgICAgICBibG9ja3MgbWFwcGluZ3Mgb2YgdHJhbnNpdGl2ZSBncmFu dHMuICovCi0gICAgICAgICAgICBpc19zdWJfcGFnZSA9IDE7Ci0gICAgICAg ICAgICBhY3QtPmdmbiA9IC0xdWw7Ci0gICAgICAgIH0KICAgICAgICAgZWxz ZSBpZiAoICEoc2hhMi0+aGRyLmZsYWdzICYgR1RGX3N1Yl9wYWdlKSApCiAg ICAgICAgIHsKICAgICAgICAgICAgIHJjID0gX19nZXRfcGFnZWRfZnJhbWUo c2hhMi0+ZnVsbF9wYWdlLmZyYW1lLCAmZ3JhbnRfZnJhbWUsIHBhZ2UsIHJl YWRvbmx5LCByZCk7CkBAIC0yNzEwLDEwICsyNzIzLDEzIEBAIGdudHRhYl9z ZXRfdmVyc2lvbihYRU5fR1VFU1RfSEFORExFX1BBUkEKICAgICBjYXNlIDI6 CiAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgR05UVEFCX05SX1JFU0VSVkVE X0VOVFJJRVM7IGkrKyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICgg KChzaGFyZWRfZW50cnlfdjIoZ3QsIGkpLmhkci5mbGFncyAmIEdURl90eXBl X21hc2spID09Ci0gICAgICAgICAgICAgICAgICBHVEZfcGVybWl0X2FjY2Vz cykgJiYKLSAgICAgICAgICAgICAgICAgKHNoYXJlZF9lbnRyeV92MihndCwg aSkuZnVsbF9wYWdlLmZyYW1lID4+IDMyKSApCisgICAgICAgICAgICBzd2l0 Y2ggKCBzaGFyZWRfZW50cnlfdjIoZ3QsIGkpLmhkci5mbGFncyAmIEdURl90 eXBlX21hc2sgKQogICAgICAgICAgICAgeworICAgICAgICAgICAgY2FzZSBH VEZfcGVybWl0X2FjY2VzczoKKyAgICAgICAgICAgICAgICAgaWYgKCAhKHNo YXJlZF9lbnRyeV92MihndCwgaSkuZnVsbF9wYWdlLmZyYW1lID4+IDMyKSAp CisgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg ICAgLyogZmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICBjYXNlIEdURl90 cmFuc2l0aXZlOgogICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19X QVJOSU5HLAogICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmllZCB0byBj aGFuZ2UgZ3JhbnQgdGFibGUgdmVyc2lvbiB0byAxIHdpdGggbm9uLXJlcHJl c2VudGFibGUgZW50cmllc1xuIik7CiAgICAgICAgICAgICAgICAgcmVzID0g LUVSQU5HRTsK --=separator Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg== --=separator--