From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xen.org security team Subject: Xen Security Advisory 154 (CVE-2016-2270) - x86: inconsistent cachability flags on guest mappings Date: Wed, 17 Feb 2016 12:28:00 +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: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org 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: SHA1 Xen Security Advisory CVE-2016-2270 / XSA-154 version 3 x86: inconsistent cachability flags on guest mappings UPDATES IN VERSION 3 ==================== Clarify cumbersome Resolution wording. The patch now adds a command line option to overcome the possible performance regression. Add patch backports. Clarify origin of assertion (at start of patch description) that inconsistent cacheability is a problem only for mmio pages. Public release. ISSUE DESCRIPTION ================= Multiple mappings of the same physical page with different cachability setting can cause problems. While one category (risk of using stale data) affects only guests themselves (and hence avoiding this can be left for them to control), the other category being Machine Check exceptions can be fatal to entire hosts. According to the information we were able to gather, only mappings of MMIO pages may surface this second category, but even for them there were cases where the hypervisor did not properly enforce consistent cachability. IMPACT ====== A malicious guest administrator might be able to cause a reboot, denying service to the entire host. VULNERABLE SYSTEMS ================== All Xen versions are affected. Only x86 guests given control over some physical device can trigger this vulnerability. x86 systems are vulnerable. ARM systems are not vulnerable. The vulnerability depends on the system response to mapping the same memory with different cacheability. On some systems this is harmless; on others, depending on CPU and chipset, it may be fatal. MITIGATION ========== Not handing physical devices to guests will also avoid this issue. CREDITS ======= This issue was discovered by Jan Beulich of SUSE. RESOLUTION ========== We believe that the attached patch fixes the issue. However, no formal description of CPU behaviour in particular use cases has been provided by Intel. There has been no response from AMD. We are aware of a potential performance regression with this patch on some systems - even if no hardware passthrough is configured. This is due to the behaviour of some drivers and peripherals that is beyond the scope of this security fix. The patch adds a command line option "mmio-relax" to overcome this possible regression for Domain 0 or all para-virtual guests. Note however that enabling this workaround will reinstate the security issue these patches aim to address. xsa154.patch xen-unstable xsa154-4.6.patch Xen 4.6.x xsa154-4.5.patch Xen 4.5.x xsa154-4.4.patch Xen 4.4.x xsa154-4.3.patch Xen 4.3.x $ sha256sum xsa154* bbe7fba38ee30c00ef850fa6419c769e88b5669164d447f50b1ebbe333573152 xsa154.patch 011a4e33c0e476c52fe44253d50e01a1185948fd1b2a8e645274b25da6030d71 xsa154-4.3.patch 92d475bbc344127faa4f0183a9ccca9e975c7d24eb5772bf0a0a0a2e019144c6 xsa154-4.4.patch b13737e71f22185b94ab25c07afd521add1a7e3886326c719d5df4d42f3f87f4 xsa154-4.5.patch eec88c2a57466f83a81844cb7025f70c2b671d07a75d85487d4ed73cdabbb020 xsa154-4.6.patch $ DEPLOYMENT DURING EMBARGO ========================= Deployment of the patch described above (or others which are substantially similar) is permitted during the embargo, even on public-facing systems with untrusted guest users and administrators. However deployment of the mitigations described above is NOT permitted (except where all the affected systems and VMs are administered and used only by organisations which are members of the Xen Project Security Issues Predisclosure List). Specifically, deployment on public cloud systems is NOT permitted. This is because the configuration change would be visible to the guest, which could lead to the rediscovery of the vulnerability. 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.4.12 (GNU/Linux) iQEcBAEBAgAGBQJWxGayAAoJEIP+FMlX6CvZ9KwH/3z+9b7OjgpuIsOf0giZ5y99 yKoORWxQjcosYLQRQXvH62xtz0xRng+E3p+MeUm2qPUUuHFiqxSpZOAvW61C6DQL l5KNNHlIjWB3N0YVmvgRbf3WMbeX1DCsEJEIFxZUQQs3fgGAiOfIEOwRL2FIhJ5Y wP/z59fCuWs5lHoV0iAY3gkZHDd09JspCRQq8UGAc+X5jHF6fIOhUjZCS9KRQMJ5 p69ysdMj96fY5eKqwka/EXzvKMJUsQ42u5RQoYR5FhLx1UBi2otdcdbloKNseksA 7Wbf6j8Mz9NWVhvdZtnR/CNH8m5V7d78HsnGv7zNQCiMW+wg/k53yzHcw550P4w= =5V3D -----END PGP SIGNATURE----- --=separator Content-Type: application/octet-stream; name="xsa154.patch" Content-Disposition: attachment; filename="xsa154.patch" Content-Transfer-Encoding: base64 eDg2OiBlbmZvcmNlIGNvbnNpc3RlbnQgY2FjaGFiaWxpdHkgb2YgTU1JTyBt YXBwaW5ncwoKV2UndmUgYmVlbiB0b2xkIGJ5IEludGVsIHRoYXQgaW5jb25z aXN0ZW50IGNhY2hhYmlsaXR5IGJldHdlZW4KbXVsdGlwbGUgbWFwcGluZ3Mg b2YgdGhlIHNhbWUgcGFnZSBjYW4gYWZmZWN0IHN5c3RlbSBzdGFiaWxpdHkg b25seQp3aGVuIHRoZSBhZmZlY3RlZCBwYWdlIGlzIGFuIE1NSU8gb25lLiBT aW5jZSB0aGUgc3RhbGUgZGF0YSBpc3N1ZSBpcwpvZiBubyByZWxldmFuY2Ug dG8gdGhlIGh5cGVydmlzb3IgKHNpbmNlIGFsbCBndWVzdCBtZW1vcnkgYWNj ZXNzZXMgZ28KdGhyb3VnaCBwcm9wZXIgYWNjZXNzb3JzIGFuZCB2YWxpZGF0 aW9uKSwgaGFuZGxpbmcgb2YgUkFNIHBhZ2VzCnJlbWFpbnMgdW5jaGFuZ2Vk IGhlcmUuIEFueSBNTUlPIG1hcHBlZCBieSBkb21haW5zIGhvd2V2ZXIgbmVl ZHMgdG8gYmUKZG9uZSBjb25zaXN0ZW50bHkgKGFsbCBjYWNoYWJsZSBtYXBw aW5ncyBvciBhbGwgdW5jYWNoYWJsZSBvbmVzKSwgaW4Kb3JkZXIgdG8gYXZv aWQgTWFjaGluZSBDaGVjayBleGNlcHRpb25zLiBTaW5jZSBjb252ZXJ0aW5n IGV4aXN0aW5nCmNhY2hhYmxlIG1hcHBpbmdzIHRvIHVuY2FjaGFibGUgKGF0 IHRoZSB0aW1lIGFuIHVuY2FjaGFibGUgbWFwcGluZwpnZXRzIGVzdGFibGlz aGVkKSB3b3VsZCBpbiB0aGUgUFYgY2FzZSByZXF1aXJlIHRyYWNraW5nIGFs bCBtYXBwaW5ncywKYWxsb3cgTU1JTyB0byBvbmx5IGdldCBtYXBwZWQgdW5j YWNoYWJsZSAoVUMsIFVDLSwgb3IgV0MpLgoKVGhpcyBhbHNvIGltcGxpZXMg dGhhdCBpbiB0aGUgUFYgY2FzZSB3ZSBtdXN0bid0IHVzZSB0aGUgTDEgUFRF IHVwZGF0ZQpmYXN0IHBhdGggd2hlbiBjYWNoYWJpbGl0eSBmbGFncyBnZXQg YWx0ZXJlZC4KClNpbmNlIGluIHRoZSBIVk0gY2FzZSBhdCBsZWFzdCBmb3Ig bm93IHdlIHdhbnQgdG8gY29udGludWUgaG9ub3JpbmcKcGlubmVkIGNhY2hh YmlsaXR5IGF0dHJpYnV0ZXMgZm9yIHBhZ2VzIG5vdCBtYXBwZWQgYnkgdGhl IGh5cGVydmlzb3IsCnNwZWNpYWwgY2FzZSBoYW5kbGluZyBvZiByL28gTU1J TyBwYWdlcyAoZm9yY2luZyBVQykgZ2V0cyBhZGRlZCB0aGVyZS4KQXJndWFi bHkgdGhlIGNvdW50ZXJwYXJ0IGNoYW5nZSB0byBwMm0tcHQuYyBtYXkgbm90 IGJlIG5lY2Vzc2FyeSwgc2luY2UKVUMtICh3aGljaCBhbHJlYWR5IGdldHMg ZW5mb3JjZWQgdGhlcmUpIGlzIHByb2JhYmx5IHN0cmljdCBlbm91Z2guCgpO b3RlIHRoYXQgdGhlIHNoYWRvdyBjb2RlIGNoYW5nZXMgaW5jbHVkZSBmaXhp bmcgdGhlIHdyaXRlIHByb3RlY3Rpb24Kb2Ygci9vIE1NSU8gcmFuZ2VzOiBz aGFkb3dfbDFlX3JlbW92ZV9mbGFncygpIGFuZCBpdHMgc2libGluZ3MsIG90 aGVyCnRoYW4gbDFlX3JlbW92ZV9mbGFncygpIGFuZCBhbGlrZSwgcmV0dXJu IHRoZSBuZXcgUFRFIChhbmQgaGVuY2UKaWdub3JpbmcgdGhlaXIgcmV0dXJu IHZhbHVlcyBtYWtlcyB0aGVtIG5vLW9wcykuCgpUaGlzIGlzIENWRS0yMDE2 LTIyNzAgLyBYU0EtMTU0LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgpBY2tlZC1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCi0tLSBhL2RvY3MvbWlzYy94 ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duCkBAIC0xMDg0LDYgKzEwODQsMTUgQEAg bGltaXQgaXMgaWdub3JlZCBieSBYZW4uCiAKIFNwZWNpZnkgaWYgdGhlIE1N Q29uZmlnIHNwYWNlIHNob3VsZCBiZSBlbmFibGVkLgogCisjIyMgbW1pby1y ZWxheAorPiBgPSA8Ym9vbGVhbj4gfCBhbGxgCisKKz4gRGVmYXVsdDogYGZh bHNlYAorCitCeSBkZWZhdWx0LCBkb21haW5zIG1heSBub3QgY3JlYXRlIGNh Y2hlZCBtYXBwaW5ncyB0byBNTUlPIHJlZ2lvbnMuCitUaGlzIG9wdGlvbiBy ZWxheGVzIHRoZSBjaGVjayBmb3IgRG9tYWluIDAgKG9yIHdoZW4gdXNpbmcg YGFsbGAsIGFsbCBQVgorZG9tYWlucyksIHRvIHBlcm1pdCB0aGUgdXNlIG9m IGNhY2hlYWJsZSBNTUlPIG1hcHBpbmdzLgorCiAjIyMgbXNpCiA+IGA9IDxi b29sZWFuPmAKIAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL210cnIuYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL210cnIuYwpAQCAtNzcwLDggKzc3MCwxNyBA QCBpbnQgZXB0ZV9nZXRfZW50cnlfZW10KHN0cnVjdCBkb21haW4gKmQsCiAg ICAgaWYgKCB2LT5kb21haW4gIT0gZCApCiAgICAgICAgIHYgPSBkLT52Y3B1 ID8gZC0+dmNwdVswXSA6IE5VTEw7CiAKLSAgICBpZiAoICFtZm5fdmFsaWQo bWZuX3gobWZuKSkgKQorICAgIGlmICggIW1mbl92YWxpZChtZm5feChtZm4p KSB8fAorICAgICAgICAgcmFuZ2VzZXRfY29udGFpbnNfcmFuZ2UobW1pb19y b19yYW5nZXMsIG1mbl94KG1mbiksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtZm5feChtZm4pICsgKDFVTCA8PCBvcmRlcikgLSAxKSAp CisgICAgeworICAgICAgICAqaXBhdCA9IDE7CiAgICAgICAgIHJldHVybiBN VFJSX1RZUEVfVU5DQUNIQUJMRTsKKyAgICB9CisKKyAgICBpZiAoIHJhbmdl c2V0X292ZXJsYXBzX3JhbmdlKG1taW9fcm9fcmFuZ2VzLCBtZm5feChtZm4p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3gobWZu KSArICgxVUwgPDwgb3JkZXIpIC0gMSkgKQorICAgICAgICByZXR1cm4gLTE7 CiAKICAgICBzd2l0Y2ggKCBodm1fZ2V0X21lbV9waW5uZWRfY2FjaGVhdHRy KGQsIGdmbiwgb3JkZXIsICZ0eXBlKSApCiAgICAgewotLS0gYS94ZW4vYXJj aC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1w dC5jCkBAIC0xMDksNyArMTA5LDEwIEBAIHN0YXRpYyB1bnNpZ25lZCBsb25n IHAybV90eXBlX3RvX2ZsYWdzKHAKICAgICAgICAgaWYgKCAhcmFuZ2VzZXRf Y29udGFpbnNfc2luZ2xldG9uKG1taW9fcm9fcmFuZ2VzLCBtZm5feChtZm4p KSApCiAgICAgICAgICAgICBmbGFncyB8PSBfUEFHRV9SVzsKICAgICAgICAg ZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBmbGFncyB8PSBfUEFHRV9Q V1Q7CiAgICAgICAgICAgICBBU1NFUlQoIWxldmVsKTsKKyAgICAgICAgfQog ICAgICAgICByZXR1cm4gZmxhZ3MgfCBQMk1fQkFTRV9GTEFHUyB8IF9QQUdF X1BDRDsKICAgICB9CiB9Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cv bXVsdGkuYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMK QEAgLTUzNCw2ICs1MzQsNyBAQCBfc2hfcHJvcGFnYXRlKHN0cnVjdCB2Y3B1 ICp2LAogICAgIGdmbl90IHRhcmdldF9nZm4gPSBndWVzdF9sMWVfZ2V0X2dm bihndWVzdF9lbnRyeSk7CiAgICAgdTMyIHBhc3NfdGhydV9mbGFnczsKICAg ICB1MzIgZ2ZsYWdzLCBzZmxhZ3M7CisgICAgYm9vbF90IG1taW9fbWZuOwog CiAgICAgLyogV2UgZG9uJ3Qgc2hhZG93IFBBRSBsM3MgKi8KICAgICBBU1NF UlQoR1VFU1RfUEFHSU5HX0xFVkVMUyA+IDMgfHwgbGV2ZWwgIT0gMyk7CkBA IC01NzQsNyArNTc1LDEwIEBAIF9zaF9wcm9wYWdhdGUoc3RydWN0IHZjcHUg KnYsCiAgICAgLy8gbWZuIG1lYW5zIHRoYXQgd2UgY2FuIG5vdCB1c2VmdWxs eSBzaGFkb3cgYW55dGhpbmcsIGFuZCBzbyB3ZQogICAgIC8vIHJldHVybiBl YXJseS4KICAgICAvLwotICAgIGlmICggIW1mbl92YWxpZCh0YXJnZXRfbWZu KQorICAgIG1taW9fbWZuID0gIW1mbl92YWxpZCh0YXJnZXRfbWZuKQorICAg ICAgICAgICAgICAgfHwgKGxldmVsID09IDEKKyAgICAgICAgICAgICAgICAg ICAmJiBwYWdlX2dldF9vd25lcihtZm5fdG9fcGFnZSh0YXJnZXRfbWZuKSkg PT0gZG9tX2lvKTsKKyAgICBpZiAoIG1taW9fbWZuCiAgICAgICAgICAmJiAh KGxldmVsID09IDEgJiYgKCFzaGFkb3dfbW9kZV9yZWZjb3VudHMoZCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcDJtdCA9PSBwMm1fbW1p b19kaXJlY3QpKSApCiAgICAgewpAQCAtNTkyLDcgKzU5Niw3IEBAIF9zaF9w cm9wYWdhdGUoc3RydWN0IHZjcHUgKnYsCiAgICAgICAgICAgICAgICAgICAg ICAgIF9QQUdFX1JXIHwgX1BBR0VfUFJFU0VOVCk7CiAgICAgaWYgKCBndWVz dF9zdXBwb3J0c19ueCh2KSApCiAgICAgICAgIHBhc3NfdGhydV9mbGFncyB8 PSBfUEFHRV9OWF9CSVQ7Ci0gICAgaWYgKCAhc2hhZG93X21vZGVfcmVmY291 bnRzKGQpICYmICFtZm5fdmFsaWQodGFyZ2V0X21mbikgKQorICAgIGlmICgg bGV2ZWwgPT0gMSAmJiAhc2hhZG93X21vZGVfcmVmY291bnRzKGQpICYmIG1t aW9fbWZuICkKICAgICAgICAgcGFzc190aHJ1X2ZsYWdzIHw9IF9QQUdFX1BB VCB8IF9QQUdFX1BDRCB8IF9QQUdFX1BXVDsKICAgICBzZmxhZ3MgPSBnZmxh Z3MgJiBwYXNzX3RocnVfZmxhZ3M7CiAKQEAgLTY5MSwxMCArNjk1LDE0IEBA IF9zaF9wcm9wYWdhdGUoc3RydWN0IHZjcHUgKnYsCiAgICAgfQogCiAgICAg LyogUmVhZC1vbmx5IG1lbW9yeSAqLwotICAgIGlmICggcDJtX2lzX3JlYWRv bmx5KHAybXQpIHx8Ci0gICAgICAgICAocDJtdCA9PSBwMm1fbW1pb19kaXJl Y3QgJiYKLSAgICAgICAgICByYW5nZXNldF9jb250YWluc19zaW5nbGV0b24o bW1pb19yb19yYW5nZXMsIG1mbl94KHRhcmdldF9tZm4pKSkgKQorICAgIGlm ICggcDJtX2lzX3JlYWRvbmx5KHAybXQpICkKICAgICAgICAgc2ZsYWdzICY9 IH5fUEFHRV9SVzsKKyAgICBlbHNlIGlmICggcDJtdCA9PSBwMm1fbW1pb19k aXJlY3QgJiYKKyAgICAgICAgICAgICAgcmFuZ2VzZXRfY29udGFpbnNfc2lu Z2xldG9uKG1taW9fcm9fcmFuZ2VzLCBtZm5feCh0YXJnZXRfbWZuKSkgKQor ICAgIHsKKyAgICAgICAgc2ZsYWdzICY9IH4oX1BBR0VfUlcgfCBfUEFHRV9Q QVQpOworICAgICAgICBzZmxhZ3MgfD0gX1BBR0VfUENEIHwgX1BBR0VfUFdU OworICAgIH0KIAogICAgIC8vIHByb3RlY3QgZ3Vlc3QgcGFnZSB0YWJsZXMK ICAgICAvLwpAQCAtMTIwMCwyMiArMTIwOCwyOCBAQCBzdGF0aWMgaW50IHNo YWRvd19zZXRfbDFlKHN0cnVjdCBkb21haW4KICAgICAgICAgICYmICFzaF9s MWVfaXNfbWFnaWMobmV3X3NsMWUpICkKICAgICB7CiAgICAgICAgIC8qIEFi b3V0IHRvIGluc3RhbGwgYSBuZXcgcmVmZXJlbmNlICovCi0gICAgICAgIGlm ICggc2hhZG93X21vZGVfcmVmY291bnRzKGQpICkgeworICAgICAgICBpZiAo IHNoYWRvd19tb2RlX3JlZmNvdW50cyhkKSApCisgICAgICAgIHsKKyNkZWZp bmUgUEFHRV9GTElQUEFCTEUgKF9QQUdFX1JXIHwgX1BBR0VfUFdUIHwgX1BB R0VfUENEIHwgX1BBR0VfUEFUKQorICAgICAgICAgICAgaW50IHJjOworCiAg ICAgICAgICAgICBUUkFDRV9TSEFET1dfUEFUSF9GTEFHKFRSQ0VfU0ZMQUdf U0hBRE9XX0wxX0dFVF9SRUYpOwotICAgICAgICAgICAgc3dpdGNoICggc2hh ZG93X2dldF9wYWdlX2Zyb21fbDFlKG5ld19zbDFlLCBkLCBuZXdfdHlwZSkg KQorICAgICAgICAgICAgc3dpdGNoICggcmMgPSBzaGFkb3dfZ2V0X3BhZ2Vf ZnJvbV9sMWUobmV3X3NsMWUsIGQsIG5ld190eXBlKSApCiAgICAgICAgICAg ICB7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIC8q IERvZXNuJ3QgbG9vayBsaWtlIGEgcGFnZXRhYmxlLiAqLwogICAgICAgICAg ICAgICAgIGZsYWdzIHw9IFNIQURPV19TRVRfRVJST1I7CiAgICAgICAgICAg ICAgICAgbmV3X3NsMWUgPSBzaGFkb3dfbDFlX2VtcHR5KCk7CiAgICAgICAg ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAg ICAgICAgICAgc2hhZG93X2wxZV9yZW1vdmVfZmxhZ3MobmV3X3NsMWUsIF9Q QUdFX1JXKTsKKyAgICAgICAgICAgIGNhc2UgUEFHRV9GTElQUEFCTEUgJiAt UEFHRV9GTElQUEFCTEUgLi4uIFBBR0VfRkxJUFBBQkxFOgorICAgICAgICAg ICAgICAgIEFTU0VSVCghKHJjICYgflBBR0VfRkxJUFBBQkxFKSk7CisgICAg ICAgICAgICAgICAgbmV3X3NsMWUgPSBzaGFkb3dfbDFlX2ZsaXBfZmxhZ3Mo bmV3X3NsMWUsIHJjKTsKICAgICAgICAgICAgICAgICAvKiBmYWxsIHRocm91 Z2ggKi8KICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICBz aGFkb3dfdnJhbV9nZXRfbDFlKG5ld19zbDFlLCBzbDFlLCBzbDFtZm4sIGQp OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorI3Vu ZGVmIFBBR0VfRkxJUFBBQkxFCiAgICAgICAgIH0KICAgICB9CiAKLS0tIGEv eGVuL2FyY2gveDg2L21tL3NoYWRvdy90eXBlcy5oCisrKyBiL3hlbi9hcmNo L3g4Ni9tbS9zaGFkb3cvdHlwZXMuaApAQCAtOTksNiArOTksOSBAQCBzdGF0 aWMgaW5saW5lIHUzMiBzaGFkb3dfbDRlX2dldF9mbGFncyhzCiBzdGF0aWMg aW5saW5lIHNoYWRvd19sMWVfdAogc2hhZG93X2wxZV9yZW1vdmVfZmxhZ3Mo c2hhZG93X2wxZV90IHNsMWUsIHUzMiBmbGFncykKIHsgbDFlX3JlbW92ZV9m bGFncyhzbDFlLCBmbGFncyk7IHJldHVybiBzbDFlOyB9CitzdGF0aWMgaW5s aW5lIHNoYWRvd19sMWVfdAorc2hhZG93X2wxZV9mbGlwX2ZsYWdzKHNoYWRv d19sMWVfdCBzbDFlLCB1MzIgZmxhZ3MpCit7IGwxZV9mbGlwX2ZsYWdzKHNs MWUsIGZsYWdzKTsgcmV0dXJuIHNsMWU7IH0KIAogc3RhdGljIGlubGluZSBz aGFkb3dfbDFlX3Qgc2hhZG93X2wxZV9lbXB0eSh2b2lkKQogeyByZXR1cm4g bDFlX2VtcHR5KCk7IH0KLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysrIGIv eGVuL2FyY2gveDg2L21tLmMKQEAgLTE3OCw2ICsxNzgsMTggQEAgc3RhdGlj IHVpbnQzMl90IGJhc2VfZGlzYWxsb3dfbWFzazsKICAgICAgIGlzX3B2X2Rv bWFpbihkKSkgPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgIEwxX0RJU0FMTE9XX01BU0sgOiAoTDFfRElTQUxMT1df TUFTSyAmIH5QQUdFX0NBQ0hFX0FUVFJTKSkKIAorc3RhdGljIHM4IF9fcmVh ZF9tb3N0bHkgb3B0X21taW9fcmVsYXg7CitzdGF0aWMgdm9pZCBfX2luaXQg cGFyc2VfbW1pb19yZWxheChjb25zdCBjaGFyICpzKQoreworICAgIGlmICgg ISpzICkKKyAgICAgICAgb3B0X21taW9fcmVsYXggPSAxOworICAgIGVsc2UK KyAgICAgICAgb3B0X21taW9fcmVsYXggPSBwYXJzZV9ib29sKHMpOworICAg IGlmICggb3B0X21taW9fcmVsYXggPCAwICYmIHN0cmNtcChzLCAiYWxsIikg KQorICAgICAgICBvcHRfbW1pb19yZWxheCA9IDA7Cit9CitjdXN0b21fcGFy YW0oIm1taW8tcmVsYXgiLCBwYXJzZV9tbWlvX3JlbGF4KTsKKwogc3RhdGlj IHZvaWQgX19pbml0IGluaXRfZnJhbWV0YWJsZV9jaHVuayh2b2lkICpzdGFy dCwgdm9pZCAqZW5kKQogewogICAgIHVuc2lnbmVkIGxvbmcgcyA9ICh1bnNp Z25lZCBsb25nKXN0YXJ0OwpAQCAtODcxLDEwICs4ODMsNyBAQCBnZXRfcGFn ZV9mcm9tX2wxZSgKICAgICBpZiAoICFtZm5fdmFsaWQobWZuKSB8fAogICAg ICAgICAgKHJlYWxfcGdfb3duZXIgPSBwYWdlX2dldF9vd25lcl9hbmRfcmVm ZXJlbmNlKHBhZ2UpKSA9PSBkb21faW8gKQogICAgIHsKLSNpZm5kZWYgTkRF QlVHCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnJvX21hcDsKLSAg ICAgICAgdW5zaWduZWQgaW50IHNlZywgYmRmOwotI2VuZGlmCisgICAgICAg IGludCBmbGlwID0gMDsKIAogICAgICAgICAvKiBPbmx5IG5lZWRlZCB0aGUg cmVmZXJlbmNlIHRvIGNvbmZpcm0gZG9tX2lvIG93bmVyc2hpcC4gKi8KICAg ICAgICAgaWYgKCBtZm5fdmFsaWQobWZuKSApCkBAIC05MDgsMjQgKzkxNyw1 NSBAQCBnZXRfcGFnZV9mcm9tX2wxZSgKICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCAhKGwxZiAmIF9Q QUdFX1JXKSB8fAotICAgICAgICAgICAgICFyYW5nZXNldF9jb250YWluc19z aW5nbGV0b24obW1pb19yb19yYW5nZXMsIG1mbikgKQotICAgICAgICAgICAg cmV0dXJuIDA7CisgICAgICAgIGlmICggIXJhbmdlc2V0X2NvbnRhaW5zX3Np bmdsZXRvbihtbWlvX3JvX3JhbmdlcywgbWZuKSApCisgICAgICAgIHsKKyAg ICAgICAgICAgIC8qIE1NSU8gcGFnZXMgbXVzdCBub3QgYmUgbWFwcGVkIGNh Y2hhYmxlIHVubGVzcyByZXF1ZXN0ZWQgc28uICovCisgICAgICAgICAgICBz d2l0Y2ggKCBvcHRfbW1pb19yZWxheCApCisgICAgICAgICAgICB7CisgICAg ICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgaWYgKCBpc19oYXJk d2FyZV9kb21haW4obDFlX293bmVyKSApCisgICAgICAgICAgICBjYXNlIC0x OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxF KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBp ZiAoIGwxZiAmIF9QQUdFX1JXICkKKyAgICAgICAgewogI2lmbmRlZiBOREVC VUcKLSAgICAgICAgaWYgKCAhcGNpX21tY2ZnX2RlY29kZShtZm4sICZzZWcs ICZiZGYpIHx8Ci0gICAgICAgICAgICAgKChyb19tYXAgPSBwY2lfZ2V0X3Jv X21hcChzZWcpKSAhPSBOVUxMICYmCi0gICAgICAgICAgICAgIHRlc3RfYml0 KGJkZiwgcm9fbWFwKSkgKQotICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19H X1dBUk5JTkcKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBGb3JjaW5nIHJl YWQtb25seSBhY2Nlc3MgdG8gTUZOICVseFxuIiwKLSAgICAgICAgICAgICAg ICAgICBsMWVfb3duZXItPmRvbWFpbl9pZCwgbWZuKTsKLSAgICAgICAgZWxz ZQotICAgICAgICAgICAgcmFuZ2VzZXRfcmVwb3J0X3JhbmdlcyhtbWlvX3Jv X3JhbmdlcywgMCwgfjBVTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHJpbnRfbW1pb19lbXVsX3JhbmdlLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmKHN0cnVjdCBtbWlvX2VtdWxfcmFu Z2VfY3R4dCl7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC5kID0gbDFlX293bmVyLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAubWZuID0gbWZuIH0pOworICAgICAgICAgICAgY29u c3QgdW5zaWduZWQgbG9uZyAqcm9fbWFwOworICAgICAgICAgICAgdW5zaWdu ZWQgaW50IHNlZywgYmRmOworCisgICAgICAgICAgICBpZiAoICFwY2lfbW1j ZmdfZGVjb2RlKG1mbiwgJnNlZywgJmJkZikgfHwKKyAgICAgICAgICAgICAg ICAgKChyb19tYXAgPSBwY2lfZ2V0X3JvX21hcChzZWcpKSAhPSBOVUxMICYm CisgICAgICAgICAgICAgICAgICB0ZXN0X2JpdChiZGYsIHJvX21hcCkpICkK KyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORworICAg ICAgICAgICAgICAgICAgICAgICAiZCVkOiBGb3JjaW5nIHJlYWQtb25seSBh Y2Nlc3MgdG8gTUZOICVseFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg bDFlX293bmVyLT5kb21haW5faWQsIG1mbik7CisgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgICAgcmFuZ2VzZXRfcmVwb3J0X3JhbmdlcyhtbWlv X3JvX3JhbmdlcywgMCwgfjBVTCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHByaW50X21taW9fZW11bF9yYW5nZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYoc3RydWN0IG1t aW9fZW11bF9yYW5nZV9jdHh0KXsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAuZCA9IGwxZV9vd25lciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWZuID0gbWZu IH0pOwogI2VuZGlmCi0gICAgICAgIHJldHVybiAxOworICAgICAgICAgICAg ZmxpcCA9IF9QQUdFX1JXOworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNo ICggbDFmICYgUEFHRV9DQUNIRV9BVFRSUyApCisgICAgICAgIHsKKyAgICAg ICAgY2FzZSAwOiAvKiBXQiAqLworICAgICAgICAgICAgZmxpcCB8PSBfUEFH RV9QV1QgfCBfUEFHRV9QQ0Q7CisgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgY2FzZSBfUEFHRV9QV1Q6IC8qIFdUICovCisgICAgICAgIGNhc2UgX1BB R0VfUFdUIHwgX1BBR0VfUEFUOiAvKiBXUCAqLworICAgICAgICAgICAgZmxp cCB8PSBfUEFHRV9QQ0QgfCAobDFmICYgX1BBR0VfUEFUKTsKKyAgICAgICAg ICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZsaXA7 CiAgICAgfQogCiAgICAgaWYgKCB1bmxpa2VseSggKHJlYWxfcGdfb3duZXIg IT0gcGdfb3duZXIpICYmCkBAIC0xMzE1LDggKzEzNTUsOSBAQCBzdGF0aWMg aW50IGFsbG9jX2wxX3RhYmxlKHN0cnVjdCBwYWdlX2luCiAgICAgICAgICAg ICAgICAgZ290byBmYWlsOwogICAgICAgICAgICAgY2FzZSAwOgogICAgICAg ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAxOgotICAgICAg ICAgICAgICAgIGwxZV9yZW1vdmVfZmxhZ3MocGwxZVtpXSwgX1BBR0VfUlcp OworICAgICAgICAgICAgY2FzZSBfUEFHRV9SVyAuLi4gX1BBR0VfUlcgfCBQ QUdFX0NBQ0hFX0FUVFJTOgorICAgICAgICAgICAgICAgIEFTU0VSVCghKHJl dCAmIH4oX1BBR0VfUlcgfCBQQUdFX0NBQ0hFX0FUVFJTKSkpOworICAgICAg ICAgICAgICAgIGwxZV9mbGlwX2ZsYWdzKHBsMWVbaV0sIHJldCk7CiAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKQEAgLTE4NDks OCArMTg5MCw5IEBAIHN0YXRpYyBpbnQgbW9kX2wxX2VudHJ5KGwxX3BnZW50 cnlfdCAqcGwKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAg ICB9CiAKLSAgICAgICAgLyogRmFzdCBwYXRoIGZvciBpZGVudGljYWwgbWFw cGluZywgci93IGFuZCBwcmVzZW5jZS4gKi8KLSAgICAgICAgaWYgKCAhbDFl X2hhc19jaGFuZ2VkKG9sMWUsIG5sMWUsIF9QQUdFX1JXIHwgX1BBR0VfUFJF U0VOVCkgKQorICAgICAgICAvKiBGYXN0IHBhdGggZm9yIGlkZW50aWNhbCBt YXBwaW5nLCByL3csIHByZXNlbmNlLCBhbmQgY2FjaGFiaWxpdHkuICovCisg ICAgICAgIGlmICggIWwxZV9oYXNfY2hhbmdlZChvbDFlLCBubDFlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9DQUNIRV9BVFRSUyB8 IF9QQUdFX1JXIHwgX1BBR0VfUFJFU0VOVCkgKQogICAgICAgICB7CiAgICAg ICAgICAgICBhZGp1c3RfZ3Vlc3RfbDFlKG5sMWUsIHB0X2RvbSk7CiAgICAg ICAgICAgICBpZiAoIFVQREFURV9FTlRSWShsMSwgcGwxZSwgb2wxZSwgbmwx ZSwgZ2wxbWZuLCBwdF92Y3B1LApAQCAtMTg3Myw4ICsxOTE1LDkgQEAgc3Rh dGljIGludCBtb2RfbDFfZW50cnkobDFfcGdlbnRyeV90ICpwbAogICAgICAg ICAgICAgcmV0dXJuIHJjOwogICAgICAgICBjYXNlIDA6CiAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgbDFlX3Jl bW92ZV9mbGFncyhubDFlLCBfUEFHRV9SVyk7CisgICAgICAgIGNhc2UgX1BB R0VfUlcgLi4uIF9QQUdFX1JXIHwgUEFHRV9DQUNIRV9BVFRSUzoKKyAgICAg ICAgICAgIEFTU0VSVCghKHJjICYgfihfUEFHRV9SVyB8IFBBR0VfQ0FDSEVf QVRUUlMpKSk7CisgICAgICAgICAgICBsMWVfZmxpcF9mbGFncyhubDFlLCBy Yyk7CiAgICAgICAgICAgICByYyA9IDA7CiAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgfQpAQCAtNTEwOSw2ICs1MTUyLDcgQEAgc3RhdGljIGludCBw dHdyX2VtdWxhdGVkX3VwZGF0ZSgKICAgICBsMV9wZ2VudHJ5X3QgcHRlLCBv bDFlLCBubDFlLCAqcGwxZTsKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJl bnQ7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKKyAgICBp bnQgcmV0OwogCiAgICAgLyogT25seSBhbGxvdyBuYXR1cmFsbHktYWxpZ25l ZCBzdG9yZXMgd2l0aGluIHRoZSBvcmlnaW5hbCAlY3IyIHBhZ2UuICovCiAg ICAgaWYgKCB1bmxpa2VseSgoKGFkZHJecHR3cl9jdHh0LT5jcjIpICYgUEFH RV9NQVNLKSB8fCAoYWRkciAmIChieXRlcy0xKSkpICkKQEAgLTUxNTYsNyAr NTIwMCw3IEBAIHN0YXRpYyBpbnQgcHR3cl9lbXVsYXRlZF91cGRhdGUoCiAK ICAgICAvKiBDaGVjayB0aGUgbmV3IFBURS4gKi8KICAgICBubDFlID0gbDFl X2Zyb21faW50cHRlKHZhbCk7Ci0gICAgc3dpdGNoICggZ2V0X3BhZ2VfZnJv bV9sMWUobmwxZSwgZCwgZCkgKQorICAgIHN3aXRjaCAoIHJldCA9IGdldF9w YWdlX2Zyb21fbDFlKG5sMWUsIGQsIGQpICkKICAgICB7CiAgICAgZGVmYXVs dDoKICAgICAgICAgaWYgKCBpc19wdl8zMmJpdF9kb21haW4oZCkgJiYgKGJ5 dGVzID09IDQpICYmICh1bmFsaWduZWRfYWRkciAmIDQpICYmCkBAIC01MTgw LDggKzUyMjQsOSBAQCBzdGF0aWMgaW50IHB0d3JfZW11bGF0ZWRfdXBkYXRl KAogICAgICAgICBicmVhazsKICAgICBjYXNlIDA6CiAgICAgICAgIGJyZWFr OwotICAgIGNhc2UgMToKLSAgICAgICAgbDFlX3JlbW92ZV9mbGFncyhubDFl LCBfUEFHRV9SVyk7CisgICAgY2FzZSBfUEFHRV9SVyAuLi4gX1BBR0VfUlcg fCBQQUdFX0NBQ0hFX0FUVFJTOgorICAgICAgICBBU1NFUlQoIShyZXQgJiB+ KF9QQUdFX1JXIHwgUEFHRV9DQUNIRV9BVFRSUykpKTsKKyAgICAgICAgbDFl X2ZsaXBfZmxhZ3MobmwxZSwgcmV0KTsKICAgICAgICAgYnJlYWs7CiAgICAg fQogCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCisrKyBiL3hl bi9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCkBAIC0xNTcsNiArMTU3LDkgQEAg c3RhdGljIGlubGluZSBsNF9wZ2VudHJ5X3QgbDRlX2Zyb21fcGFkZAogI2Rl ZmluZSBsM2VfcmVtb3ZlX2ZsYWdzKHgsIGZsYWdzKSAoKHgpLmwzICY9IH5w dXRfcHRlX2ZsYWdzKGZsYWdzKSkKICNkZWZpbmUgbDRlX3JlbW92ZV9mbGFn cyh4LCBmbGFncykgKCh4KS5sNCAmPSB+cHV0X3B0ZV9mbGFncyhmbGFncykp CiAKKy8qIEZsaXAgZmxhZ3MgaW4gYW4gZXhpc3RpbmcgTDEgUFRFLiAqLwor I2RlZmluZSBsMWVfZmxpcF9mbGFncyh4LCBmbGFncykgICAgKCh4KS5sMSBe PSBwdXRfcHRlX2ZsYWdzKGZsYWdzKSkKKwogLyogQ2hlY2sgaWYgYSBwdGUn cyBwYWdlIG1hcHBpbmcgb3Igc2lnbmlmaWNhbnQgYWNjZXNzIGZsYWdzIGhh dmUgY2hhbmdlZC4gKi8KICNkZWZpbmUgbDFlX2hhc19jaGFuZ2VkKHgseSxm bGFncykgXAogICAgICggISEoKCh4KS5sMSBeICh5KS5sMSkgJiAoKFBBRERS X01BU0smUEFHRV9NQVNLKXxwdXRfcHRlX2ZsYWdzKGZsYWdzKSkpICkK --=separator Content-Type: application/octet-stream; name="xsa154-4.3.patch" Content-Disposition: attachment; filename="xsa154-4.3.patch" Content-Transfer-Encoding: base64 eDg2OiBlbmZvcmNlIGNvbnNpc3RlbnQgY2FjaGFiaWxpdHkgb2YgTU1JTyBt YXBwaW5ncwoKV2UndmUgYmVlbiB0b2xkIGJ5IEludGVsIHRoYXQgaW5jb25z aXN0ZW50IGNhY2hhYmlsaXR5IGJldHdlZW4KbXVsdGlwbGUgbWFwcGluZ3Mg b2YgdGhlIHNhbWUgcGFnZSBjYW4gYWZmZWN0IHN5c3RlbSBzdGFiaWxpdHkg b25seQp3aGVuIHRoZSBhZmZlY3RlZCBwYWdlIGlzIGFuIE1NSU8gb25lLiBT aW5jZSB0aGUgc3RhbGUgZGF0YSBpc3N1ZSBpcwpvZiBubyByZWxldmFuY2Ug dG8gdGhlIGh5cGVydmlzb3IgKHNpbmNlIGFsbCBndWVzdCBtZW1vcnkgYWNj ZXNzZXMgZ28KdGhyb3VnaCBwcm9wZXIgYWNjZXNzb3JzIGFuZCB2YWxpZGF0 aW9uKSwgaGFuZGxpbmcgb2YgUkFNIHBhZ2VzCnJlbWFpbnMgdW5jaGFuZ2Vk IGhlcmUuIEFueSBNTUlPIG1hcHBlZCBieSBkb21haW5zIGhvd2V2ZXIgbmVl ZHMgdG8gYmUKZG9uZSBjb25zaXN0ZW50bHkgKGFsbCBjYWNoYWJsZSBtYXBw aW5ncyBvciBhbGwgdW5jYWNoYWJsZSBvbmVzKSwgaW4Kb3JkZXIgdG8gYXZv aWQgTWFjaGluZSBDaGVjayBleGNlcHRpb25zLiBTaW5jZSBjb252ZXJ0aW5n IGV4aXN0aW5nCmNhY2hhYmxlIG1hcHBpbmdzIHRvIHVuY2FjaGFibGUgKGF0 IHRoZSB0aW1lIGFuIHVuY2FjaGFibGUgbWFwcGluZwpnZXRzIGVzdGFibGlz aGVkKSB3b3VsZCBpbiB0aGUgUFYgY2FzZSByZXF1aXJlIHRyYWNraW5nIGFs bCBtYXBwaW5ncywKYWxsb3cgTU1JTyB0byBvbmx5IGdldCBtYXBwZWQgdW5j YWNoYWJsZSAoVUMsIFVDLSwgb3IgV0MpLgoKVGhpcyBhbHNvIGltcGxpZXMg dGhhdCBpbiB0aGUgUFYgY2FzZSB3ZSBtdXN0bid0IHVzZSB0aGUgTDEgUFRF IHVwZGF0ZQpmYXN0IHBhdGggd2hlbiBjYWNoYWJpbGl0eSBmbGFncyBnZXQg YWx0ZXJlZC4KClNpbmNlIGluIHRoZSBIVk0gY2FzZSBhdCBsZWFzdCBmb3Ig bm93IHdlIHdhbnQgdG8gY29udGludWUgaG9ub3JpbmcKcGlubmVkIGNhY2hh YmlsaXR5IGF0dHJpYnV0ZXMgZm9yIHBhZ2VzIG5vdCBtYXBwZWQgYnkgdGhl IGh5cGVydmlzb3IsCnNwZWNpYWwgY2FzZSBoYW5kbGluZyBvZiByL28gTU1J TyBwYWdlcyAoZm9yY2luZyBVQykgZ2V0cyBhZGRlZCB0aGVyZS4KQXJndWFi bHkgdGhlIGNvdW50ZXJwYXJ0IGNoYW5nZSB0byBwMm0tcHQuYyBtYXkgbm90 IGJlIG5lY2Vzc2FyeSwgc2luY2UKVUMtICh3aGljaCBhbHJlYWR5IGdldHMg ZW5mb3JjZWQgdGhlcmUpIGlzIHByb2JhYmx5IHN0cmljdCBlbm91Z2guCgpO b3RlIHRoYXQgdGhlIHNoYWRvdyBjb2RlIGNoYW5nZXMgaW5jbHVkZSBmaXhp bmcgdGhlIHdyaXRlIHByb3RlY3Rpb24Kb2Ygci9vIE1NSU8gcmFuZ2VzOiBz aGFkb3dfbDFlX3JlbW92ZV9mbGFncygpIGFuZCBpdHMgc2libGluZ3MsIG90 aGVyCnRoYW4gbDFlX3JlbW92ZV9mbGFncygpIGFuZCBhbGlrZSwgcmV0dXJu IHRoZSBuZXcgUFRFIChhbmQgaGVuY2UKaWdub3JpbmcgdGhlaXIgcmV0dXJu IHZhbHVlcyBtYWtlcyB0aGVtIG5vLW9wcykuCgpUaGlzIGlzIENWRS0yMDE2 LTIyNzAgLyBYU0EtMTU0LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgpBY2tlZC1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCi0tLSBhL2RvY3MvbWlzYy94 ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duCkBAIC02NTYsNiArNjU2LDE1IEBAIGxp bWl0IGlzIGlnbm9yZWQgYnkgWGVuLgogCiBTcGVjaWZ5IGlmIHRoZSBNTUNv bmZpZyBzcGFjZSBzaG91bGQgYmUgZW5hYmxlZC4KIAorIyMjIG1taW8tcmVs YXgKKz4gYD0gPGJvb2xlYW4+IHwgYWxsYAorCis+IERlZmF1bHQ6IGBmYWxz ZWAKKworQnkgZGVmYXVsdCwgZG9tYWlucyBtYXkgbm90IGNyZWF0ZSBjYWNo ZWQgbWFwcGluZ3MgdG8gTU1JTyByZWdpb25zLgorVGhpcyBvcHRpb24gcmVs YXhlcyB0aGUgY2hlY2sgZm9yIERvbWFpbiAwIChvciB3aGVuIHVzaW5nIGBh bGxgLCBhbGwgUFYKK2RvbWFpbnMpLCB0byBwZXJtaXQgdGhlIHVzZSBvZiBj YWNoZWFibGUgTU1JTyBtYXBwaW5ncy4KKwogIyMjIG1zaQogPiBgPSA8Ym9v bGVhbj5gCiAKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9tdHJyLmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS9tdHJyLmMKQEAgLTY5Myw4ICs2OTMsMTIgQEAg dWludDhfdCBlcHRlX2dldF9lbnRyeV9lbXQoc3RydWN0IGRvbWFpbgogICAg IGlmICggdi0+ZG9tYWluICE9IGQgKQogICAgICAgICB2ID0gZC0+dmNwdSA/ IGQtPnZjcHVbMF0gOiBOVUxMOwogCi0gICAgaWYgKCAhbWZuX3ZhbGlkKG1m bl94KG1mbikpICkKKyAgICBpZiAoICFtZm5fdmFsaWQobWZuX3gobWZuKSkg fHwKKyAgICAgICAgIHJhbmdlc2V0X2NvbnRhaW5zX3NpbmdsZXRvbihtbWlv X3JvX3JhbmdlcywgbWZuX3gobWZuKSkgKQorICAgIHsKKyAgICAgICAgKmlw YXQgPSAxOwogICAgICAgICByZXR1cm4gTVRSUl9UWVBFX1VOQ0FDSEFCTEU7 CisgICAgfQogCiAgICAgaWYgKCBodm1fZ2V0X21lbV9waW5uZWRfY2FjaGVh dHRyKGQsIGdmbiwgJnR5cGUpICkKICAgICAgICAgcmV0dXJuIHR5cGU7Ci0t LSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYworKysgYi94ZW4vYXJjaC94 ODYvbW0vcDJtLXB0LmMKQEAgLTkzLDYgKzkzLDggQEAgc3RhdGljIHVuc2ln bmVkIGxvbmcgcDJtX3R5cGVfdG9fZmxhZ3MocAogICAgIGNhc2UgcDJtX21t aW9fZGlyZWN0OgogICAgICAgICBpZiAoICFyYW5nZXNldF9jb250YWluc19z aW5nbGV0b24obW1pb19yb19yYW5nZXMsIG1mbl94KG1mbikpICkKICAgICAg ICAgICAgIGZsYWdzIHw9IF9QQUdFX1JXOworICAgICAgICBlbHNlCisgICAg ICAgICAgICBmbGFncyB8PSBfUEFHRV9QV1Q7CiAgICAgICAgIHJldHVybiBm bGFncyB8IFAyTV9CQVNFX0ZMQUdTIHwgX1BBR0VfUENEOwogICAgIH0KIH0K LS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCisrKyBiL3hl bi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwpAQCAtNTIxLDYgKzUyMSw3 IEBAIF9zaF9wcm9wYWdhdGUoc3RydWN0IHZjcHUgKnYsCiAgICAgZ2ZuX3Qg dGFyZ2V0X2dmbiA9IGd1ZXN0X2wxZV9nZXRfZ2ZuKGd1ZXN0X2VudHJ5KTsK ICAgICB1MzIgcGFzc190aHJ1X2ZsYWdzOwogICAgIHUzMiBnZmxhZ3MsIHNm bGFnczsKKyAgICBib29sX3QgbW1pb19tZm47CiAKICAgICAvKiBXZSBkb24n dCBzaGFkb3cgUEFFIGwzcyAqLwogICAgIEFTU0VSVChHVUVTVF9QQUdJTkdf TEVWRUxTID4gMyB8fCBsZXZlbCAhPSAzKTsKQEAgLTU2MSw3ICs1NjIsMTAg QEAgX3NoX3Byb3BhZ2F0ZShzdHJ1Y3QgdmNwdSAqdiwKICAgICAvLyBtZm4g bWVhbnMgdGhhdCB3ZSBjYW4gbm90IHVzZWZ1bGx5IHNoYWRvdyBhbnl0aGlu ZywgYW5kIHNvIHdlCiAgICAgLy8gcmV0dXJuIGVhcmx5LgogICAgIC8vCi0g ICAgaWYgKCAhbWZuX3ZhbGlkKHRhcmdldF9tZm4pCisgICAgbW1pb19tZm4g PSAhbWZuX3ZhbGlkKHRhcmdldF9tZm4pCisgICAgICAgICAgICAgICB8fCAo bGV2ZWwgPT0gMQorICAgICAgICAgICAgICAgICAgICYmIHBhZ2VfZ2V0X293 bmVyKG1mbl90b19wYWdlKHRhcmdldF9tZm4pKSA9PSBkb21faW8pOworICAg IGlmICggbW1pb19tZm4KICAgICAgICAgICYmICEobGV2ZWwgPT0gMSAmJiAo IXNoYWRvd19tb2RlX3JlZmNvdW50cyhkKSAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfHwgcDJtdCA9PSBwMm1fbW1pb19kaXJlY3QpKSApCiAg ICAgewpAQCAtNTc5LDcgKzU4Myw3IEBAIF9zaF9wcm9wYWdhdGUoc3RydWN0 IHZjcHUgKnYsCiAgICAgICAgICAgICAgICAgICAgICAgIF9QQUdFX1JXIHwg X1BBR0VfUFJFU0VOVCk7CiAgICAgaWYgKCBndWVzdF9zdXBwb3J0c19ueCh2 KSApCiAgICAgICAgIHBhc3NfdGhydV9mbGFncyB8PSBfUEFHRV9OWF9CSVQ7 Ci0gICAgaWYgKCAhc2hhZG93X21vZGVfcmVmY291bnRzKGQpICYmICFtZm5f dmFsaWQodGFyZ2V0X21mbikgKQorICAgIGlmICggbGV2ZWwgPT0gMSAmJiAh c2hhZG93X21vZGVfcmVmY291bnRzKGQpICYmIG1taW9fbWZuICkKICAgICAg ICAgcGFzc190aHJ1X2ZsYWdzIHw9IF9QQUdFX1BBVCB8IF9QQUdFX1BDRCB8 IF9QQUdFX1BXVDsKICAgICBzZmxhZ3MgPSBnZmxhZ3MgJiBwYXNzX3RocnVf ZmxhZ3M7CiAKQEAgLTY3NiwxMCArNjgwLDE0IEBAIF9zaF9wcm9wYWdhdGUo c3RydWN0IHZjcHUgKnYsCiAgICAgfQogCiAgICAgLyogUmVhZC1vbmx5IG1l bW9yeSAqLwotICAgIGlmICggcDJtX2lzX3JlYWRvbmx5KHAybXQpIHx8Ci0g ICAgICAgICAocDJtdCA9PSBwMm1fbW1pb19kaXJlY3QgJiYKLSAgICAgICAg ICByYW5nZXNldF9jb250YWluc19zaW5nbGV0b24obW1pb19yb19yYW5nZXMs IG1mbl94KHRhcmdldF9tZm4pKSkgKQorICAgIGlmICggcDJtX2lzX3JlYWRv bmx5KHAybXQpICkKICAgICAgICAgc2ZsYWdzICY9IH5fUEFHRV9SVzsKKyAg ICBlbHNlIGlmICggcDJtdCA9PSBwMm1fbW1pb19kaXJlY3QgJiYKKyAgICAg ICAgICAgICAgcmFuZ2VzZXRfY29udGFpbnNfc2luZ2xldG9uKG1taW9fcm9f cmFuZ2VzLCBtZm5feCh0YXJnZXRfbWZuKSkgKQorICAgIHsKKyAgICAgICAg c2ZsYWdzICY9IH4oX1BBR0VfUlcgfCBfUEFHRV9QQVQpOworICAgICAgICBz ZmxhZ3MgfD0gX1BBR0VfUENEIHwgX1BBR0VfUFdUOworICAgIH0KICAgICAK ICAgICAvLyBwcm90ZWN0IGd1ZXN0IHBhZ2UgdGFibGVzCiAgICAgLy8KQEAg LTEyMDEsMjIgKzEyMDksMjggQEAgc3RhdGljIGludCBzaGFkb3dfc2V0X2wx ZShzdHJ1Y3QgdmNwdSAqdgogICAgICAgICAgJiYgIXNoX2wxZV9pc19tYWdp YyhuZXdfc2wxZSkgKSAKICAgICB7CiAgICAgICAgIC8qIEFib3V0IHRvIGlu c3RhbGwgYSBuZXcgcmVmZXJlbmNlICovICAgICAgICAKLSAgICAgICAgaWYg KCBzaGFkb3dfbW9kZV9yZWZjb3VudHMoZCkgKSB7CisgICAgICAgIGlmICgg c2hhZG93X21vZGVfcmVmY291bnRzKGQpICkKKyAgICAgICAgeworI2RlZmlu ZSBQQUdFX0ZMSVBQQUJMRSAoX1BBR0VfUlcgfCBfUEFHRV9QV1QgfCBfUEFH RV9QQ0QgfCBfUEFHRV9QQVQpCisgICAgICAgICAgICBpbnQgcmM7CisKICAg ICAgICAgICAgIFRSQUNFX1NIQURPV19QQVRIX0ZMQUcoVFJDRV9TRkxBR19T SEFET1dfTDFfR0VUX1JFRik7Ci0gICAgICAgICAgICBzd2l0Y2ggKCBzaGFk b3dfZ2V0X3BhZ2VfZnJvbV9sMWUobmV3X3NsMWUsIGQsIG5ld190eXBlKSAp CisgICAgICAgICAgICBzd2l0Y2ggKCByYyA9IHNoYWRvd19nZXRfcGFnZV9m cm9tX2wxZShuZXdfc2wxZSwgZCwgbmV3X3R5cGUpICkKICAgICAgICAgICAg IHsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgLyog RG9lc24ndCBsb29rIGxpa2UgYSBwYWdldGFibGUuICovCiAgICAgICAgICAg ICAgICAgZmxhZ3MgfD0gU0hBRE9XX1NFVF9FUlJPUjsKICAgICAgICAgICAg ICAgICBuZXdfc2wxZSA9IHNoYWRvd19sMWVfZW1wdHkoKTsKICAgICAgICAg ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAg ICAgICAgICBzaGFkb3dfbDFlX3JlbW92ZV9mbGFncyhuZXdfc2wxZSwgX1BB R0VfUlcpOworICAgICAgICAgICAgY2FzZSBQQUdFX0ZMSVBQQUJMRSAmIC1Q QUdFX0ZMSVBQQUJMRSAuLi4gUEFHRV9GTElQUEFCTEU6CisgICAgICAgICAg ICAgICAgQVNTRVJUKCEocmMgJiB+UEFHRV9GTElQUEFCTEUpKTsKKyAgICAg ICAgICAgICAgICBuZXdfc2wxZSA9IHNoYWRvd19sMWVfZmxpcF9mbGFncyhu ZXdfc2wxZSwgcmMpOwogICAgICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3Vn aCAqLwogICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgIHNo YWRvd192cmFtX2dldF9sMWUobmV3X3NsMWUsIHNsMWUsIHNsMW1mbiwgZCk7 CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisjdW5k ZWYgUEFHRV9GTElQUEFCTEUKICAgICAgICAgfQogICAgIH0gCiAKLS0tIGEv eGVuL2FyY2gveDg2L21tL3NoYWRvdy90eXBlcy5oCisrKyBiL3hlbi9hcmNo L3g4Ni9tbS9zaGFkb3cvdHlwZXMuaApAQCAtMTAwLDYgKzEwMCw5IEBAIHN0 YXRpYyBpbmxpbmUgdTMyIHNoYWRvd19sNGVfZ2V0X2ZsYWdzKHMKIHN0YXRp YyBpbmxpbmUgc2hhZG93X2wxZV90CiBzaGFkb3dfbDFlX3JlbW92ZV9mbGFn cyhzaGFkb3dfbDFlX3Qgc2wxZSwgdTMyIGZsYWdzKQogeyBsMWVfcmVtb3Zl X2ZsYWdzKHNsMWUsIGZsYWdzKTsgcmV0dXJuIHNsMWU7IH0KK3N0YXRpYyBp bmxpbmUgc2hhZG93X2wxZV90CitzaGFkb3dfbDFlX2ZsaXBfZmxhZ3Moc2hh ZG93X2wxZV90IHNsMWUsIHUzMiBmbGFncykKK3sgbDFlX2ZsaXBfZmxhZ3Mo c2wxZSwgZmxhZ3MpOyByZXR1cm4gc2wxZTsgfQogCiBzdGF0aWMgaW5saW5l IHNoYWRvd19sMWVfdCBzaGFkb3dfbDFlX2VtcHR5KHZvaWQpIAogeyByZXR1 cm4gbDFlX2VtcHR5KCk7IH0KLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysr IGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTE4OCw2ICsxODgsMTggQEAgc3Rh dGljIHVpbnQzMl90IGJhc2VfZGlzYWxsb3dfbWFzazsKICAgICAgICFpc19o dm1fZG9tYWluKGQpKSA/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgIEwxX0RJU0FMTE9XX01BU0sgOiAoTDFfRElTQUxM T1dfTUFTSyAmIH5QQUdFX0NBQ0hFX0FUVFJTKSkKIAorc3RhdGljIHM4IF9f cmVhZF9tb3N0bHkgb3B0X21taW9fcmVsYXg7CitzdGF0aWMgdm9pZCBfX2lu aXQgcGFyc2VfbW1pb19yZWxheChjb25zdCBjaGFyICpzKQoreworICAgIGlm ICggISpzICkKKyAgICAgICAgb3B0X21taW9fcmVsYXggPSAxOworICAgIGVs c2UKKyAgICAgICAgb3B0X21taW9fcmVsYXggPSBwYXJzZV9ib29sKHMpOwor ICAgIGlmICggb3B0X21taW9fcmVsYXggPCAwICYmIHN0cmNtcChzLCAiYWxs IikgKQorICAgICAgICBvcHRfbW1pb19yZWxheCA9IDA7Cit9CitjdXN0b21f cGFyYW0oIm1taW8tcmVsYXgiLCBwYXJzZV9tbWlvX3JlbGF4KTsKKwogc3Rh dGljIHZvaWQgX19pbml0IGluaXRfZnJhbWV0YWJsZV9jaHVuayh2b2lkICpz dGFydCwgdm9pZCAqZW5kKQogewogICAgIHVuc2lnbmVkIGxvbmcgcyA9ICh1 bnNpZ25lZCBsb25nKXN0YXJ0OwpAQCAtNzczLDYgKzc4NSw4IEBAIGdldF9w YWdlX2Zyb21fbDFlKAogICAgIGlmICggIW1mbl92YWxpZChtZm4pIHx8CiAg ICAgICAgICAocmVhbF9wZ19vd25lciA9IHBhZ2VfZ2V0X293bmVyX2FuZF9y ZWZlcmVuY2UocGFnZSkpID09IGRvbV9pbyApCiAgICAgeworICAgICAgICBp bnQgZmxpcCA9IDA7CisKICAgICAgICAgLyogT25seSBuZWVkZWQgdGhlIHJl ZmVyZW5jZSB0byBjb25maXJtIGRvbV9pbyBvd25lcnNoaXAuICovCiAgICAg ICAgIGlmICggbWZuX3ZhbGlkKG1mbikgKQogICAgICAgICAgICAgcHV0X3Bh Z2UocGFnZSk7CkBAIC04MDUsMTMgKzgxOSw0MSBAQCBnZXRfcGFnZV9mcm9t X2wxZSgKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9 CiAKLSAgICAgICAgaWYgKCAhKGwxZiAmIF9QQUdFX1JXKSB8fAotICAgICAg ICAgICAgICFyYW5nZXNldF9jb250YWluc19zaW5nbGV0b24obW1pb19yb19y YW5nZXMsIG1mbikgKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAg IGRwcmludGsoWEVOTE9HX0dfV0FSTklORywKLSAgICAgICAgICAgICAgICAi ZCVkOiBGb3JjaW5nIHJlYWQtb25seSBhY2Nlc3MgdG8gTUZOICVseFxuIiwK LSAgICAgICAgICAgICAgICBsMWVfb3duZXItPmRvbWFpbl9pZCwgbWZuKTsK LSAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGlmICggIXJhbmdlc2V0X2Nv bnRhaW5zX3NpbmdsZXRvbihtbWlvX3JvX3JhbmdlcywgbWZuKSApCisgICAg ICAgIHsKKyAgICAgICAgICAgIC8qIE1NSU8gcGFnZXMgbXVzdCBub3QgYmUg bWFwcGVkIGNhY2hhYmxlIHVubGVzcyByZXF1ZXN0ZWQgc28uICovCisgICAg ICAgICAgICBzd2l0Y2ggKCBvcHRfbW1pb19yZWxheCApCisgICAgICAgICAg ICB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgaWYg KCBpc19oYXJkd2FyZV9kb21haW4obDFlX293bmVyKSApCisgICAgICAgICAg ICBjYXNlIC0xOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAg ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgQVNTRVJUKDAp OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYg KCBsMWYgJiBfUEFHRV9SVyApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRw cmludGsoWEVOTE9HX0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAg ImQlZDogRm9yY2luZyByZWFkLW9ubHkgYWNjZXNzIHRvIE1GTiAlbHhcbiIs CisgICAgICAgICAgICAgICAgICAgIGwxZV9vd25lci0+ZG9tYWluX2lkLCBt Zm4pOworICAgICAgICAgICAgZmxpcCA9IF9QQUdFX1JXOworICAgICAgICB9 CisKKyAgICAgICAgc3dpdGNoICggbDFmICYgUEFHRV9DQUNIRV9BVFRSUyAp CisgICAgICAgIHsKKyAgICAgICAgY2FzZSAwOiAvKiBXQiAqLworICAgICAg ICAgICAgZmxpcCB8PSBfUEFHRV9QV1QgfCBfUEFHRV9QQ0Q7CisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBfUEFHRV9QV1Q6IC8qIFdUICov CisgICAgICAgIGNhc2UgX1BBR0VfUFdUIHwgX1BBR0VfUEFUOiAvKiBXUCAq LworICAgICAgICAgICAgZmxpcCB8PSBfUEFHRV9QQ0QgfCAobDFmICYgX1BB R0VfUEFUKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAg ICAgICAgcmV0dXJuIGZsaXA7CiAgICAgfQogCiAgICAgaWYgKCB1bmxpa2Vs eSggKHJlYWxfcGdfb3duZXIgIT0gcGdfb3duZXIpICYmCkBAIC0xMjEwLDgg KzEyNTIsOSBAQCBzdGF0aWMgaW50IGFsbG9jX2wxX3RhYmxlKHN0cnVjdCBw YWdlX2luCiAgICAgICAgICAgICAgICAgZ290byBmYWlsOwogICAgICAgICAg ICAgY2FzZSAwOgogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg ICAgY2FzZSAxOgotICAgICAgICAgICAgICAgIGwxZV9yZW1vdmVfZmxhZ3Mo cGwxZVtpXSwgX1BBR0VfUlcpOworICAgICAgICAgICAgY2FzZSBfUEFHRV9S VyAuLi4gX1BBR0VfUlcgfCBQQUdFX0NBQ0hFX0FUVFJTOgorICAgICAgICAg ICAgICAgIEFTU0VSVCghKHJldCAmIH4oX1BBR0VfUlcgfCBQQUdFX0NBQ0hF X0FUVFJTKSkpOworICAgICAgICAgICAgICAgIGwxZV9mbGlwX2ZsYWdzKHBs MWVbaV0sIHJldCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgICB9CiAKQEAgLTE3MDYsOCArMTc0OSw5IEBAIHN0YXRpYyBpbnQgbW9k X2wxX2VudHJ5KGwxX3BnZW50cnlfdCAqcGwKICAgICAgICAgICAgIHJldHVy biAtRUlOVkFMOwogICAgICAgICB9CiAKLSAgICAgICAgLyogRmFzdCBwYXRo IGZvciBpZGVudGljYWwgbWFwcGluZywgci93IGFuZCBwcmVzZW5jZS4gKi8K LSAgICAgICAgaWYgKCAhbDFlX2hhc19jaGFuZ2VkKG9sMWUsIG5sMWUsIF9Q QUdFX1JXIHwgX1BBR0VfUFJFU0VOVCkgKQorICAgICAgICAvKiBGYXN0IHBh dGggZm9yIGlkZW50aWNhbCBtYXBwaW5nLCByL3csIHByZXNlbmNlLCBhbmQg Y2FjaGFiaWxpdHkuICovCisgICAgICAgIGlmICggIWwxZV9oYXNfY2hhbmdl ZChvbDFlLCBubDFlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UEFHRV9DQUNIRV9BVFRSUyB8IF9QQUdFX1JXIHwgX1BBR0VfUFJFU0VOVCkg KQogICAgICAgICB7CiAgICAgICAgICAgICBhZGp1c3RfZ3Vlc3RfbDFlKG5s MWUsIHB0X2RvbSk7CiAgICAgICAgICAgICBpZiAoIFVQREFURV9FTlRSWShs MSwgcGwxZSwgb2wxZSwgbmwxZSwgZ2wxbWZuLCBwdF92Y3B1LApAQCAtMTcz MCw4ICsxNzc0LDkgQEAgc3RhdGljIGludCBtb2RfbDFfZW50cnkobDFfcGdl bnRyeV90ICpwbAogICAgICAgICAgICAgcmV0dXJuIHJjOwogICAgICAgICBj YXNlIDA6CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgot ICAgICAgICAgICAgbDFlX3JlbW92ZV9mbGFncyhubDFlLCBfUEFHRV9SVyk7 CisgICAgICAgIGNhc2UgX1BBR0VfUlcgLi4uIF9QQUdFX1JXIHwgUEFHRV9D QUNIRV9BVFRSUzoKKyAgICAgICAgICAgIEFTU0VSVCghKHJjICYgfihfUEFH RV9SVyB8IFBBR0VfQ0FDSEVfQVRUUlMpKSk7CisgICAgICAgICAgICBsMWVf ZmxpcF9mbGFncyhubDFlLCByYyk7CiAgICAgICAgICAgICByYyA9IDA7CiAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNTAxMCw2ICs1MDU1 LDcgQEAgc3RhdGljIGludCBwdHdyX2VtdWxhdGVkX3VwZGF0ZSgKICAgICBs MV9wZ2VudHJ5X3QgcHRlLCBvbDFlLCBubDFlLCAqcGwxZTsKICAgICBzdHJ1 Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9 IHYtPmRvbWFpbjsKKyAgICBpbnQgcmV0OwogCiAgICAgLyogT25seSBhbGxv dyBuYXR1cmFsbHktYWxpZ25lZCBzdG9yZXMgd2l0aGluIHRoZSBvcmlnaW5h bCAlY3IyIHBhZ2UuICovCiAgICAgaWYgKCB1bmxpa2VseSgoKGFkZHJecHR3 cl9jdHh0LT5jcjIpICYgUEFHRV9NQVNLKSB8fCAoYWRkciAmIChieXRlcy0x KSkpICkKQEAgLTUwNTcsNyArNTEwMyw3IEBAIHN0YXRpYyBpbnQgcHR3cl9l bXVsYXRlZF91cGRhdGUoCiAKICAgICAvKiBDaGVjayB0aGUgbmV3IFBURS4g Ki8KICAgICBubDFlID0gbDFlX2Zyb21faW50cHRlKHZhbCk7Ci0gICAgc3dp dGNoICggZ2V0X3BhZ2VfZnJvbV9sMWUobmwxZSwgZCwgZCkgKQorICAgIHN3 aXRjaCAoIHJldCA9IGdldF9wYWdlX2Zyb21fbDFlKG5sMWUsIGQsIGQpICkK ICAgICB7CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYgKCBpc19wdl8zMmJp dF9kb21haW4oZCkgJiYgKGJ5dGVzID09IDQpICYmICh1bmFsaWduZWRfYWRk ciAmIDQpICYmCkBAIC01MDgxLDggKzUxMjcsOSBAQCBzdGF0aWMgaW50IHB0 d3JfZW11bGF0ZWRfdXBkYXRlKAogICAgICAgICBicmVhazsKICAgICBjYXNl IDA6CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgMToKLSAgICAgICAgbDFl X3JlbW92ZV9mbGFncyhubDFlLCBfUEFHRV9SVyk7CisgICAgY2FzZSBfUEFH RV9SVyAuLi4gX1BBR0VfUlcgfCBQQUdFX0NBQ0hFX0FUVFJTOgorICAgICAg ICBBU1NFUlQoIShyZXQgJiB+KF9QQUdFX1JXIHwgUEFHRV9DQUNIRV9BVFRS UykpKTsKKyAgICAgICAgbDFlX2ZsaXBfZmxhZ3MobmwxZSwgcmV0KTsKICAg ICAgICAgYnJlYWs7CiAgICAgfQogCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvcGFnZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCkBA IC0xNTcsNiArMTU3LDkgQEAgc3RhdGljIGlubGluZSBsNF9wZ2VudHJ5X3Qg bDRlX2Zyb21fcGFkZAogI2RlZmluZSBsM2VfcmVtb3ZlX2ZsYWdzKHgsIGZs YWdzKSAoKHgpLmwzICY9IH5wdXRfcHRlX2ZsYWdzKGZsYWdzKSkKICNkZWZp bmUgbDRlX3JlbW92ZV9mbGFncyh4LCBmbGFncykgKCh4KS5sNCAmPSB+cHV0 X3B0ZV9mbGFncyhmbGFncykpCiAKKy8qIEZsaXAgZmxhZ3MgaW4gYW4gZXhp c3RpbmcgTDEgUFRFLiAqLworI2RlZmluZSBsMWVfZmxpcF9mbGFncyh4LCBm bGFncykgICAgKCh4KS5sMSBePSBwdXRfcHRlX2ZsYWdzKGZsYWdzKSkKKwog LyogQ2hlY2sgaWYgYSBwdGUncyBwYWdlIG1hcHBpbmcgb3Igc2lnbmlmaWNh bnQgYWNjZXNzIGZsYWdzIGhhdmUgY2hhbmdlZC4gKi8KICNkZWZpbmUgbDFl X2hhc19jaGFuZ2VkKHgseSxmbGFncykgXAogICAgICggISEoKCh4KS5sMSBe ICh5KS5sMSkgJiAoKFBBRERSX01BU0smUEFHRV9NQVNLKXxwdXRfcHRlX2Zs YWdzKGZsYWdzKSkpICkK --=separator Content-Type: application/octet-stream; name="xsa154-4.4.patch" Content-Disposition: attachment; filename="xsa154-4.4.patch" Content-Transfer-Encoding: base64 eDg2OiBlbmZvcmNlIGNvbnNpc3RlbnQgY2FjaGFiaWxpdHkgb2YgTU1JTyBt YXBwaW5ncwoKV2UndmUgYmVlbiB0b2xkIGJ5IEludGVsIHRoYXQgaW5jb25z aXN0ZW50IGNhY2hhYmlsaXR5IGJldHdlZW4KbXVsdGlwbGUgbWFwcGluZ3Mg b2YgdGhlIHNhbWUgcGFnZSBjYW4gYWZmZWN0IHN5c3RlbSBzdGFiaWxpdHkg b25seQp3aGVuIHRoZSBhZmZlY3RlZCBwYWdlIGlzIGFuIE1NSU8gb25lLiBT aW5jZSB0aGUgc3RhbGUgZGF0YSBpc3N1ZSBpcwpvZiBubyByZWxldmFuY2Ug dG8gdGhlIGh5cGVydmlzb3IgKHNpbmNlIGFsbCBndWVzdCBtZW1vcnkgYWNj ZXNzZXMgZ28KdGhyb3VnaCBwcm9wZXIgYWNjZXNzb3JzIGFuZCB2YWxpZGF0 aW9uKSwgaGFuZGxpbmcgb2YgUkFNIHBhZ2VzCnJlbWFpbnMgdW5jaGFuZ2Vk IGhlcmUuIEFueSBNTUlPIG1hcHBlZCBieSBkb21haW5zIGhvd2V2ZXIgbmVl ZHMgdG8gYmUKZG9uZSBjb25zaXN0ZW50bHkgKGFsbCBjYWNoYWJsZSBtYXBw aW5ncyBvciBhbGwgdW5jYWNoYWJsZSBvbmVzKSwgaW4Kb3JkZXIgdG8gYXZv aWQgTWFjaGluZSBDaGVjayBleGNlcHRpb25zLiBTaW5jZSBjb252ZXJ0aW5n IGV4aXN0aW5nCmNhY2hhYmxlIG1hcHBpbmdzIHRvIHVuY2FjaGFibGUgKGF0 IHRoZSB0aW1lIGFuIHVuY2FjaGFibGUgbWFwcGluZwpnZXRzIGVzdGFibGlz aGVkKSB3b3VsZCBpbiB0aGUgUFYgY2FzZSByZXF1aXJlIHRyYWNraW5nIGFs bCBtYXBwaW5ncywKYWxsb3cgTU1JTyB0byBvbmx5IGdldCBtYXBwZWQgdW5j YWNoYWJsZSAoVUMsIFVDLSwgb3IgV0MpLgoKVGhpcyBhbHNvIGltcGxpZXMg dGhhdCBpbiB0aGUgUFYgY2FzZSB3ZSBtdXN0bid0IHVzZSB0aGUgTDEgUFRF IHVwZGF0ZQpmYXN0IHBhdGggd2hlbiBjYWNoYWJpbGl0eSBmbGFncyBnZXQg YWx0ZXJlZC4KClNpbmNlIGluIHRoZSBIVk0gY2FzZSBhdCBsZWFzdCBmb3Ig bm93IHdlIHdhbnQgdG8gY29udGludWUgaG9ub3JpbmcKcGlubmVkIGNhY2hh YmlsaXR5IGF0dHJpYnV0ZXMgZm9yIHBhZ2VzIG5vdCBtYXBwZWQgYnkgdGhl IGh5cGVydmlzb3IsCnNwZWNpYWwgY2FzZSBoYW5kbGluZyBvZiByL28gTU1J TyBwYWdlcyAoZm9yY2luZyBVQykgZ2V0cyBhZGRlZCB0aGVyZS4KQXJndWFi bHkgdGhlIGNvdW50ZXJwYXJ0IGNoYW5nZSB0byBwMm0tcHQuYyBtYXkgbm90 IGJlIG5lY2Vzc2FyeSwgc2luY2UKVUMtICh3aGljaCBhbHJlYWR5IGdldHMg ZW5mb3JjZWQgdGhlcmUpIGlzIHByb2JhYmx5IHN0cmljdCBlbm91Z2guCgpO b3RlIHRoYXQgdGhlIHNoYWRvdyBjb2RlIGNoYW5nZXMgaW5jbHVkZSBmaXhp bmcgdGhlIHdyaXRlIHByb3RlY3Rpb24Kb2Ygci9vIE1NSU8gcmFuZ2VzOiBz aGFkb3dfbDFlX3JlbW92ZV9mbGFncygpIGFuZCBpdHMgc2libGluZ3MsIG90 aGVyCnRoYW4gbDFlX3JlbW92ZV9mbGFncygpIGFuZCBhbGlrZSwgcmV0dXJu IHRoZSBuZXcgUFRFIChhbmQgaGVuY2UKaWdub3JpbmcgdGhlaXIgcmV0dXJu IHZhbHVlcyBtYWtlcyB0aGVtIG5vLW9wcykuCgpUaGlzIGlzIENWRS0yMDE2 LTIyNzAgLyBYU0EtMTU0LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgpBY2tlZC1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCi0tLSBhL2RvY3MvbWlzYy94 ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duCkBAIC02OTcsNiArNjk3LDE1IEBAIGxp bWl0IGlzIGlnbm9yZWQgYnkgWGVuLgogCiBTcGVjaWZ5IGlmIHRoZSBNTUNv bmZpZyBzcGFjZSBzaG91bGQgYmUgZW5hYmxlZC4KIAorIyMjIG1taW8tcmVs YXgKKz4gYD0gPGJvb2xlYW4+IHwgYWxsYAorCis+IERlZmF1bHQ6IGBmYWxz ZWAKKworQnkgZGVmYXVsdCwgZG9tYWlucyBtYXkgbm90IGNyZWF0ZSBjYWNo ZWQgbWFwcGluZ3MgdG8gTU1JTyByZWdpb25zLgorVGhpcyBvcHRpb24gcmVs YXhlcyB0aGUgY2hlY2sgZm9yIERvbWFpbiAwIChvciB3aGVuIHVzaW5nIGBh bGxgLCBhbGwgUFYKK2RvbWFpbnMpLCB0byBwZXJtaXQgdGhlIHVzZSBvZiBj YWNoZWFibGUgTU1JTyBtYXBwaW5ncy4KKwogIyMjIG1zaQogPiBgPSA8Ym9v bGVhbj5gCiAKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9tdHJyLmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS9tdHJyLmMKQEAgLTY5Myw4ICs2OTMsMTIgQEAg dWludDhfdCBlcHRlX2dldF9lbnRyeV9lbXQoc3RydWN0IGRvbWFpbgogICAg IGlmICggdi0+ZG9tYWluICE9IGQgKQogICAgICAgICB2ID0gZC0+dmNwdSA/ IGQtPnZjcHVbMF0gOiBOVUxMOwogCi0gICAgaWYgKCAhbWZuX3ZhbGlkKG1m bl94KG1mbikpICkKKyAgICBpZiAoICFtZm5fdmFsaWQobWZuX3gobWZuKSkg fHwKKyAgICAgICAgIHJhbmdlc2V0X2NvbnRhaW5zX3NpbmdsZXRvbihtbWlv X3JvX3JhbmdlcywgbWZuX3gobWZuKSkgKQorICAgIHsKKyAgICAgICAgKmlw YXQgPSAxOwogICAgICAgICByZXR1cm4gTVRSUl9UWVBFX1VOQ0FDSEFCTEU7 CisgICAgfQogCiAgICAgaWYgKCBodm1fZ2V0X21lbV9waW5uZWRfY2FjaGVh dHRyKGQsIGdmbiwgJnR5cGUpICkKICAgICAgICAgcmV0dXJuIHR5cGU7Ci0t LSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYworKysgYi94ZW4vYXJjaC94 ODYvbW0vcDJtLXB0LmMKQEAgLTkzLDYgKzkzLDggQEAgc3RhdGljIHVuc2ln bmVkIGxvbmcgcDJtX3R5cGVfdG9fZmxhZ3MocAogICAgIGNhc2UgcDJtX21t aW9fZGlyZWN0OgogICAgICAgICBpZiAoICFyYW5nZXNldF9jb250YWluc19z aW5nbGV0b24obW1pb19yb19yYW5nZXMsIG1mbl94KG1mbikpICkKICAgICAg ICAgICAgIGZsYWdzIHw9IF9QQUdFX1JXOworICAgICAgICBlbHNlCisgICAg ICAgICAgICBmbGFncyB8PSBfUEFHRV9QV1Q7CiAgICAgICAgIHJldHVybiBm bGFncyB8IFAyTV9CQVNFX0ZMQUdTIHwgX1BBR0VfUENEOwogICAgIH0KIH0K LS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCisrKyBiL3hl bi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwpAQCAtNTIxLDYgKzUyMSw3 IEBAIF9zaF9wcm9wYWdhdGUoc3RydWN0IHZjcHUgKnYsCiAgICAgZ2ZuX3Qg dGFyZ2V0X2dmbiA9IGd1ZXN0X2wxZV9nZXRfZ2ZuKGd1ZXN0X2VudHJ5KTsK ICAgICB1MzIgcGFzc190aHJ1X2ZsYWdzOwogICAgIHUzMiBnZmxhZ3MsIHNm bGFnczsKKyAgICBib29sX3QgbW1pb19tZm47CiAKICAgICAvKiBXZSBkb24n dCBzaGFkb3cgUEFFIGwzcyAqLwogICAgIEFTU0VSVChHVUVTVF9QQUdJTkdf TEVWRUxTID4gMyB8fCBsZXZlbCAhPSAzKTsKQEAgLTU2MSw3ICs1NjIsMTAg QEAgX3NoX3Byb3BhZ2F0ZShzdHJ1Y3QgdmNwdSAqdiwKICAgICAvLyBtZm4g bWVhbnMgdGhhdCB3ZSBjYW4gbm90IHVzZWZ1bGx5IHNoYWRvdyBhbnl0aGlu ZywgYW5kIHNvIHdlCiAgICAgLy8gcmV0dXJuIGVhcmx5LgogICAgIC8vCi0g ICAgaWYgKCAhbWZuX3ZhbGlkKHRhcmdldF9tZm4pCisgICAgbW1pb19tZm4g PSAhbWZuX3ZhbGlkKHRhcmdldF9tZm4pCisgICAgICAgICAgICAgICB8fCAo bGV2ZWwgPT0gMQorICAgICAgICAgICAgICAgICAgICYmIHBhZ2VfZ2V0X293 bmVyKG1mbl90b19wYWdlKHRhcmdldF9tZm4pKSA9PSBkb21faW8pOworICAg IGlmICggbW1pb19tZm4KICAgICAgICAgICYmICEobGV2ZWwgPT0gMSAmJiAo IXNoYWRvd19tb2RlX3JlZmNvdW50cyhkKSAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfHwgcDJtdCA9PSBwMm1fbW1pb19kaXJlY3QpKSApCiAg ICAgewpAQCAtNTc5LDcgKzU4Myw3IEBAIF9zaF9wcm9wYWdhdGUoc3RydWN0 IHZjcHUgKnYsCiAgICAgICAgICAgICAgICAgICAgICAgIF9QQUdFX1JXIHwg X1BBR0VfUFJFU0VOVCk7CiAgICAgaWYgKCBndWVzdF9zdXBwb3J0c19ueCh2 KSApCiAgICAgICAgIHBhc3NfdGhydV9mbGFncyB8PSBfUEFHRV9OWF9CSVQ7 Ci0gICAgaWYgKCAhc2hhZG93X21vZGVfcmVmY291bnRzKGQpICYmICFtZm5f dmFsaWQodGFyZ2V0X21mbikgKQorICAgIGlmICggbGV2ZWwgPT0gMSAmJiAh c2hhZG93X21vZGVfcmVmY291bnRzKGQpICYmIG1taW9fbWZuICkKICAgICAg ICAgcGFzc190aHJ1X2ZsYWdzIHw9IF9QQUdFX1BBVCB8IF9QQUdFX1BDRCB8 IF9QQUdFX1BXVDsKICAgICBzZmxhZ3MgPSBnZmxhZ3MgJiBwYXNzX3RocnVf ZmxhZ3M7CiAKQEAgLTY3NiwxMCArNjgwLDE0IEBAIF9zaF9wcm9wYWdhdGUo c3RydWN0IHZjcHUgKnYsCiAgICAgfQogCiAgICAgLyogUmVhZC1vbmx5IG1l bW9yeSAqLwotICAgIGlmICggcDJtX2lzX3JlYWRvbmx5KHAybXQpIHx8Ci0g ICAgICAgICAocDJtdCA9PSBwMm1fbW1pb19kaXJlY3QgJiYKLSAgICAgICAg ICByYW5nZXNldF9jb250YWluc19zaW5nbGV0b24obW1pb19yb19yYW5nZXMs IG1mbl94KHRhcmdldF9tZm4pKSkgKQorICAgIGlmICggcDJtX2lzX3JlYWRv bmx5KHAybXQpICkKICAgICAgICAgc2ZsYWdzICY9IH5fUEFHRV9SVzsKKyAg ICBlbHNlIGlmICggcDJtdCA9PSBwMm1fbW1pb19kaXJlY3QgJiYKKyAgICAg ICAgICAgICAgcmFuZ2VzZXRfY29udGFpbnNfc2luZ2xldG9uKG1taW9fcm9f cmFuZ2VzLCBtZm5feCh0YXJnZXRfbWZuKSkgKQorICAgIHsKKyAgICAgICAg c2ZsYWdzICY9IH4oX1BBR0VfUlcgfCBfUEFHRV9QQVQpOworICAgICAgICBz ZmxhZ3MgfD0gX1BBR0VfUENEIHwgX1BBR0VfUFdUOworICAgIH0KICAgICAK ICAgICAvLyBwcm90ZWN0IGd1ZXN0IHBhZ2UgdGFibGVzCiAgICAgLy8KQEAg LTEyMDEsMjIgKzEyMDksMjggQEAgc3RhdGljIGludCBzaGFkb3dfc2V0X2wx ZShzdHJ1Y3QgdmNwdSAqdgogICAgICAgICAgJiYgIXNoX2wxZV9pc19tYWdp YyhuZXdfc2wxZSkgKSAKICAgICB7CiAgICAgICAgIC8qIEFib3V0IHRvIGlu c3RhbGwgYSBuZXcgcmVmZXJlbmNlICovICAgICAgICAKLSAgICAgICAgaWYg KCBzaGFkb3dfbW9kZV9yZWZjb3VudHMoZCkgKSB7CisgICAgICAgIGlmICgg c2hhZG93X21vZGVfcmVmY291bnRzKGQpICkKKyAgICAgICAgeworI2RlZmlu ZSBQQUdFX0ZMSVBQQUJMRSAoX1BBR0VfUlcgfCBfUEFHRV9QV1QgfCBfUEFH RV9QQ0QgfCBfUEFHRV9QQVQpCisgICAgICAgICAgICBpbnQgcmM7CisKICAg ICAgICAgICAgIFRSQUNFX1NIQURPV19QQVRIX0ZMQUcoVFJDRV9TRkxBR19T SEFET1dfTDFfR0VUX1JFRik7Ci0gICAgICAgICAgICBzd2l0Y2ggKCBzaGFk b3dfZ2V0X3BhZ2VfZnJvbV9sMWUobmV3X3NsMWUsIGQsIG5ld190eXBlKSAp CisgICAgICAgICAgICBzd2l0Y2ggKCByYyA9IHNoYWRvd19nZXRfcGFnZV9m cm9tX2wxZShuZXdfc2wxZSwgZCwgbmV3X3R5cGUpICkKICAgICAgICAgICAg IHsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgLyog RG9lc24ndCBsb29rIGxpa2UgYSBwYWdldGFibGUuICovCiAgICAgICAgICAg ICAgICAgZmxhZ3MgfD0gU0hBRE9XX1NFVF9FUlJPUjsKICAgICAgICAgICAg ICAgICBuZXdfc2wxZSA9IHNoYWRvd19sMWVfZW1wdHkoKTsKICAgICAgICAg ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAg ICAgICAgICBzaGFkb3dfbDFlX3JlbW92ZV9mbGFncyhuZXdfc2wxZSwgX1BB R0VfUlcpOworICAgICAgICAgICAgY2FzZSBQQUdFX0ZMSVBQQUJMRSAmIC1Q QUdFX0ZMSVBQQUJMRSAuLi4gUEFHRV9GTElQUEFCTEU6CisgICAgICAgICAg ICAgICAgQVNTRVJUKCEocmMgJiB+UEFHRV9GTElQUEFCTEUpKTsKKyAgICAg ICAgICAgICAgICBuZXdfc2wxZSA9IHNoYWRvd19sMWVfZmxpcF9mbGFncyhu ZXdfc2wxZSwgcmMpOwogICAgICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3Vn aCAqLwogICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgIHNo YWRvd192cmFtX2dldF9sMWUobmV3X3NsMWUsIHNsMWUsIHNsMW1mbiwgZCk7 CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisjdW5k ZWYgUEFHRV9GTElQUEFCTEUKICAgICAgICAgfQogICAgIH0gCiAKLS0tIGEv eGVuL2FyY2gveDg2L21tL3NoYWRvdy90eXBlcy5oCisrKyBiL3hlbi9hcmNo L3g4Ni9tbS9zaGFkb3cvdHlwZXMuaApAQCAtMTAwLDYgKzEwMCw5IEBAIHN0 YXRpYyBpbmxpbmUgdTMyIHNoYWRvd19sNGVfZ2V0X2ZsYWdzKHMKIHN0YXRp YyBpbmxpbmUgc2hhZG93X2wxZV90CiBzaGFkb3dfbDFlX3JlbW92ZV9mbGFn cyhzaGFkb3dfbDFlX3Qgc2wxZSwgdTMyIGZsYWdzKQogeyBsMWVfcmVtb3Zl X2ZsYWdzKHNsMWUsIGZsYWdzKTsgcmV0dXJuIHNsMWU7IH0KK3N0YXRpYyBp bmxpbmUgc2hhZG93X2wxZV90CitzaGFkb3dfbDFlX2ZsaXBfZmxhZ3Moc2hh ZG93X2wxZV90IHNsMWUsIHUzMiBmbGFncykKK3sgbDFlX2ZsaXBfZmxhZ3Mo c2wxZSwgZmxhZ3MpOyByZXR1cm4gc2wxZTsgfQogCiBzdGF0aWMgaW5saW5l IHNoYWRvd19sMWVfdCBzaGFkb3dfbDFlX2VtcHR5KHZvaWQpIAogeyByZXR1 cm4gbDFlX2VtcHR5KCk7IH0KLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysr IGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTE4OCw2ICsxODgsMTggQEAgc3Rh dGljIHVpbnQzMl90IGJhc2VfZGlzYWxsb3dfbWFzazsKICAgICAgIGlzX3B2 X2RvbWFpbihkKSkgPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgIEwxX0RJU0FMTE9XX01BU0sgOiAoTDFfRElTQUxM T1dfTUFTSyAmIH5QQUdFX0NBQ0hFX0FUVFJTKSkKIAorc3RhdGljIHM4IF9f cmVhZF9tb3N0bHkgb3B0X21taW9fcmVsYXg7CitzdGF0aWMgdm9pZCBfX2lu aXQgcGFyc2VfbW1pb19yZWxheChjb25zdCBjaGFyICpzKQoreworICAgIGlm ICggISpzICkKKyAgICAgICAgb3B0X21taW9fcmVsYXggPSAxOworICAgIGVs c2UKKyAgICAgICAgb3B0X21taW9fcmVsYXggPSBwYXJzZV9ib29sKHMpOwor ICAgIGlmICggb3B0X21taW9fcmVsYXggPCAwICYmIHN0cmNtcChzLCAiYWxs IikgKQorICAgICAgICBvcHRfbW1pb19yZWxheCA9IDA7Cit9CitjdXN0b21f cGFyYW0oIm1taW8tcmVsYXgiLCBwYXJzZV9tbWlvX3JlbGF4KTsKKwogc3Rh dGljIHZvaWQgX19pbml0IGluaXRfZnJhbWV0YWJsZV9jaHVuayh2b2lkICpz dGFydCwgdm9pZCAqZW5kKQogewogICAgIHVuc2lnbmVkIGxvbmcgcyA9ICh1 bnNpZ25lZCBsb25nKXN0YXJ0OwpAQCAtNzczLDYgKzc4NSw4IEBAIGdldF9w YWdlX2Zyb21fbDFlKAogICAgIGlmICggIW1mbl92YWxpZChtZm4pIHx8CiAg ICAgICAgICAocmVhbF9wZ19vd25lciA9IHBhZ2VfZ2V0X293bmVyX2FuZF9y ZWZlcmVuY2UocGFnZSkpID09IGRvbV9pbyApCiAgICAgeworICAgICAgICBp bnQgZmxpcCA9IDA7CisKICAgICAgICAgLyogT25seSBuZWVkZWQgdGhlIHJl ZmVyZW5jZSB0byBjb25maXJtIGRvbV9pbyBvd25lcnNoaXAuICovCiAgICAg ICAgIGlmICggbWZuX3ZhbGlkKG1mbikgKQogICAgICAgICAgICAgcHV0X3Bh Z2UocGFnZSk7CkBAIC04MDUsMTMgKzgxOSw0MSBAQCBnZXRfcGFnZV9mcm9t X2wxZSgKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9 CiAKLSAgICAgICAgaWYgKCAhKGwxZiAmIF9QQUdFX1JXKSB8fAotICAgICAg ICAgICAgICFyYW5nZXNldF9jb250YWluc19zaW5nbGV0b24obW1pb19yb19y YW5nZXMsIG1mbikgKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAg IGRwcmludGsoWEVOTE9HX0dfV0FSTklORywKLSAgICAgICAgICAgICAgICAi ZCVkOiBGb3JjaW5nIHJlYWQtb25seSBhY2Nlc3MgdG8gTUZOICVseFxuIiwK LSAgICAgICAgICAgICAgICBsMWVfb3duZXItPmRvbWFpbl9pZCwgbWZuKTsK LSAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGlmICggIXJhbmdlc2V0X2Nv bnRhaW5zX3NpbmdsZXRvbihtbWlvX3JvX3JhbmdlcywgbWZuKSApCisgICAg ICAgIHsKKyAgICAgICAgICAgIC8qIE1NSU8gcGFnZXMgbXVzdCBub3QgYmUg bWFwcGVkIGNhY2hhYmxlIHVubGVzcyByZXF1ZXN0ZWQgc28uICovCisgICAg ICAgICAgICBzd2l0Y2ggKCBvcHRfbW1pb19yZWxheCApCisgICAgICAgICAg ICB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgaWYg KCBpc19oYXJkd2FyZV9kb21haW4obDFlX293bmVyKSApCisgICAgICAgICAg ICBjYXNlIC0xOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAg ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgQVNTRVJUX1VO UkVBQ0hBQkxFKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg ICAgZWxzZSBpZiAoIGwxZiAmIF9QQUdFX1JXICkKKyAgICAgICAgeworICAg ICAgICAgICAgZHByaW50ayhYRU5MT0dfR19XQVJOSU5HLAorICAgICAgICAg ICAgICAgICAgICAiZCVkOiBGb3JjaW5nIHJlYWQtb25seSBhY2Nlc3MgdG8g TUZOICVseFxuIiwKKyAgICAgICAgICAgICAgICAgICAgbDFlX293bmVyLT5k b21haW5faWQsIG1mbik7CisgICAgICAgICAgICBmbGlwID0gX1BBR0VfUlc7 CisgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKCBsMWYgJiBQQUdFX0NB Q0hFX0FUVFJTICkKKyAgICAgICAgeworICAgICAgICBjYXNlIDA6IC8qIFdC ICovCisgICAgICAgICAgICBmbGlwIHw9IF9QQUdFX1BXVCB8IF9QQUdFX1BD RDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIF9QQUdFX1BX VDogLyogV1QgKi8KKyAgICAgICAgY2FzZSBfUEFHRV9QV1QgfCBfUEFHRV9Q QVQ6IC8qIFdQICovCisgICAgICAgICAgICBmbGlwIHw9IF9QQUdFX1BDRCB8 IChsMWYgJiBfUEFHRV9QQVQpOworICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgIH0KKworICAgICAgICByZXR1cm4gZmxpcDsKICAgICB9CiAKICAgICBp ZiAoIHVubGlrZWx5KCAocmVhbF9wZ19vd25lciAhPSBwZ19vd25lcikgJiYK QEAgLTEyMTAsOCArMTI1Miw5IEBAIHN0YXRpYyBpbnQgYWxsb2NfbDFfdGFi bGUoc3RydWN0IHBhZ2VfaW4KICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7 CiAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgYnJlYWs7 Ci0gICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgbDFlX3Jl bW92ZV9mbGFncyhwbDFlW2ldLCBfUEFHRV9SVyk7CisgICAgICAgICAgICBj YXNlIF9QQUdFX1JXIC4uLiBfUEFHRV9SVyB8IFBBR0VfQ0FDSEVfQVRUUlM6 CisgICAgICAgICAgICAgICAgQVNTRVJUKCEocmV0ICYgfihfUEFHRV9SVyB8 IFBBR0VfQ0FDSEVfQVRUUlMpKSk7CisgICAgICAgICAgICAgICAgbDFlX2Zs aXBfZmxhZ3MocGwxZVtpXSwgcmV0KTsKICAgICAgICAgICAgICAgICBicmVh azsKICAgICAgICAgICAgIH0KIApAQCAtMTcwNiw4ICsxNzQ5LDkgQEAgc3Rh dGljIGludCBtb2RfbDFfZW50cnkobDFfcGdlbnRyeV90ICpwbAogICAgICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KIAotICAgICAgICAv KiBGYXN0IHBhdGggZm9yIGlkZW50aWNhbCBtYXBwaW5nLCByL3cgYW5kIHBy ZXNlbmNlLiAqLwotICAgICAgICBpZiAoICFsMWVfaGFzX2NoYW5nZWQob2wx ZSwgbmwxZSwgX1BBR0VfUlcgfCBfUEFHRV9QUkVTRU5UKSApCisgICAgICAg IC8qIEZhc3QgcGF0aCBmb3IgaWRlbnRpY2FsIG1hcHBpbmcsIHIvdywgcHJl c2VuY2UsIGFuZCBjYWNoYWJpbGl0eS4gKi8KKyAgICAgICAgaWYgKCAhbDFl X2hhc19jaGFuZ2VkKG9sMWUsIG5sMWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQQUdFX0NBQ0hFX0FUVFJTIHwgX1BBR0VfUlcgfCBfUEFH RV9QUkVTRU5UKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGFkanVzdF9n dWVzdF9sMWUobmwxZSwgcHRfZG9tKTsKICAgICAgICAgICAgIGlmICggVVBE QVRFX0VOVFJZKGwxLCBwbDFlLCBvbDFlLCBubDFlLCBnbDFtZm4sIHB0X3Zj cHUsCkBAIC0xNzMwLDggKzE3NzQsOSBAQCBzdGF0aWMgaW50IG1vZF9sMV9l bnRyeShsMV9wZ2VudHJ5X3QgKnBsCiAgICAgICAgICAgICByZXR1cm4gcmM7 CiAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICBjYXNlIDE6Ci0gICAgICAgICAgICBsMWVfcmVtb3ZlX2ZsYWdzKG5sMWUs IF9QQUdFX1JXKTsKKyAgICAgICAgY2FzZSBfUEFHRV9SVyAuLi4gX1BBR0Vf UlcgfCBQQUdFX0NBQ0hFX0FUVFJTOgorICAgICAgICAgICAgQVNTRVJUKCEo cmMgJiB+KF9QQUdFX1JXIHwgUEFHRV9DQUNIRV9BVFRSUykpKTsKKyAgICAg ICAgICAgIGwxZV9mbGlwX2ZsYWdzKG5sMWUsIHJjKTsKICAgICAgICAgICAg IHJjID0gMDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC00 OTE5LDYgKzQ5NjQsNyBAQCBzdGF0aWMgaW50IHB0d3JfZW11bGF0ZWRfdXBk YXRlKAogICAgIGwxX3BnZW50cnlfdCBwdGUsIG9sMWUsIG5sMWUsICpwbDFl OwogICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKICAgICBzdHJ1Y3Qg ZG9tYWluICpkID0gdi0+ZG9tYWluOworICAgIGludCByZXQ7CiAKICAgICAv KiBPbmx5IGFsbG93IG5hdHVyYWxseS1hbGlnbmVkIHN0b3JlcyB3aXRoaW4g dGhlIG9yaWdpbmFsICVjcjIgcGFnZS4gKi8KICAgICBpZiAoIHVubGlrZWx5 KCgoYWRkcl5wdHdyX2N0eHQtPmNyMikgJiBQQUdFX01BU0spIHx8IChhZGRy ICYgKGJ5dGVzLTEpKSkgKQpAQCAtNDk2Niw3ICs1MDEyLDcgQEAgc3RhdGlj IGludCBwdHdyX2VtdWxhdGVkX3VwZGF0ZSgKIAogICAgIC8qIENoZWNrIHRo ZSBuZXcgUFRFLiAqLwogICAgIG5sMWUgPSBsMWVfZnJvbV9pbnRwdGUodmFs KTsKLSAgICBzd2l0Y2ggKCBnZXRfcGFnZV9mcm9tX2wxZShubDFlLCBkLCBk KSApCisgICAgc3dpdGNoICggcmV0ID0gZ2V0X3BhZ2VfZnJvbV9sMWUobmwx ZSwgZCwgZCkgKQogICAgIHsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAo IGlzX3B2XzMyYml0X2RvbWFpbihkKSAmJiAoYnl0ZXMgPT0gNCkgJiYgKHVu YWxpZ25lZF9hZGRyICYgNCkgJiYKQEAgLTQ5OTAsOCArNTAzNiw5IEBAIHN0 YXRpYyBpbnQgcHR3cl9lbXVsYXRlZF91cGRhdGUoCiAgICAgICAgIGJyZWFr OwogICAgIGNhc2UgMDoKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAxOgot ICAgICAgICBsMWVfcmVtb3ZlX2ZsYWdzKG5sMWUsIF9QQUdFX1JXKTsKKyAg ICBjYXNlIF9QQUdFX1JXIC4uLiBfUEFHRV9SVyB8IFBBR0VfQ0FDSEVfQVRU UlM6CisgICAgICAgIEFTU0VSVCghKHJldCAmIH4oX1BBR0VfUlcgfCBQQUdF X0NBQ0hFX0FUVFJTKSkpOworICAgICAgICBsMWVfZmxpcF9mbGFncyhubDFl LCByZXQpOwogICAgICAgICBicmVhazsKICAgICB9CiAKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9wYWdlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9wYWdlLmgKQEAgLTE1Nyw2ICsxNTcsOSBAQCBzdGF0aWMgaW5saW5lIGw0 X3BnZW50cnlfdCBsNGVfZnJvbV9wYWRkCiAjZGVmaW5lIGwzZV9yZW1vdmVf ZmxhZ3MoeCwgZmxhZ3MpICgoeCkubDMgJj0gfnB1dF9wdGVfZmxhZ3MoZmxh Z3MpKQogI2RlZmluZSBsNGVfcmVtb3ZlX2ZsYWdzKHgsIGZsYWdzKSAoKHgp Lmw0ICY9IH5wdXRfcHRlX2ZsYWdzKGZsYWdzKSkKIAorLyogRmxpcCBmbGFn cyBpbiBhbiBleGlzdGluZyBMMSBQVEUuICovCisjZGVmaW5lIGwxZV9mbGlw X2ZsYWdzKHgsIGZsYWdzKSAgICAoKHgpLmwxIF49IHB1dF9wdGVfZmxhZ3Mo ZmxhZ3MpKQorCiAvKiBDaGVjayBpZiBhIHB0ZSdzIHBhZ2UgbWFwcGluZyBv ciBzaWduaWZpY2FudCBhY2Nlc3MgZmxhZ3MgaGF2ZSBjaGFuZ2VkLiAqLwog I2RlZmluZSBsMWVfaGFzX2NoYW5nZWQoeCx5LGZsYWdzKSBcCiAgICAgKCAh ISgoKHgpLmwxIF4gKHkpLmwxKSAmICgoUEFERFJfTUFTSyZQQUdFX01BU0sp fHB1dF9wdGVfZmxhZ3MoZmxhZ3MpKSkgKQo= --=separator Content-Type: application/octet-stream; name="xsa154-4.5.patch" Content-Disposition: attachment; filename="xsa154-4.5.patch" Content-Transfer-Encoding: base64 eDg2OiBlbmZvcmNlIGNvbnNpc3RlbnQgY2FjaGFiaWxpdHkgb2YgTU1JTyBt YXBwaW5ncwoKV2UndmUgYmVlbiB0b2xkIGJ5IEludGVsIHRoYXQgaW5jb25z aXN0ZW50IGNhY2hhYmlsaXR5IGJldHdlZW4KbXVsdGlwbGUgbWFwcGluZ3Mg b2YgdGhlIHNhbWUgcGFnZSBjYW4gYWZmZWN0IHN5c3RlbSBzdGFiaWxpdHkg b25seQp3aGVuIHRoZSBhZmZlY3RlZCBwYWdlIGlzIGFuIE1NSU8gb25lLiBT aW5jZSB0aGUgc3RhbGUgZGF0YSBpc3N1ZSBpcwpvZiBubyByZWxldmFuY2Ug dG8gdGhlIGh5cGVydmlzb3IgKHNpbmNlIGFsbCBndWVzdCBtZW1vcnkgYWNj ZXNzZXMgZ28KdGhyb3VnaCBwcm9wZXIgYWNjZXNzb3JzIGFuZCB2YWxpZGF0 aW9uKSwgaGFuZGxpbmcgb2YgUkFNIHBhZ2VzCnJlbWFpbnMgdW5jaGFuZ2Vk IGhlcmUuIEFueSBNTUlPIG1hcHBlZCBieSBkb21haW5zIGhvd2V2ZXIgbmVl ZHMgdG8gYmUKZG9uZSBjb25zaXN0ZW50bHkgKGFsbCBjYWNoYWJsZSBtYXBw aW5ncyBvciBhbGwgdW5jYWNoYWJsZSBvbmVzKSwgaW4Kb3JkZXIgdG8gYXZv aWQgTWFjaGluZSBDaGVjayBleGNlcHRpb25zLiBTaW5jZSBjb252ZXJ0aW5n IGV4aXN0aW5nCmNhY2hhYmxlIG1hcHBpbmdzIHRvIHVuY2FjaGFibGUgKGF0 IHRoZSB0aW1lIGFuIHVuY2FjaGFibGUgbWFwcGluZwpnZXRzIGVzdGFibGlz aGVkKSB3b3VsZCBpbiB0aGUgUFYgY2FzZSByZXF1aXJlIHRyYWNraW5nIGFs bCBtYXBwaW5ncywKYWxsb3cgTU1JTyB0byBvbmx5IGdldCBtYXBwZWQgdW5j YWNoYWJsZSAoVUMsIFVDLSwgb3IgV0MpLgoKVGhpcyBhbHNvIGltcGxpZXMg dGhhdCBpbiB0aGUgUFYgY2FzZSB3ZSBtdXN0bid0IHVzZSB0aGUgTDEgUFRF IHVwZGF0ZQpmYXN0IHBhdGggd2hlbiBjYWNoYWJpbGl0eSBmbGFncyBnZXQg YWx0ZXJlZC4KClNpbmNlIGluIHRoZSBIVk0gY2FzZSBhdCBsZWFzdCBmb3Ig bm93IHdlIHdhbnQgdG8gY29udGludWUgaG9ub3JpbmcKcGlubmVkIGNhY2hh YmlsaXR5IGF0dHJpYnV0ZXMgZm9yIHBhZ2VzIG5vdCBtYXBwZWQgYnkgdGhl IGh5cGVydmlzb3IsCnNwZWNpYWwgY2FzZSBoYW5kbGluZyBvZiByL28gTU1J TyBwYWdlcyAoZm9yY2luZyBVQykgZ2V0cyBhZGRlZCB0aGVyZS4KQXJndWFi bHkgdGhlIGNvdW50ZXJwYXJ0IGNoYW5nZSB0byBwMm0tcHQuYyBtYXkgbm90 IGJlIG5lY2Vzc2FyeSwgc2luY2UKVUMtICh3aGljaCBhbHJlYWR5IGdldHMg ZW5mb3JjZWQgdGhlcmUpIGlzIHByb2JhYmx5IHN0cmljdCBlbm91Z2guCgpO b3RlIHRoYXQgdGhlIHNoYWRvdyBjb2RlIGNoYW5nZXMgaW5jbHVkZSBmaXhp bmcgdGhlIHdyaXRlIHByb3RlY3Rpb24Kb2Ygci9vIE1NSU8gcmFuZ2VzOiBz aGFkb3dfbDFlX3JlbW92ZV9mbGFncygpIGFuZCBpdHMgc2libGluZ3MsIG90 aGVyCnRoYW4gbDFlX3JlbW92ZV9mbGFncygpIGFuZCBhbGlrZSwgcmV0dXJu IHRoZSBuZXcgUFRFIChhbmQgaGVuY2UKaWdub3JpbmcgdGhlaXIgcmV0dXJu IHZhbHVlcyBtYWtlcyB0aGVtIG5vLW9wcykuCgpUaGlzIGlzIENWRS0yMDE2 LTIyNzAgLyBYU0EtMTU0LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgpBY2tlZC1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCi0tLSBhL2RvY3MvbWlzYy94 ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duCkBAIC0xMDAwLDYgKzEwMDAsMTUgQEAg bGltaXQgaXMgaWdub3JlZCBieSBYZW4uCiAKIFNwZWNpZnkgaWYgdGhlIE1N Q29uZmlnIHNwYWNlIHNob3VsZCBiZSBlbmFibGVkLgogCisjIyMgbW1pby1y ZWxheAorPiBgPSA8Ym9vbGVhbj4gfCBhbGxgCisKKz4gRGVmYXVsdDogYGZh bHNlYAorCitCeSBkZWZhdWx0LCBkb21haW5zIG1heSBub3QgY3JlYXRlIGNh Y2hlZCBtYXBwaW5ncyB0byBNTUlPIHJlZ2lvbnMuCitUaGlzIG9wdGlvbiBy ZWxheGVzIHRoZSBjaGVjayBmb3IgRG9tYWluIDAgKG9yIHdoZW4gdXNpbmcg YGFsbGAsIGFsbCBQVgorZG9tYWlucyksIHRvIHBlcm1pdCB0aGUgdXNlIG9m IGNhY2hlYWJsZSBNTUlPIG1hcHBpbmdzLgorCiAjIyMgbXNpCiA+IGA9IDxi b29sZWFuPmAKIAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL210cnIuYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL210cnIuYwpAQCAtODEwLDggKzgxMCwxNyBA QCBpbnQgZXB0ZV9nZXRfZW50cnlfZW10KHN0cnVjdCBkb21haW4gKmQsCiAg ICAgaWYgKCB2LT5kb21haW4gIT0gZCApCiAgICAgICAgIHYgPSBkLT52Y3B1 ID8gZC0+dmNwdVswXSA6IE5VTEw7CiAKLSAgICBpZiAoICFtZm5fdmFsaWQo bWZuX3gobWZuKSkgKQorICAgIGlmICggIW1mbl92YWxpZChtZm5feChtZm4p KSB8fAorICAgICAgICAgcmFuZ2VzZXRfY29udGFpbnNfcmFuZ2UobW1pb19y b19yYW5nZXMsIG1mbl94KG1mbiksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtZm5feChtZm4pICsgKDFVTCA8PCBvcmRlcikgLSAxKSAp CisgICAgeworICAgICAgICAqaXBhdCA9IDE7CiAgICAgICAgIHJldHVybiBN VFJSX1RZUEVfVU5DQUNIQUJMRTsKKyAgICB9CisKKyAgICBpZiAoIHJhbmdl c2V0X292ZXJsYXBzX3JhbmdlKG1taW9fcm9fcmFuZ2VzLCBtZm5feChtZm4p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3gobWZu KSArICgxVUwgPDwgb3JkZXIpIC0gMSkgKQorICAgICAgICByZXR1cm4gLTE7 CiAKICAgICBzd2l0Y2ggKCBodm1fZ2V0X21lbV9waW5uZWRfY2FjaGVhdHRy KGQsIGdmbiwgb3JkZXIsICZ0eXBlKSApCiAgICAgewotLS0gYS94ZW4vYXJj aC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1w dC5jCkBAIC0xMDcsNiArMTA3LDggQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcg cDJtX3R5cGVfdG9fZmxhZ3MocAogICAgIGNhc2UgcDJtX21taW9fZGlyZWN0 OgogICAgICAgICBpZiAoICFyYW5nZXNldF9jb250YWluc19zaW5nbGV0b24o bW1pb19yb19yYW5nZXMsIG1mbl94KG1mbikpICkKICAgICAgICAgICAgIGZs YWdzIHw9IF9QQUdFX1JXOworICAgICAgICBlbHNlCisgICAgICAgICAgICBm bGFncyB8PSBfUEFHRV9QV1Q7CiAgICAgICAgIHJldHVybiBmbGFncyB8IFAy TV9CQVNFX0ZMQUdTIHwgX1BBR0VfUENEOwogICAgIH0KIH0KLS0tIGEveGVu L2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9tbS9zaGFkb3cvbXVsdGkuYwpAQCAtNTIxLDYgKzUyMSw3IEBAIF9zaF9w cm9wYWdhdGUoc3RydWN0IHZjcHUgKnYsCiAgICAgZ2ZuX3QgdGFyZ2V0X2dm biA9IGd1ZXN0X2wxZV9nZXRfZ2ZuKGd1ZXN0X2VudHJ5KTsKICAgICB1MzIg cGFzc190aHJ1X2ZsYWdzOwogICAgIHUzMiBnZmxhZ3MsIHNmbGFnczsKKyAg ICBib29sX3QgbW1pb19tZm47CiAKICAgICAvKiBXZSBkb24ndCBzaGFkb3cg UEFFIGwzcyAqLwogICAgIEFTU0VSVChHVUVTVF9QQUdJTkdfTEVWRUxTID4g MyB8fCBsZXZlbCAhPSAzKTsKQEAgLTU2MSw3ICs1NjIsMTAgQEAgX3NoX3By b3BhZ2F0ZShzdHJ1Y3QgdmNwdSAqdiwKICAgICAvLyBtZm4gbWVhbnMgdGhh dCB3ZSBjYW4gbm90IHVzZWZ1bGx5IHNoYWRvdyBhbnl0aGluZywgYW5kIHNv IHdlCiAgICAgLy8gcmV0dXJuIGVhcmx5LgogICAgIC8vCi0gICAgaWYgKCAh bWZuX3ZhbGlkKHRhcmdldF9tZm4pCisgICAgbW1pb19tZm4gPSAhbWZuX3Zh bGlkKHRhcmdldF9tZm4pCisgICAgICAgICAgICAgICB8fCAobGV2ZWwgPT0g MQorICAgICAgICAgICAgICAgICAgICYmIHBhZ2VfZ2V0X293bmVyKG1mbl90 b19wYWdlKHRhcmdldF9tZm4pKSA9PSBkb21faW8pOworICAgIGlmICggbW1p b19tZm4KICAgICAgICAgICYmICEobGV2ZWwgPT0gMSAmJiAoIXNoYWRvd19t b2RlX3JlZmNvdW50cyhkKSAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfHwgcDJtdCA9PSBwMm1fbW1pb19kaXJlY3QpKSApCiAgICAgewpAQCAt NTc5LDcgKzU4Myw3IEBAIF9zaF9wcm9wYWdhdGUoc3RydWN0IHZjcHUgKnYs CiAgICAgICAgICAgICAgICAgICAgICAgIF9QQUdFX1JXIHwgX1BBR0VfUFJF U0VOVCk7CiAgICAgaWYgKCBndWVzdF9zdXBwb3J0c19ueCh2KSApCiAgICAg ICAgIHBhc3NfdGhydV9mbGFncyB8PSBfUEFHRV9OWF9CSVQ7Ci0gICAgaWYg KCAhc2hhZG93X21vZGVfcmVmY291bnRzKGQpICYmICFtZm5fdmFsaWQodGFy Z2V0X21mbikgKQorICAgIGlmICggbGV2ZWwgPT0gMSAmJiAhc2hhZG93X21v ZGVfcmVmY291bnRzKGQpICYmIG1taW9fbWZuICkKICAgICAgICAgcGFzc190 aHJ1X2ZsYWdzIHw9IF9QQUdFX1BBVCB8IF9QQUdFX1BDRCB8IF9QQUdFX1BX VDsKICAgICBzZmxhZ3MgPSBnZmxhZ3MgJiBwYXNzX3RocnVfZmxhZ3M7CiAK QEAgLTY3OCwxMCArNjgyLDE0IEBAIF9zaF9wcm9wYWdhdGUoc3RydWN0IHZj cHUgKnYsCiAgICAgfQogCiAgICAgLyogUmVhZC1vbmx5IG1lbW9yeSAqLwot ICAgIGlmICggcDJtX2lzX3JlYWRvbmx5KHAybXQpIHx8Ci0gICAgICAgICAo cDJtdCA9PSBwMm1fbW1pb19kaXJlY3QgJiYKLSAgICAgICAgICByYW5nZXNl dF9jb250YWluc19zaW5nbGV0b24obW1pb19yb19yYW5nZXMsIG1mbl94KHRh cmdldF9tZm4pKSkgKQorICAgIGlmICggcDJtX2lzX3JlYWRvbmx5KHAybXQp ICkKICAgICAgICAgc2ZsYWdzICY9IH5fUEFHRV9SVzsKKyAgICBlbHNlIGlm ICggcDJtdCA9PSBwMm1fbW1pb19kaXJlY3QgJiYKKyAgICAgICAgICAgICAg cmFuZ2VzZXRfY29udGFpbnNfc2luZ2xldG9uKG1taW9fcm9fcmFuZ2VzLCBt Zm5feCh0YXJnZXRfbWZuKSkgKQorICAgIHsKKyAgICAgICAgc2ZsYWdzICY9 IH4oX1BBR0VfUlcgfCBfUEFHRV9QQVQpOworICAgICAgICBzZmxhZ3MgfD0g X1BBR0VfUENEIHwgX1BBR0VfUFdUOworICAgIH0KICAgICAKICAgICAvLyBw cm90ZWN0IGd1ZXN0IHBhZ2UgdGFibGVzCiAgICAgLy8KQEAgLTExODgsMjIg KzExOTYsMjggQEAgc3RhdGljIGludCBzaGFkb3dfc2V0X2wxZShzdHJ1Y3Qg dmNwdSAqdgogICAgICAgICAgJiYgIXNoX2wxZV9pc19tYWdpYyhuZXdfc2wx ZSkgKSAKICAgICB7CiAgICAgICAgIC8qIEFib3V0IHRvIGluc3RhbGwgYSBu ZXcgcmVmZXJlbmNlICovICAgICAgICAKLSAgICAgICAgaWYgKCBzaGFkb3df bW9kZV9yZWZjb3VudHMoZCkgKSB7CisgICAgICAgIGlmICggc2hhZG93X21v ZGVfcmVmY291bnRzKGQpICkKKyAgICAgICAgeworI2RlZmluZSBQQUdFX0ZM SVBQQUJMRSAoX1BBR0VfUlcgfCBfUEFHRV9QV1QgfCBfUEFHRV9QQ0QgfCBf UEFHRV9QQVQpCisgICAgICAgICAgICBpbnQgcmM7CisKICAgICAgICAgICAg IFRSQUNFX1NIQURPV19QQVRIX0ZMQUcoVFJDRV9TRkxBR19TSEFET1dfTDFf R0VUX1JFRik7Ci0gICAgICAgICAgICBzd2l0Y2ggKCBzaGFkb3dfZ2V0X3Bh Z2VfZnJvbV9sMWUobmV3X3NsMWUsIGQsIG5ld190eXBlKSApCisgICAgICAg ICAgICBzd2l0Y2ggKCByYyA9IHNoYWRvd19nZXRfcGFnZV9mcm9tX2wxZShu ZXdfc2wxZSwgZCwgbmV3X3R5cGUpICkKICAgICAgICAgICAgIHsKICAgICAg ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgLyogRG9lc24ndCBs b29rIGxpa2UgYSBwYWdldGFibGUuICovCiAgICAgICAgICAgICAgICAgZmxh Z3MgfD0gU0hBRE9XX1NFVF9FUlJPUjsKICAgICAgICAgICAgICAgICBuZXdf c2wxZSA9IHNoYWRvd19sMWVfZW1wdHkoKTsKICAgICAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICBz aGFkb3dfbDFlX3JlbW92ZV9mbGFncyhuZXdfc2wxZSwgX1BBR0VfUlcpOwor ICAgICAgICAgICAgY2FzZSBQQUdFX0ZMSVBQQUJMRSAmIC1QQUdFX0ZMSVBQ QUJMRSAuLi4gUEFHRV9GTElQUEFCTEU6CisgICAgICAgICAgICAgICAgQVNT RVJUKCEocmMgJiB+UEFHRV9GTElQUEFCTEUpKTsKKyAgICAgICAgICAgICAg ICBuZXdfc2wxZSA9IHNoYWRvd19sMWVfZmxpcF9mbGFncyhuZXdfc2wxZSwg cmMpOwogICAgICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAg ICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgIHNoYWRvd192cmFt X2dldF9sMWUobmV3X3NsMWUsIHNsMWUsIHNsMW1mbiwgZCk7CiAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisjdW5kZWYgUEFHRV9G TElQUEFCTEUKICAgICAgICAgfQogICAgIH0gCiAKLS0tIGEveGVuL2FyY2gv eDg2L21tL3NoYWRvdy90eXBlcy5oCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9z aGFkb3cvdHlwZXMuaApAQCAtMTAwLDYgKzEwMCw5IEBAIHN0YXRpYyBpbmxp bmUgdTMyIHNoYWRvd19sNGVfZ2V0X2ZsYWdzKHMKIHN0YXRpYyBpbmxpbmUg c2hhZG93X2wxZV90CiBzaGFkb3dfbDFlX3JlbW92ZV9mbGFncyhzaGFkb3df bDFlX3Qgc2wxZSwgdTMyIGZsYWdzKQogeyBsMWVfcmVtb3ZlX2ZsYWdzKHNs MWUsIGZsYWdzKTsgcmV0dXJuIHNsMWU7IH0KK3N0YXRpYyBpbmxpbmUgc2hh ZG93X2wxZV90CitzaGFkb3dfbDFlX2ZsaXBfZmxhZ3Moc2hhZG93X2wxZV90 IHNsMWUsIHUzMiBmbGFncykKK3sgbDFlX2ZsaXBfZmxhZ3Moc2wxZSwgZmxh Z3MpOyByZXR1cm4gc2wxZTsgfQogCiBzdGF0aWMgaW5saW5lIHNoYWRvd19s MWVfdCBzaGFkb3dfbDFlX2VtcHR5KHZvaWQpIAogeyByZXR1cm4gbDFlX2Vt cHR5KCk7IH0KLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysrIGIveGVuL2Fy Y2gveDg2L21tLmMKQEAgLTE4MSw2ICsxODEsMTggQEAgc3RhdGljIHVpbnQz Ml90IGJhc2VfZGlzYWxsb3dfbWFzazsKICAgICAgIGlzX3B2X2RvbWFpbihk KSkgPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgIEwxX0RJU0FMTE9XX01BU0sgOiAoTDFfRElTQUxMT1dfTUFTSyAm IH5QQUdFX0NBQ0hFX0FUVFJTKSkKIAorc3RhdGljIHM4IF9fcmVhZF9tb3N0 bHkgb3B0X21taW9fcmVsYXg7CitzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2Vf bW1pb19yZWxheChjb25zdCBjaGFyICpzKQoreworICAgIGlmICggISpzICkK KyAgICAgICAgb3B0X21taW9fcmVsYXggPSAxOworICAgIGVsc2UKKyAgICAg ICAgb3B0X21taW9fcmVsYXggPSBwYXJzZV9ib29sKHMpOworICAgIGlmICgg b3B0X21taW9fcmVsYXggPCAwICYmIHN0cmNtcChzLCAiYWxsIikgKQorICAg ICAgICBvcHRfbW1pb19yZWxheCA9IDA7Cit9CitjdXN0b21fcGFyYW0oIm1t aW8tcmVsYXgiLCBwYXJzZV9tbWlvX3JlbGF4KTsKKwogc3RhdGljIHZvaWQg X19pbml0IGluaXRfZnJhbWV0YWJsZV9jaHVuayh2b2lkICpzdGFydCwgdm9p ZCAqZW5kKQogewogICAgIHVuc2lnbmVkIGxvbmcgcyA9ICh1bnNpZ25lZCBs b25nKXN0YXJ0OwpAQCAtNzY2LDYgKzc3OCw4IEBAIGdldF9wYWdlX2Zyb21f bDFlKAogICAgIGlmICggIW1mbl92YWxpZChtZm4pIHx8CiAgICAgICAgICAo cmVhbF9wZ19vd25lciA9IHBhZ2VfZ2V0X293bmVyX2FuZF9yZWZlcmVuY2Uo cGFnZSkpID09IGRvbV9pbyApCiAgICAgeworICAgICAgICBpbnQgZmxpcCA9 IDA7CisKICAgICAgICAgLyogT25seSBuZWVkZWQgdGhlIHJlZmVyZW5jZSB0 byBjb25maXJtIGRvbV9pbyBvd25lcnNoaXAuICovCiAgICAgICAgIGlmICgg bWZuX3ZhbGlkKG1mbikgKQogICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7 CkBAIC03OTgsMTMgKzgxMiw0MSBAQCBnZXRfcGFnZV9mcm9tX2wxZSgKICAg ICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9CiAKLSAgICAg ICAgaWYgKCAhKGwxZiAmIF9QQUdFX1JXKSB8fAotICAgICAgICAgICAgICFy YW5nZXNldF9jb250YWluc19zaW5nbGV0b24obW1pb19yb19yYW5nZXMsIG1m bikgKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIGRwcmludGso WEVOTE9HX0dfV0FSTklORywKLSAgICAgICAgICAgICAgICAiZCVkOiBGb3Jj aW5nIHJlYWQtb25seSBhY2Nlc3MgdG8gTUZOICVseFxuIiwKLSAgICAgICAg ICAgICAgICBsMWVfb3duZXItPmRvbWFpbl9pZCwgbWZuKTsKLSAgICAgICAg cmV0dXJuIDE7CisgICAgICAgIGlmICggIXJhbmdlc2V0X2NvbnRhaW5zX3Np bmdsZXRvbihtbWlvX3JvX3JhbmdlcywgbWZuKSApCisgICAgICAgIHsKKyAg ICAgICAgICAgIC8qIE1NSU8gcGFnZXMgbXVzdCBub3QgYmUgbWFwcGVkIGNh Y2hhYmxlIHVubGVzcyByZXF1ZXN0ZWQgc28uICovCisgICAgICAgICAgICBz d2l0Y2ggKCBvcHRfbW1pb19yZWxheCApCisgICAgICAgICAgICB7CisgICAg ICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgaWYgKCBpc19oYXJk d2FyZV9kb21haW4obDFlX293bmVyKSApCisgICAgICAgICAgICBjYXNlIC0x OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxF KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBp ZiAoIGwxZiAmIF9QQUdFX1JXICkKKyAgICAgICAgeworICAgICAgICAgICAg ZHByaW50ayhYRU5MT0dfR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAg ICAiZCVkOiBGb3JjaW5nIHJlYWQtb25seSBhY2Nlc3MgdG8gTUZOICVseFxu IiwKKyAgICAgICAgICAgICAgICAgICAgbDFlX293bmVyLT5kb21haW5faWQs IG1mbik7CisgICAgICAgICAgICBmbGlwID0gX1BBR0VfUlc7CisgICAgICAg IH0KKworICAgICAgICBzd2l0Y2ggKCBsMWYgJiBQQUdFX0NBQ0hFX0FUVFJT ICkKKyAgICAgICAgeworICAgICAgICBjYXNlIDA6IC8qIFdCICovCisgICAg ICAgICAgICBmbGlwIHw9IF9QQUdFX1BXVCB8IF9QQUdFX1BDRDsKKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIF9QQUdFX1BXVDogLyogV1Qg Ki8KKyAgICAgICAgY2FzZSBfUEFHRV9QV1QgfCBfUEFHRV9QQVQ6IC8qIFdQ ICovCisgICAgICAgICAgICBmbGlwIHw9IF9QQUdFX1BDRCB8IChsMWYgJiBf UEFHRV9QQVQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwor ICAgICAgICByZXR1cm4gZmxpcDsKICAgICB9CiAKICAgICBpZiAoIHVubGlr ZWx5KCAocmVhbF9wZ19vd25lciAhPSBwZ19vd25lcikgJiYKQEAgLTExOTQs OCArMTIzNiw5IEBAIHN0YXRpYyBpbnQgYWxsb2NfbDFfdGFibGUoc3RydWN0 IHBhZ2VfaW4KICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAg ICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg ICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgbDFlX3JlbW92ZV9mbGFn cyhwbDFlW2ldLCBfUEFHRV9SVyk7CisgICAgICAgICAgICBjYXNlIF9QQUdF X1JXIC4uLiBfUEFHRV9SVyB8IFBBR0VfQ0FDSEVfQVRUUlM6CisgICAgICAg ICAgICAgICAgQVNTRVJUKCEocmV0ICYgfihfUEFHRV9SVyB8IFBBR0VfQ0FD SEVfQVRUUlMpKSk7CisgICAgICAgICAgICAgICAgbDFlX2ZsaXBfZmxhZ3Mo cGwxZVtpXSwgcmV0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgIH0KIApAQCAtMTY5MCw4ICsxNzMzLDkgQEAgc3RhdGljIGludCBt b2RfbDFfZW50cnkobDFfcGdlbnRyeV90ICpwbAogICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KIAotICAgICAgICAvKiBGYXN0IHBh dGggZm9yIGlkZW50aWNhbCBtYXBwaW5nLCByL3cgYW5kIHByZXNlbmNlLiAq LwotICAgICAgICBpZiAoICFsMWVfaGFzX2NoYW5nZWQob2wxZSwgbmwxZSwg X1BBR0VfUlcgfCBfUEFHRV9QUkVTRU5UKSApCisgICAgICAgIC8qIEZhc3Qg cGF0aCBmb3IgaWRlbnRpY2FsIG1hcHBpbmcsIHIvdywgcHJlc2VuY2UsIGFu ZCBjYWNoYWJpbGl0eS4gKi8KKyAgICAgICAgaWYgKCAhbDFlX2hhc19jaGFu Z2VkKG9sMWUsIG5sMWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQUdFX0NBQ0hFX0FUVFJTIHwgX1BBR0VfUlcgfCBfUEFHRV9QUkVTRU5U KSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGFkanVzdF9ndWVzdF9sMWUo bmwxZSwgcHRfZG9tKTsKICAgICAgICAgICAgIGlmICggVVBEQVRFX0VOVFJZ KGwxLCBwbDFlLCBvbDFlLCBubDFlLCBnbDFtZm4sIHB0X3ZjcHUsCkBAIC0x NzE0LDggKzE3NTgsOSBAQCBzdGF0aWMgaW50IG1vZF9sMV9lbnRyeShsMV9w Z2VudHJ5X3QgKnBsCiAgICAgICAgICAgICByZXR1cm4gcmM7CiAgICAgICAg IGNhc2UgMDoKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6 Ci0gICAgICAgICAgICBsMWVfcmVtb3ZlX2ZsYWdzKG5sMWUsIF9QQUdFX1JX KTsKKyAgICAgICAgY2FzZSBfUEFHRV9SVyAuLi4gX1BBR0VfUlcgfCBQQUdF X0NBQ0hFX0FUVFJTOgorICAgICAgICAgICAgQVNTRVJUKCEocmMgJiB+KF9Q QUdFX1JXIHwgUEFHRV9DQUNIRV9BVFRSUykpKTsKKyAgICAgICAgICAgIGwx ZV9mbGlwX2ZsYWdzKG5sMWUsIHJjKTsKICAgICAgICAgICAgIHJjID0gMDsK ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC00OTIwLDYgKzQ5 NjUsNyBAQCBzdGF0aWMgaW50IHB0d3JfZW11bGF0ZWRfdXBkYXRlKAogICAg IGwxX3BnZW50cnlfdCBwdGUsIG9sMWUsIG5sMWUsICpwbDFlOwogICAgIHN0 cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKICAgICBzdHJ1Y3QgZG9tYWluICpk ID0gdi0+ZG9tYWluOworICAgIGludCByZXQ7CiAKICAgICAvKiBPbmx5IGFs bG93IG5hdHVyYWxseS1hbGlnbmVkIHN0b3JlcyB3aXRoaW4gdGhlIG9yaWdp bmFsICVjcjIgcGFnZS4gKi8KICAgICBpZiAoIHVubGlrZWx5KCgoYWRkcl5w dHdyX2N0eHQtPmNyMikgJiBQQUdFX01BU0spIHx8IChhZGRyICYgKGJ5dGVz LTEpKSkgKQpAQCAtNDk2Nyw3ICs1MDEzLDcgQEAgc3RhdGljIGludCBwdHdy X2VtdWxhdGVkX3VwZGF0ZSgKIAogICAgIC8qIENoZWNrIHRoZSBuZXcgUFRF LiAqLwogICAgIG5sMWUgPSBsMWVfZnJvbV9pbnRwdGUodmFsKTsKLSAgICBz d2l0Y2ggKCBnZXRfcGFnZV9mcm9tX2wxZShubDFlLCBkLCBkKSApCisgICAg c3dpdGNoICggcmV0ID0gZ2V0X3BhZ2VfZnJvbV9sMWUobmwxZSwgZCwgZCkg KQogICAgIHsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAoIGlzX3B2XzMy Yml0X2RvbWFpbihkKSAmJiAoYnl0ZXMgPT0gNCkgJiYgKHVuYWxpZ25lZF9h ZGRyICYgNCkgJiYKQEAgLTQ5OTEsOCArNTAzNyw5IEBAIHN0YXRpYyBpbnQg cHR3cl9lbXVsYXRlZF91cGRhdGUoCiAgICAgICAgIGJyZWFrOwogICAgIGNh c2UgMDoKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAxOgotICAgICAgICBs MWVfcmVtb3ZlX2ZsYWdzKG5sMWUsIF9QQUdFX1JXKTsKKyAgICBjYXNlIF9Q QUdFX1JXIC4uLiBfUEFHRV9SVyB8IFBBR0VfQ0FDSEVfQVRUUlM6CisgICAg ICAgIEFTU0VSVCghKHJldCAmIH4oX1BBR0VfUlcgfCBQQUdFX0NBQ0hFX0FU VFJTKSkpOworICAgICAgICBsMWVfZmxpcF9mbGFncyhubDFlLCByZXQpOwog ICAgICAgICBicmVhazsKICAgICB9CiAKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9wYWdlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgK QEAgLTE1Nyw2ICsxNTcsOSBAQCBzdGF0aWMgaW5saW5lIGw0X3BnZW50cnlf dCBsNGVfZnJvbV9wYWRkCiAjZGVmaW5lIGwzZV9yZW1vdmVfZmxhZ3MoeCwg ZmxhZ3MpICgoeCkubDMgJj0gfnB1dF9wdGVfZmxhZ3MoZmxhZ3MpKQogI2Rl ZmluZSBsNGVfcmVtb3ZlX2ZsYWdzKHgsIGZsYWdzKSAoKHgpLmw0ICY9IH5w dXRfcHRlX2ZsYWdzKGZsYWdzKSkKIAorLyogRmxpcCBmbGFncyBpbiBhbiBl eGlzdGluZyBMMSBQVEUuICovCisjZGVmaW5lIGwxZV9mbGlwX2ZsYWdzKHgs IGZsYWdzKSAgICAoKHgpLmwxIF49IHB1dF9wdGVfZmxhZ3MoZmxhZ3MpKQor CiAvKiBDaGVjayBpZiBhIHB0ZSdzIHBhZ2UgbWFwcGluZyBvciBzaWduaWZp Y2FudCBhY2Nlc3MgZmxhZ3MgaGF2ZSBjaGFuZ2VkLiAqLwogI2RlZmluZSBs MWVfaGFzX2NoYW5nZWQoeCx5LGZsYWdzKSBcCiAgICAgKCAhISgoKHgpLmwx IF4gKHkpLmwxKSAmICgoUEFERFJfTUFTSyZQQUdFX01BU0spfHB1dF9wdGVf ZmxhZ3MoZmxhZ3MpKSkgKQo= --=separator Content-Type: application/octet-stream; name="xsa154-4.6.patch" Content-Disposition: attachment; filename="xsa154-4.6.patch" Content-Transfer-Encoding: base64 eDg2OiBlbmZvcmNlIGNvbnNpc3RlbnQgY2FjaGFiaWxpdHkgb2YgTU1JTyBt YXBwaW5ncwoKV2UndmUgYmVlbiB0b2xkIGJ5IEludGVsIHRoYXQgaW5jb25z aXN0ZW50IGNhY2hhYmlsaXR5IGJldHdlZW4KbXVsdGlwbGUgbWFwcGluZ3Mg b2YgdGhlIHNhbWUgcGFnZSBjYW4gYWZmZWN0IHN5c3RlbSBzdGFiaWxpdHkg b25seQp3aGVuIHRoZSBhZmZlY3RlZCBwYWdlIGlzIGFuIE1NSU8gb25lLiBT aW5jZSB0aGUgc3RhbGUgZGF0YSBpc3N1ZSBpcwpvZiBubyByZWxldmFuY2Ug dG8gdGhlIGh5cGVydmlzb3IgKHNpbmNlIGFsbCBndWVzdCBtZW1vcnkgYWNj ZXNzZXMgZ28KdGhyb3VnaCBwcm9wZXIgYWNjZXNzb3JzIGFuZCB2YWxpZGF0 aW9uKSwgaGFuZGxpbmcgb2YgUkFNIHBhZ2VzCnJlbWFpbnMgdW5jaGFuZ2Vk IGhlcmUuIEFueSBNTUlPIG1hcHBlZCBieSBkb21haW5zIGhvd2V2ZXIgbmVl ZHMgdG8gYmUKZG9uZSBjb25zaXN0ZW50bHkgKGFsbCBjYWNoYWJsZSBtYXBw aW5ncyBvciBhbGwgdW5jYWNoYWJsZSBvbmVzKSwgaW4Kb3JkZXIgdG8gYXZv aWQgTWFjaGluZSBDaGVjayBleGNlcHRpb25zLiBTaW5jZSBjb252ZXJ0aW5n IGV4aXN0aW5nCmNhY2hhYmxlIG1hcHBpbmdzIHRvIHVuY2FjaGFibGUgKGF0 IHRoZSB0aW1lIGFuIHVuY2FjaGFibGUgbWFwcGluZwpnZXRzIGVzdGFibGlz aGVkKSB3b3VsZCBpbiB0aGUgUFYgY2FzZSByZXF1aXJlIHRyYWNraW5nIGFs bCBtYXBwaW5ncywKYWxsb3cgTU1JTyB0byBvbmx5IGdldCBtYXBwZWQgdW5j YWNoYWJsZSAoVUMsIFVDLSwgb3IgV0MpLgoKVGhpcyBhbHNvIGltcGxpZXMg dGhhdCBpbiB0aGUgUFYgY2FzZSB3ZSBtdXN0bid0IHVzZSB0aGUgTDEgUFRF IHVwZGF0ZQpmYXN0IHBhdGggd2hlbiBjYWNoYWJpbGl0eSBmbGFncyBnZXQg YWx0ZXJlZC4KClNpbmNlIGluIHRoZSBIVk0gY2FzZSBhdCBsZWFzdCBmb3Ig bm93IHdlIHdhbnQgdG8gY29udGludWUgaG9ub3JpbmcKcGlubmVkIGNhY2hh YmlsaXR5IGF0dHJpYnV0ZXMgZm9yIHBhZ2VzIG5vdCBtYXBwZWQgYnkgdGhl IGh5cGVydmlzb3IsCnNwZWNpYWwgY2FzZSBoYW5kbGluZyBvZiByL28gTU1J TyBwYWdlcyAoZm9yY2luZyBVQykgZ2V0cyBhZGRlZCB0aGVyZS4KQXJndWFi bHkgdGhlIGNvdW50ZXJwYXJ0IGNoYW5nZSB0byBwMm0tcHQuYyBtYXkgbm90 IGJlIG5lY2Vzc2FyeSwgc2luY2UKVUMtICh3aGljaCBhbHJlYWR5IGdldHMg ZW5mb3JjZWQgdGhlcmUpIGlzIHByb2JhYmx5IHN0cmljdCBlbm91Z2guCgpO b3RlIHRoYXQgdGhlIHNoYWRvdyBjb2RlIGNoYW5nZXMgaW5jbHVkZSBmaXhp bmcgdGhlIHdyaXRlIHByb3RlY3Rpb24Kb2Ygci9vIE1NSU8gcmFuZ2VzOiBz aGFkb3dfbDFlX3JlbW92ZV9mbGFncygpIGFuZCBpdHMgc2libGluZ3MsIG90 aGVyCnRoYW4gbDFlX3JlbW92ZV9mbGFncygpIGFuZCBhbGlrZSwgcmV0dXJu IHRoZSBuZXcgUFRFIChhbmQgaGVuY2UKaWdub3JpbmcgdGhlaXIgcmV0dXJu IHZhbHVlcyBtYWtlcyB0aGVtIG5vLW9wcykuCgpUaGlzIGlzIENWRS0yMDE2 LTIyNzAgLyBYU0EtMTU0LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgpBY2tlZC1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCi0tLSBhL2RvY3MvbWlzYy94 ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duCkBAIC0xMDgwLDYgKzEwODAsMTUgQEAg bGltaXQgaXMgaWdub3JlZCBieSBYZW4uCiAKIFNwZWNpZnkgaWYgdGhlIE1N Q29uZmlnIHNwYWNlIHNob3VsZCBiZSBlbmFibGVkLgogCisjIyMgbW1pby1y ZWxheAorPiBgPSA8Ym9vbGVhbj4gfCBhbGxgCisKKz4gRGVmYXVsdDogYGZh bHNlYAorCitCeSBkZWZhdWx0LCBkb21haW5zIG1heSBub3QgY3JlYXRlIGNh Y2hlZCBtYXBwaW5ncyB0byBNTUlPIHJlZ2lvbnMuCitUaGlzIG9wdGlvbiBy ZWxheGVzIHRoZSBjaGVjayBmb3IgRG9tYWluIDAgKG9yIHdoZW4gdXNpbmcg YGFsbGAsIGFsbCBQVgorZG9tYWlucyksIHRvIHBlcm1pdCB0aGUgdXNlIG9m IGNhY2hlYWJsZSBNTUlPIG1hcHBpbmdzLgorCiAjIyMgbXNpCiA+IGA9IDxi b29sZWFuPmAKIAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL210cnIuYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL210cnIuYwpAQCAtODA3LDggKzgwNywxNyBA QCBpbnQgZXB0ZV9nZXRfZW50cnlfZW10KHN0cnVjdCBkb21haW4gKmQsCiAg ICAgaWYgKCB2LT5kb21haW4gIT0gZCApCiAgICAgICAgIHYgPSBkLT52Y3B1 ID8gZC0+dmNwdVswXSA6IE5VTEw7CiAKLSAgICBpZiAoICFtZm5fdmFsaWQo bWZuX3gobWZuKSkgKQorICAgIGlmICggIW1mbl92YWxpZChtZm5feChtZm4p KSB8fAorICAgICAgICAgcmFuZ2VzZXRfY29udGFpbnNfcmFuZ2UobW1pb19y b19yYW5nZXMsIG1mbl94KG1mbiksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtZm5feChtZm4pICsgKDFVTCA8PCBvcmRlcikgLSAxKSAp CisgICAgeworICAgICAgICAqaXBhdCA9IDE7CiAgICAgICAgIHJldHVybiBN VFJSX1RZUEVfVU5DQUNIQUJMRTsKKyAgICB9CisKKyAgICBpZiAoIHJhbmdl c2V0X292ZXJsYXBzX3JhbmdlKG1taW9fcm9fcmFuZ2VzLCBtZm5feChtZm4p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3gobWZu KSArICgxVUwgPDwgb3JkZXIpIC0gMSkgKQorICAgICAgICByZXR1cm4gLTE7 CiAKICAgICBzd2l0Y2ggKCBodm1fZ2V0X21lbV9waW5uZWRfY2FjaGVhdHRy KGQsIGdmbiwgb3JkZXIsICZ0eXBlKSApCiAgICAgewotLS0gYS94ZW4vYXJj aC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1w dC5jCkBAIC0xMDcsNiArMTA3LDggQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcg cDJtX3R5cGVfdG9fZmxhZ3MocAogICAgIGNhc2UgcDJtX21taW9fZGlyZWN0 OgogICAgICAgICBpZiAoICFyYW5nZXNldF9jb250YWluc19zaW5nbGV0b24o bW1pb19yb19yYW5nZXMsIG1mbl94KG1mbikpICkKICAgICAgICAgICAgIGZs YWdzIHw9IF9QQUdFX1JXOworICAgICAgICBlbHNlCisgICAgICAgICAgICBm bGFncyB8PSBfUEFHRV9QV1Q7CiAgICAgICAgIHJldHVybiBmbGFncyB8IFAy TV9CQVNFX0ZMQUdTIHwgX1BBR0VfUENEOwogICAgIH0KIH0KLS0tIGEveGVu L2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9tbS9zaGFkb3cvbXVsdGkuYwpAQCAtNTE5LDYgKzUxOSw3IEBAIF9zaF9w cm9wYWdhdGUoc3RydWN0IHZjcHUgKnYsCiAgICAgZ2ZuX3QgdGFyZ2V0X2dm biA9IGd1ZXN0X2wxZV9nZXRfZ2ZuKGd1ZXN0X2VudHJ5KTsKICAgICB1MzIg cGFzc190aHJ1X2ZsYWdzOwogICAgIHUzMiBnZmxhZ3MsIHNmbGFnczsKKyAg ICBib29sX3QgbW1pb19tZm47CiAKICAgICAvKiBXZSBkb24ndCBzaGFkb3cg UEFFIGwzcyAqLwogICAgIEFTU0VSVChHVUVTVF9QQUdJTkdfTEVWRUxTID4g MyB8fCBsZXZlbCAhPSAzKTsKQEAgLTU1OSw3ICs1NjAsMTAgQEAgX3NoX3By b3BhZ2F0ZShzdHJ1Y3QgdmNwdSAqdiwKICAgICAvLyBtZm4gbWVhbnMgdGhh dCB3ZSBjYW4gbm90IHVzZWZ1bGx5IHNoYWRvdyBhbnl0aGluZywgYW5kIHNv IHdlCiAgICAgLy8gcmV0dXJuIGVhcmx5LgogICAgIC8vCi0gICAgaWYgKCAh bWZuX3ZhbGlkKHRhcmdldF9tZm4pCisgICAgbW1pb19tZm4gPSAhbWZuX3Zh bGlkKHRhcmdldF9tZm4pCisgICAgICAgICAgICAgICB8fCAobGV2ZWwgPT0g MQorICAgICAgICAgICAgICAgICAgICYmIHBhZ2VfZ2V0X293bmVyKG1mbl90 b19wYWdlKHRhcmdldF9tZm4pKSA9PSBkb21faW8pOworICAgIGlmICggbW1p b19tZm4KICAgICAgICAgICYmICEobGV2ZWwgPT0gMSAmJiAoIXNoYWRvd19t b2RlX3JlZmNvdW50cyhkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8fCBwMm10ID09IHAybV9tbWlvX2RpcmVjdCkpICkKICAgICB7CkBAIC01 NzcsNyArNTgxLDcgQEAgX3NoX3Byb3BhZ2F0ZShzdHJ1Y3QgdmNwdSAqdiwK ICAgICAgICAgICAgICAgICAgICAgICAgX1BBR0VfUlcgfCBfUEFHRV9QUkVT RU5UKTsKICAgICBpZiAoIGd1ZXN0X3N1cHBvcnRzX254KHYpICkKICAgICAg ICAgcGFzc190aHJ1X2ZsYWdzIHw9IF9QQUdFX05YX0JJVDsKLSAgICBpZiAo ICFzaGFkb3dfbW9kZV9yZWZjb3VudHMoZCkgJiYgIW1mbl92YWxpZCh0YXJn ZXRfbWZuKSApCisgICAgaWYgKCBsZXZlbCA9PSAxICYmICFzaGFkb3dfbW9k ZV9yZWZjb3VudHMoZCkgJiYgbW1pb19tZm4gKQogICAgICAgICBwYXNzX3Ro cnVfZmxhZ3MgfD0gX1BBR0VfUEFUIHwgX1BBR0VfUENEIHwgX1BBR0VfUFdU OwogICAgIHNmbGFncyA9IGdmbGFncyAmIHBhc3NfdGhydV9mbGFnczsKIApA QCAtNjc2LDEwICs2ODAsMTQgQEAgX3NoX3Byb3BhZ2F0ZShzdHJ1Y3QgdmNw dSAqdiwKICAgICB9CiAKICAgICAvKiBSZWFkLW9ubHkgbWVtb3J5ICovCi0g ICAgaWYgKCBwMm1faXNfcmVhZG9ubHkocDJtdCkgfHwKLSAgICAgICAgIChw Mm10ID09IHAybV9tbWlvX2RpcmVjdCAmJgotICAgICAgICAgIHJhbmdlc2V0 X2NvbnRhaW5zX3NpbmdsZXRvbihtbWlvX3JvX3JhbmdlcywgbWZuX3godGFy Z2V0X21mbikpKSApCisgICAgaWYgKCBwMm1faXNfcmVhZG9ubHkocDJtdCkg KQogICAgICAgICBzZmxhZ3MgJj0gfl9QQUdFX1JXOworICAgIGVsc2UgaWYg KCBwMm10ID09IHAybV9tbWlvX2RpcmVjdCAmJgorICAgICAgICAgICAgICBy YW5nZXNldF9jb250YWluc19zaW5nbGV0b24obW1pb19yb19yYW5nZXMsIG1m bl94KHRhcmdldF9tZm4pKSApCisgICAgeworICAgICAgICBzZmxhZ3MgJj0g fihfUEFHRV9SVyB8IF9QQUdFX1BBVCk7CisgICAgICAgIHNmbGFncyB8PSBf UEFHRV9QQ0QgfCBfUEFHRV9QV1Q7CisgICAgfQogCiAgICAgLy8gcHJvdGVj dCBndWVzdCBwYWdlIHRhYmxlcwogICAgIC8vCkBAIC0xMTg1LDIyICsxMTkz LDI4IEBAIHN0YXRpYyBpbnQgc2hhZG93X3NldF9sMWUoc3RydWN0IGRvbWFp bgogICAgICAgICAgJiYgIXNoX2wxZV9pc19tYWdpYyhuZXdfc2wxZSkgKQog ICAgIHsKICAgICAgICAgLyogQWJvdXQgdG8gaW5zdGFsbCBhIG5ldyByZWZl cmVuY2UgKi8KLSAgICAgICAgaWYgKCBzaGFkb3dfbW9kZV9yZWZjb3VudHMo ZCkgKSB7CisgICAgICAgIGlmICggc2hhZG93X21vZGVfcmVmY291bnRzKGQp ICkKKyAgICAgICAgeworI2RlZmluZSBQQUdFX0ZMSVBQQUJMRSAoX1BBR0Vf UlcgfCBfUEFHRV9QV1QgfCBfUEFHRV9QQ0QgfCBfUEFHRV9QQVQpCisgICAg ICAgICAgICBpbnQgcmM7CisKICAgICAgICAgICAgIFRSQUNFX1NIQURPV19Q QVRIX0ZMQUcoVFJDRV9TRkxBR19TSEFET1dfTDFfR0VUX1JFRik7Ci0gICAg ICAgICAgICBzd2l0Y2ggKCBzaGFkb3dfZ2V0X3BhZ2VfZnJvbV9sMWUobmV3 X3NsMWUsIGQsIG5ld190eXBlKSApCisgICAgICAgICAgICBzd2l0Y2ggKCBy YyA9IHNoYWRvd19nZXRfcGFnZV9mcm9tX2wxZShuZXdfc2wxZSwgZCwgbmV3 X3R5cGUpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgIGRlZmF1bHQ6 CiAgICAgICAgICAgICAgICAgLyogRG9lc24ndCBsb29rIGxpa2UgYSBwYWdl dGFibGUuICovCiAgICAgICAgICAgICAgICAgZmxhZ3MgfD0gU0hBRE9XX1NF VF9FUlJPUjsKICAgICAgICAgICAgICAgICBuZXdfc2wxZSA9IHNoYWRvd19s MWVfZW1wdHkoKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg ICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICBzaGFkb3dfbDFlX3JlbW92 ZV9mbGFncyhuZXdfc2wxZSwgX1BBR0VfUlcpOworICAgICAgICAgICAgY2Fz ZSBQQUdFX0ZMSVBQQUJMRSAmIC1QQUdFX0ZMSVBQQUJMRSAuLi4gUEFHRV9G TElQUEFCTEU6CisgICAgICAgICAgICAgICAgQVNTRVJUKCEocmMgJiB+UEFH RV9GTElQUEFCTEUpKTsKKyAgICAgICAgICAgICAgICBuZXdfc2wxZSA9IHNo YWRvd19sMWVfZmxpcF9mbGFncyhuZXdfc2wxZSwgcmMpOwogICAgICAgICAg ICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgICAgICAgICAgY2FzZSAw OgogICAgICAgICAgICAgICAgIHNoYWRvd192cmFtX2dldF9sMWUobmV3X3Ns MWUsIHNsMWUsIHNsMW1mbiwgZCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgICAgICB9CisjdW5kZWYgUEFHRV9GTElQUEFCTEUKICAgICAg ICAgfQogICAgIH0KIAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L3R5 cGVzLmgKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy90eXBlcy5oCkBA IC05OSw2ICs5OSw5IEBAIHN0YXRpYyBpbmxpbmUgdTMyIHNoYWRvd19sNGVf Z2V0X2ZsYWdzKHMKIHN0YXRpYyBpbmxpbmUgc2hhZG93X2wxZV90CiBzaGFk b3dfbDFlX3JlbW92ZV9mbGFncyhzaGFkb3dfbDFlX3Qgc2wxZSwgdTMyIGZs YWdzKQogeyBsMWVfcmVtb3ZlX2ZsYWdzKHNsMWUsIGZsYWdzKTsgcmV0dXJu IHNsMWU7IH0KK3N0YXRpYyBpbmxpbmUgc2hhZG93X2wxZV90CitzaGFkb3df bDFlX2ZsaXBfZmxhZ3Moc2hhZG93X2wxZV90IHNsMWUsIHUzMiBmbGFncykK K3sgbDFlX2ZsaXBfZmxhZ3Moc2wxZSwgZmxhZ3MpOyByZXR1cm4gc2wxZTsg fQogCiBzdGF0aWMgaW5saW5lIHNoYWRvd19sMWVfdCBzaGFkb3dfbDFlX2Vt cHR5KHZvaWQpCiB7IHJldHVybiBsMWVfZW1wdHkoKTsgfQotLS0gYS94ZW4v YXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtMTc4 LDYgKzE3OCwxOCBAQCBzdGF0aWMgdWludDMyX3QgYmFzZV9kaXNhbGxvd19t YXNrOwogICAgICAgaXNfcHZfZG9tYWluKGQpKSA/ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgTDFfRElTQUxMT1df TUFTSyA6IChMMV9ESVNBTExPV19NQVNLICYgflBBR0VfQ0FDSEVfQVRUUlMp KQogCitzdGF0aWMgczggX19yZWFkX21vc3RseSBvcHRfbW1pb19yZWxheDsK K3N0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9tbWlvX3JlbGF4KGNvbnN0IGNo YXIgKnMpCit7CisgICAgaWYgKCAhKnMgKQorICAgICAgICBvcHRfbW1pb19y ZWxheCA9IDE7CisgICAgZWxzZQorICAgICAgICBvcHRfbW1pb19yZWxheCA9 IHBhcnNlX2Jvb2wocyk7CisgICAgaWYgKCBvcHRfbW1pb19yZWxheCA8IDAg JiYgc3RyY21wKHMsICJhbGwiKSApCisgICAgICAgIG9wdF9tbWlvX3JlbGF4 ID0gMDsKK30KK2N1c3RvbV9wYXJhbSgibW1pby1yZWxheCIsIHBhcnNlX21t aW9fcmVsYXgpOworCiBzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9mcmFtZXRh YmxlX2NodW5rKHZvaWQgKnN0YXJ0LCB2b2lkICplbmQpCiB7CiAgICAgdW5z aWduZWQgbG9uZyBzID0gKHVuc2lnbmVkIGxvbmcpc3RhcnQ7CkBAIC03OTks MTAgKzgxMSw3IEBAIGdldF9wYWdlX2Zyb21fbDFlKAogICAgIGlmICggIW1m bl92YWxpZChtZm4pIHx8CiAgICAgICAgICAocmVhbF9wZ19vd25lciA9IHBh Z2VfZ2V0X293bmVyX2FuZF9yZWZlcmVuY2UocGFnZSkpID09IGRvbV9pbyAp CiAgICAgewotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgY29uc3QgdW5zaWdu ZWQgbG9uZyAqcm9fbWFwOwotICAgICAgICB1bnNpZ25lZCBpbnQgc2VnLCBi ZGY7Ci0jZW5kaWYKKyAgICAgICAgaW50IGZsaXAgPSAwOwogCiAgICAgICAg IC8qIE9ubHkgbmVlZGVkIHRoZSByZWZlcmVuY2UgdG8gY29uZmlybSBkb21f aW8gb3duZXJzaGlwLiAqLwogICAgICAgICBpZiAoIG1mbl92YWxpZChtZm4p ICkKQEAgLTgzNiwyNCArODQ1LDU1IEBAIGdldF9wYWdlX2Zyb21fbDFlKAog ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KIAotICAg ICAgICBpZiAoICEobDFmICYgX1BBR0VfUlcpIHx8Ci0gICAgICAgICAgICAg IXJhbmdlc2V0X2NvbnRhaW5zX3NpbmdsZXRvbihtbWlvX3JvX3Jhbmdlcywg bWZuKSApCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgaWYgKCAh cmFuZ2VzZXRfY29udGFpbnNfc2luZ2xldG9uKG1taW9fcm9fcmFuZ2VzLCBt Zm4pICkKKyAgICAgICAgeworICAgICAgICAgICAgLyogTU1JTyBwYWdlcyBt dXN0IG5vdCBiZSBtYXBwZWQgY2FjaGFibGUgdW5sZXNzIHJlcXVlc3RlZCBz by4gKi8KKyAgICAgICAgICAgIHN3aXRjaCAoIG9wdF9tbWlvX3JlbGF4ICkK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAg ICAgICAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihsMWVfb3duZXIpICkK KyAgICAgICAgICAgIGNhc2UgLTE6CisgICAgICAgICAgICAgICAgICAgIHJl dHVybiAwOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg ICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgICAgIH0KKyAgICAg ICAgfQorICAgICAgICBlbHNlIGlmICggbDFmICYgX1BBR0VfUlcgKQorICAg ICAgICB7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICBpZiAoICFwY2lfbW1j ZmdfZGVjb2RlKG1mbiwgJnNlZywgJmJkZikgfHwKLSAgICAgICAgICAgICAo KHJvX21hcCA9IHBjaV9nZXRfcm9fbWFwKHNlZykpICE9IE5VTEwgJiYKLSAg ICAgICAgICAgICAgdGVzdF9iaXQoYmRmLCByb19tYXApKSApCi0gICAgICAg ICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORwotICAgICAgICAgICAgICAg ICAgICJkJWQ6IEZvcmNpbmcgcmVhZC1vbmx5IGFjY2VzcyB0byBNRk4gJWx4 XG4iLAotICAgICAgICAgICAgICAgICAgIGwxZV9vd25lci0+ZG9tYWluX2lk LCBtZm4pOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByYW5nZXNldF9y ZXBvcnRfcmFuZ2VzKG1taW9fcm9fcmFuZ2VzLCAwLCB+MFVMLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludF9tbWlvX2VtdWxf cmFuZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYo c3RydWN0IG1taW9fZW11bF9yYW5nZV9jdHh0KXsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLmQgPSBsMWVfb3duZXIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tZm4gPSBtZm4g fSk7CisgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpyb19tYXA7 CisgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc2VnLCBiZGY7CisKKyAgICAg ICAgICAgIGlmICggIXBjaV9tbWNmZ19kZWNvZGUobWZuLCAmc2VnLCAmYmRm KSB8fAorICAgICAgICAgICAgICAgICAoKHJvX21hcCA9IHBjaV9nZXRfcm9f bWFwKHNlZykpICE9IE5VTEwgJiYKKyAgICAgICAgICAgICAgICAgIHRlc3Rf Yml0KGJkZiwgcm9fbWFwKSkgKQorICAgICAgICAgICAgICAgIHByaW50ayhY RU5MT0dfR19XQVJOSU5HCisgICAgICAgICAgICAgICAgICAgICAgICJkJWQ6 IEZvcmNpbmcgcmVhZC1vbmx5IGFjY2VzcyB0byBNRk4gJWx4XG4iLAorICAg ICAgICAgICAgICAgICAgICAgICBsMWVfb3duZXItPmRvbWFpbl9pZCwgbWZu KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYW5nZXNl dF9yZXBvcnRfcmFuZ2VzKG1taW9fcm9fcmFuZ2VzLCAwLCB+MFVMLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRfbW1p b19lbXVsX3JhbmdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJihzdHJ1Y3QgbW1pb19lbXVsX3JhbmdlX2N0eHQpeworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kID0g bDFlX293bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC5tZm4gPSBtZm4gfSk7CiAjZW5kaWYKLSAgICAgICAgcmV0 dXJuIDE7CisgICAgICAgICAgICBmbGlwID0gX1BBR0VfUlc7CisgICAgICAg IH0KKworICAgICAgICBzd2l0Y2ggKCBsMWYgJiBQQUdFX0NBQ0hFX0FUVFJT ICkKKyAgICAgICAgeworICAgICAgICBjYXNlIDA6IC8qIFdCICovCisgICAg ICAgICAgICBmbGlwIHw9IF9QQUdFX1BXVCB8IF9QQUdFX1BDRDsKKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIF9QQUdFX1BXVDogLyogV1Qg Ki8KKyAgICAgICAgY2FzZSBfUEFHRV9QV1QgfCBfUEFHRV9QQVQ6IC8qIFdQ ICovCisgICAgICAgICAgICBmbGlwIHw9IF9QQUdFX1BDRCB8IChsMWYgJiBf UEFHRV9QQVQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwor ICAgICAgICByZXR1cm4gZmxpcDsKICAgICB9CiAKICAgICBpZiAoIHVubGlr ZWx5KCAocmVhbF9wZ19vd25lciAhPSBwZ19vd25lcikgJiYKQEAgLTEyNDMs OCArMTI4Myw5IEBAIHN0YXRpYyBpbnQgYWxsb2NfbDFfdGFibGUoc3RydWN0 IHBhZ2VfaW4KICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAg ICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg ICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgbDFlX3JlbW92ZV9mbGFn cyhwbDFlW2ldLCBfUEFHRV9SVyk7CisgICAgICAgICAgICBjYXNlIF9QQUdF X1JXIC4uLiBfUEFHRV9SVyB8IFBBR0VfQ0FDSEVfQVRUUlM6CisgICAgICAg ICAgICAgICAgQVNTRVJUKCEocmV0ICYgfihfUEFHRV9SVyB8IFBBR0VfQ0FD SEVfQVRUUlMpKSk7CisgICAgICAgICAgICAgICAgbDFlX2ZsaXBfZmxhZ3Mo cGwxZVtpXSwgcmV0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgIH0KIApAQCAtMTc1OSw4ICsxODAwLDkgQEAgc3RhdGljIGludCBt b2RfbDFfZW50cnkobDFfcGdlbnRyeV90ICpwbAogICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KIAotICAgICAgICAvKiBGYXN0IHBh dGggZm9yIGlkZW50aWNhbCBtYXBwaW5nLCByL3cgYW5kIHByZXNlbmNlLiAq LwotICAgICAgICBpZiAoICFsMWVfaGFzX2NoYW5nZWQob2wxZSwgbmwxZSwg X1BBR0VfUlcgfCBfUEFHRV9QUkVTRU5UKSApCisgICAgICAgIC8qIEZhc3Qg cGF0aCBmb3IgaWRlbnRpY2FsIG1hcHBpbmcsIHIvdywgcHJlc2VuY2UsIGFu ZCBjYWNoYWJpbGl0eS4gKi8KKyAgICAgICAgaWYgKCAhbDFlX2hhc19jaGFu Z2VkKG9sMWUsIG5sMWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQUdFX0NBQ0hFX0FUVFJTIHwgX1BBR0VfUlcgfCBfUEFHRV9QUkVTRU5U KSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGFkanVzdF9ndWVzdF9sMWUo bmwxZSwgcHRfZG9tKTsKICAgICAgICAgICAgIGlmICggVVBEQVRFX0VOVFJZ KGwxLCBwbDFlLCBvbDFlLCBubDFlLCBnbDFtZm4sIHB0X3ZjcHUsCkBAIC0x NzgzLDggKzE4MjUsOSBAQCBzdGF0aWMgaW50IG1vZF9sMV9lbnRyeShsMV9w Z2VudHJ5X3QgKnBsCiAgICAgICAgICAgICByZXR1cm4gcmM7CiAgICAgICAg IGNhc2UgMDoKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6 Ci0gICAgICAgICAgICBsMWVfcmVtb3ZlX2ZsYWdzKG5sMWUsIF9QQUdFX1JX KTsKKyAgICAgICAgY2FzZSBfUEFHRV9SVyAuLi4gX1BBR0VfUlcgfCBQQUdF X0NBQ0hFX0FUVFJTOgorICAgICAgICAgICAgQVNTRVJUKCEocmMgJiB+KF9Q QUdFX1JXIHwgUEFHRV9DQUNIRV9BVFRSUykpKTsKKyAgICAgICAgICAgIGwx ZV9mbGlwX2ZsYWdzKG5sMWUsIHJjKTsKICAgICAgICAgICAgIHJjID0gMDsK ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC01MDAwLDYgKzUw NDMsNyBAQCBzdGF0aWMgaW50IHB0d3JfZW11bGF0ZWRfdXBkYXRlKAogICAg IGwxX3BnZW50cnlfdCBwdGUsIG9sMWUsIG5sMWUsICpwbDFlOwogICAgIHN0 cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKICAgICBzdHJ1Y3QgZG9tYWluICpk ID0gdi0+ZG9tYWluOworICAgIGludCByZXQ7CiAKICAgICAvKiBPbmx5IGFs bG93IG5hdHVyYWxseS1hbGlnbmVkIHN0b3JlcyB3aXRoaW4gdGhlIG9yaWdp bmFsICVjcjIgcGFnZS4gKi8KICAgICBpZiAoIHVubGlrZWx5KCgoYWRkcl5w dHdyX2N0eHQtPmNyMikgJiBQQUdFX01BU0spIHx8IChhZGRyICYgKGJ5dGVz LTEpKSkgKQpAQCAtNTA0Nyw3ICs1MDkxLDcgQEAgc3RhdGljIGludCBwdHdy X2VtdWxhdGVkX3VwZGF0ZSgKIAogICAgIC8qIENoZWNrIHRoZSBuZXcgUFRF LiAqLwogICAgIG5sMWUgPSBsMWVfZnJvbV9pbnRwdGUodmFsKTsKLSAgICBz d2l0Y2ggKCBnZXRfcGFnZV9mcm9tX2wxZShubDFlLCBkLCBkKSApCisgICAg c3dpdGNoICggcmV0ID0gZ2V0X3BhZ2VfZnJvbV9sMWUobmwxZSwgZCwgZCkg KQogICAgIHsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAoIGlzX3B2XzMy Yml0X2RvbWFpbihkKSAmJiAoYnl0ZXMgPT0gNCkgJiYgKHVuYWxpZ25lZF9h ZGRyICYgNCkgJiYKQEAgLTUwNzEsOCArNTExNSw5IEBAIHN0YXRpYyBpbnQg cHR3cl9lbXVsYXRlZF91cGRhdGUoCiAgICAgICAgIGJyZWFrOwogICAgIGNh c2UgMDoKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAxOgotICAgICAgICBs MWVfcmVtb3ZlX2ZsYWdzKG5sMWUsIF9QQUdFX1JXKTsKKyAgICBjYXNlIF9Q QUdFX1JXIC4uLiBfUEFHRV9SVyB8IFBBR0VfQ0FDSEVfQVRUUlM6CisgICAg ICAgIEFTU0VSVCghKHJldCAmIH4oX1BBR0VfUlcgfCBQQUdFX0NBQ0hFX0FU VFJTKSkpOworICAgICAgICBsMWVfZmxpcF9mbGFncyhubDFlLCByZXQpOwog ICAgICAgICBicmVhazsKICAgICB9CiAKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9wYWdlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgK QEAgLTE1Nyw2ICsxNTcsOSBAQCBzdGF0aWMgaW5saW5lIGw0X3BnZW50cnlf dCBsNGVfZnJvbV9wYWRkCiAjZGVmaW5lIGwzZV9yZW1vdmVfZmxhZ3MoeCwg ZmxhZ3MpICgoeCkubDMgJj0gfnB1dF9wdGVfZmxhZ3MoZmxhZ3MpKQogI2Rl ZmluZSBsNGVfcmVtb3ZlX2ZsYWdzKHgsIGZsYWdzKSAoKHgpLmw0ICY9IH5w dXRfcHRlX2ZsYWdzKGZsYWdzKSkKIAorLyogRmxpcCBmbGFncyBpbiBhbiBl eGlzdGluZyBMMSBQVEUuICovCisjZGVmaW5lIGwxZV9mbGlwX2ZsYWdzKHgs IGZsYWdzKSAgICAoKHgpLmwxIF49IHB1dF9wdGVfZmxhZ3MoZmxhZ3MpKQor CiAvKiBDaGVjayBpZiBhIHB0ZSdzIHBhZ2UgbWFwcGluZyBvciBzaWduaWZp Y2FudCBhY2Nlc3MgZmxhZ3MgaGF2ZSBjaGFuZ2VkLiAqLwogI2RlZmluZSBs MWVfaGFzX2NoYW5nZWQoeCx5LGZsYWdzKSBcCiAgICAgKCAhISgoKHgpLmwx IF4gKHkpLmwxKSAmICgoUEFERFJfTUFTSyZQQUdFX01BU0spfHB1dF9wdGVf ZmxhZ3MoZmxhZ3MpKSkgKQo= --=separator Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --=separator--