From nobody Thu Aug 27 01:19:40 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1785240351657126.31707709768159; Tue, 28 Jul 2026 05:05:51 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1372499.1619984 (Exim 4.92) (envelope-from ) id 1wogYs-0003xm-Cd; Tue, 28 Jul 2026 12:05:30 +0000 Received: by outflank-mailman (output) from mailman id 1372499.1619984; Tue, 28 Jul 2026 12:05:29 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wogYp-0003s3-Rf; Tue, 28 Jul 2026 12:05:27 +0000 Received: by outflank-mailman (input) for mailman id 1372499; Tue, 28 Jul 2026 12:05:20 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wogYg-0002Bt-33; Tue, 28 Jul 2026 12:05:18 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wogYf-00BEKG-DM; Tue, 28 Jul 2026 14:05:17 +0200 Received: from [10.42.69.9] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a689aee-2eae-0a2a0a5409dd-0a2a4509d8e2-48 for ; Tue, 28 Jul 2026 14:05:17 +0200 Received: from [104.130.215.37] (helo=mail.xenproject.org) by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a689afb-be1a-0a2a45090019-6882d725de4e-3 for ; Tue, 28 Jul 2026 14:05:16 +0200 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.96) (envelope-from ) id 1wogYZ-00DPA2-0I; Tue, 28 Jul 2026 12:05:10 +0000 Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96) (envelope-from ) id 1wogYY-003Dm1-2W; Tue, 28 Jul 2026 12:05:10 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; none Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8" Content-Transfer-Encoding: binary MIME-Version: 1.0 X-Mailer: MIME-tools 5.510 (Entity 5.510) To: xen-announce@lists.xen.org, xen-devel@lists.xen.org, xen-users@lists.xen.org, oss-security@lists.openwall.com From: Xen.org security team CC: Xen.org security team Subject: Xen Security Advisory 501 v4 (CVE-2026-62435,CVE-2026-62436) - grant-table: version change racing with other operations Message-Id: Date: Tue, 28 Jul 2026 12:05:10 +0000 X-purgate-ID: tlsNG-bad1c0/1785240316-3A2C4034-0750D1FE/0/0 X-purgate-type: clean X-purgate-size: 49447 X-Zoho-Virus-Status: 1 X-Zoho-AV-Stamp: zmail-av-0.2.10.1.5.2/285.228.97 X-ZM-MESSAGEID: 1785240353768158500 --=separator Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Reported-by: Mark Esler Reviewed-by: Andrew Cooper Tested-by: Mark Esler -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Xen Security Advisory CVE-2026-62435,CVE-2026-62436 / XSA-501 version 4 grant-table: version change racing with other operations UPDATES IN VERSION 4 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Properly sync backports with staging patch (there was no functional issue, just a code arrangement one). Public release. ISSUE DESCRIPTION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D With the introduction of Grant Table v2 came the requirement to be able to switch between versions. Switching from v1 to v2 reduces the number of valid grant references, as a bigger shared entry structure is then needed while the shared table doesn't change size. Switching from v2 back to v1 the status frames, which are separate in v2, go away. Code holding, but intermediately dropping and then re-acquiring the grant table lock, sometimes wrongly assumes that said properties wouldn't change across the window in time where the lock is not being held. The v1 -> v2 issue is CVE-2026-62435. The v2 -> v1 issue is CVE-2026-62436. IMPACT =3D=3D=3D=3D=3D=3D An unprivileged guest may be able to elevate its privileges to that of the host. Information leaks and Denial of Service (DoS) are possible as well. VULNERABLE SYSTEMS =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D All Xen versions from 4.0 onwards are vulnerable. Xen versions 3.4 and earlier are not vulnerable. Only x86 guests permitted to use grant table version 2 interfaces can leverage this vulnerability. On Arm, grant table v2 use is explicitly unsupported. Only multi-vCPU guests can leverage this vulnerability. Xen versions 4.13 and newer offer a way to build Xen without grant table support. Such hypervisors (CONFIG_GRANT_TABLE turned off) are not vulnerable. MITIGATION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Using the "gnttab=3Dmax-ver:1" hypervisor command line option will avoid the vulnerability. Using the "max_grant_version=3D1" guest configuration option for guests will also avoid the vulnerability. CREDITS =3D=3D=3D=3D=3D=3D=3D This issue was discovered by Mark Esler. RESOLUTION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Applying the appropriate attached patch resolves this issue. Note that patches for released versions are generally prepared to apply to the stable branches, and may not apply cleanly to the most recent release tarball. Downstreams are encouraged to update to the tip of the stable branch before applying these patches. xsa501.patch xen-unstable - Xen 4.19.x xsa501-4.18.patch Xen 4.18.x xsa501-4.17.patch Xen 4.17.x $ sha256sum xsa501* e856d64f5b1a16dbb3d7ec19140f24eca508b62de0d25036fa5735cdd5b72be6 xsa501.pa= tch e006c4fe0a35698318eca59ce828202cac19327f5139d51645116124fc3126e8 xsa501-4.= 17.patch 10477adfd82fa09123f08497d6a5d44ae61f48d026590ce262cac65f482b2d97 xsa501-4.= 18.patch $ DEPLOYMENT DURING EMBARGO =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Deployment of the patches 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 mitigation 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 restricting the available grant table version is a guest visible configuration change, which may lead to re-discovery of the issue. Deployment of this mitigation is permitted only AFTER the embargo ends. AND: 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----- iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmpomrIMHHBncEB4ZW4u b3JnAAoJEIP+FMlX6CvZc98H/0wOjr4aa/IMxNH41B8p6vx1ayiBDvTV8qWgmjf9 AyjNGWG5sAjViMDjtFMUE/CeOeoby+gPRfzop9L7cjlHzy8+y/5s9oRUzC+0VIDq 1V5SBbD0XzhqujoLj5LBF0M1a/EyAJzYeVIV3t1DL6yFAz9YRpUGz6pNAwnF0dui bfNZcT2K0+BV0YHUQMrEkAUd+PV/mObG8AiVDS8j9BU8sGN4m1Wx2hsYzqYBCXpK T3lT8dG9qaYcnlH+m9jfWFIE2Srr9a2rLdCMs4dHY1CB/FmZLRrWe304yFuQntET OGiyZWW86cjmANEKAjrYHSD/CRa81gBqdxiAH/N13zBxZ7I=3D =3DVVHS -----END PGP SIGNATURE----- --=separator Content-Type: application/octet-stream; name="xsa501.patch" Content-Disposition: attachment; filename="xsa501.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGNvcGUgd2l0aCB2ZXJzaW9uIGNoYW5nZXMgcmFjaW5nIG90 aGVyIG9wZXJhdGlvbnMKCkRyb3BwaW5nIGFuZCByZS1hY3F1aXJpbmcgdGhl IGdyYW50IHRhYmxlIGxvY2sgZm9yIGEgcGFydGljdWxhciBvcGVyYXRpb24K cmVxdWlyZXMgc3BlY2lhbCBjYXJlLCBhcyBpbiB0aGUgbWVhbnRpbWUgdGhl IGdyYW50IHRhYmxlIHZlcnNpb24gY2FuCmNoYW5nZS4KCkR1cmluZyBhIHYy IC0+IHYxIGNoYW5nZSwgc3RhdHVzIGZyYW1lcyBnb2luZyBhd2F5IG1lYW5z IHRoYXQgcHJlLQpjYWxjdWxhdGVkIHN0YXR1cyBwb2ludGVycyBnbyBzdGFs ZSwgcmVmZXJlbmNpbmcgZnJlZWQgKGFuZCBwb3NzaWJseQphbHJlYWR5IHJl LXVzZWQpIG1lbW9yeS4gUmVjb3JkIGluLWZsaWdodCB2MiBvcGVyYXRpb25z LCBwZXJtaXR0aW5nIHRoZQp2ZXJzaW9uIGNoYW5nZSBvbmx5IHdoZW4gdGhl cmUgYXJlIG5vbmUgb2YgdGhlbS4gUmVjYWxjdWxhdGUgInN0YXR1cyIgaW4K dGhlIG9uZSBwbGFjZSAobWFwX2dyYW50X3JlZigpJ3MgZXJyb3IgcGF0aCkg d2hlcmUgaXQgY291bGQgYmUgc3RhbGUsIGJ1dApjb25maW5lIHRoaXMgdG8g cmVzZXJ2ZWQgZW50cmllcy4KClRoaXMgaXMgQ1ZFLTIwMjYtNjI0MzYuCgpS ZXBvcnRlZC1ieTogTWFyayBFc2xlciA8bWFya0BoZXhwcm9vZi5kZXY+CgpE dXJpbmcgYSB2MSAtPiB2MiBjaGFuZ2UsIHRoZSBudW1iZXIgb2Ygc2hhcmVk IHRhYmxlIGVudHJpZXMgcmVkdWNlcywKbWVhbmluZyB0aGF0IHByZXZpb3Vz bHkgdmFsaWRhdGVkIGdyYW50IHJlZmVyZW5jZXMgbWF5IG5vdyBiZSBvdXQg b2YKYm91bmRzLiBCZWNhdXNlIG9mIHRoZSBjaGVja2luZyBvZiBwaW4gY291 bnRzIGluIGdudHRhYl9zZXRfdmVyc2lvbigpCih3aXRoIHRoZSBncmFudCB0 YWJsZSBsb2NrIGhlbGQgZm9yIHdyaXRpbmcpLCBmb3Igbm93LW91dC1vZi1i b3VuZHMgZ3JlZi1zCm5laXRoZXIgYWN0aXZlIG1hcHBpbmdzIGNhbiBleGlz dCwgbm9yIGNhbiB0aGVyZSBiZSBpbi1wcm9ncmVzcyBjb3B5Cm9wZXJhdGlv bnMuIE5ldmVydGhlbGVzcyBib3VuZHMgY2hlY2tzIGFyZSBhZGRlZCB0aGVy ZSwganVzdCB0byBiZSBvbiB0aGUKc2FmZSBzaWRlLgoKRm9yIGdudHRhYl90 cmFuc2ZlcigpLCB0byBjb3ZlciB0aGUgZ2FwIGJldHdlZW4gdGhlIGxvY2sg YmVpbmcgZHJvcHBlZCBieQpnbnR0YWJfcHJlcGFyZV9mb3JfdHJhbnNmZXIo KSBhbmQgaXQgYmVpbmcgcmUtYWNxdWlyZWQsIGhhdmUgdGhlIGhlbHBlcgpy ZXR1cm4gdGhlIHZlcnNpb24gaXQgZm91bmQsIGFuZCBmYWlsIHRoZSBvcGVy YXRpb24gaWYgdGhlIHZlcnNpb24gdHVybnMKb3V0IHRvIGhhdmUgY2hhbmdl ZCBhZnRlciByZS1hY3F1aXJpbmcgdGhlIGxvY2suCgpGdXJ0aGVyIGF2b2lk IG5lZWRsZXNzIHVzZSBvZiBzaGFyZWRfZW50cnlfaGVhZGVyKCksIGFzIGl0 IGludm9sdmVzCnBvaW50ZXIgYXJpdGhtZXRpYyB3aGljaCwgd2hlbiB1c2lu ZyBhbiBvdXQtb2YtYm91bmRzIHJlZiwgaXMgVUIuCgpUaGlzIGlzIENWRS0y MDI2LTYyNDM1LgoKRXZlcnl0aGluZyB0b2dldGhlciBpcyBYU0EtNTAxLgoK Rml4ZXM6IGE5OGRjMTM3MDNlMCAoIkludHJvZHVjZSBhIGdyYW50X2VudHJ5 X3YyIHN0cnVjdHVyZSIpClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KVGVzdGVkLWJ5OiBNYXJrIEVzbGVyIDxtYXJr QGhleHByb29mLmRldj4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFu ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Nv bW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5j CmluZGV4IGI4M2RkN2JjMmFmMi4uMzNlZjVmNjUxYmU4IDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9n cmFudF90YWJsZS5jCkBAIC03MSw2ICs3MSwxMCBAQCBzdHJ1Y3QgZ3JhbnRf dGFibGUgewogICAgIHVuc2lnbmVkIGludCAgICAgICAgICBucl9ncmFudF9m cmFtZXM7CiAgICAgLyogTnVtYmVyIG9mIGdyYW50IHN0YXR1cyBmcmFtZXMg c2hhcmVkIHdpdGggZ3Vlc3QgKGZvciB2ZXJzaW9uIDIpICovCiAgICAgdW5z aWduZWQgaW50ICAgICAgICAgIG5yX3N0YXR1c19mcmFtZXM7CisKKyAgICAv KiBOdW1iZXIgb2YgdmVyc2lvbiAyIG9wZXJhdGlvbnMgaW4gcHJvZ3Jlc3Mu ICovCisgICAgYXRvbWljX3QgICAgICAgICAgICAgIG5yX3YyX29wczsKKwog ICAgIC8qCiAgICAgICogTnVtYmVyIG9mIGF2YWlsYWJsZSBtYXB0cmFjayBl bnRyaWVzLiAgRm9yIGNsZWFudXAgcHVycG9zZXMgaXQgaXMKICAgICAgKiBp bXBvcnRhbnQgdG8gcmVhbGl6ZSB0aGF0IHRoaXMgZmllbGQgYW5kIEBtYXB0 cmFjayBmdXJ0aGVyIGRvd24gd2lsbApAQCAtOTMzLDYgKzkzNyw5IEBAIHN0 YXRpYyB2b2lkIHJlZHVjZV9zdGF0dXNfZm9yX3BpbihzdHJ1Y3QgZG9tYWlu ICpyZCwKIHsKICAgICB1bnNpZ25lZCBpbnQgY2xlYXJfZmxhZ3MgPSBhY3Qt PnBpbiA/IDAgOiBHVEZfcmVhZGluZzsKIAorICAgIGlmICggdW5saWtlbHko IXN0YXR1cykgKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoICFyZWFk b25seSAmJiAhKGFjdC0+cGluICYgKEdOVFBJTl9oc3R3X21hc2sgfCBHTlRQ SU5fZGV2d19tYXNrKSkgKQogICAgICAgICBjbGVhcl9mbGFncyB8PSBHVEZf d3JpdGluZzsKIApAQCAtMTM0Myw2ICsxMzUwLDIyIEBAIG1hcF9ncmFudF9y ZWYoCiAKICAgICBncmFudF9yZWFkX2xvY2socmd0KTsKIAorICAgIGlmICgg dW5saWtlbHkoZXZhbHVhdGVfbm9zcGVjKChyZ3QtPmd0X3ZlcnNpb24gPT0g MSkgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Rh dHVzID09ICZzaGFoLT5mbGFncykpKSApCisgICAgeworICAgICAgICAvKgor ICAgICAgICAgKiBBZnRlciBhIHYxIC0+IHYyIGNoYW5nZSBiZWhpbmQgb3Vy IGJhY2tzICJyZWYiIG1heSBub3cgYmUgb3V0IG9mCisgICAgICAgICAqIGJv dW5kcy4gIFJlY2FsY3VsYXRlIGl0LCBidXQgb25seSBmb3IgcmVzZXJ2ZWQg ZW50cmllcy4gIE90aGVycworICAgICAgICAgKiB3aWxsIGhhdmUgYmVlbiBj bGVhcmVkIGFueXdheSBieSB0aGUgdmVyc2lvbiBjaGFuZ2UuCisgICAgICAg ICAqLworICAgICAgICBpZiAoIHJlZiA8IEdOVFRBQl9OUl9SRVNFUlZFRF9F TlRSSUVTICkKKyAgICAgICAgICAgIHN0YXR1cyA9IGV2YWx1YXRlX25vc3Bl YyhyZ3QtPmd0X3ZlcnNpb24gPT0gMSkKKyAgICAgICAgICAgICAgICAgICAg ID8gJnNoYWgtPmZsYWdzCisgICAgICAgICAgICAgICAgICAgICA6ICZzdGF0 dXNfZW50cnkocmd0LCByZWYpOworICAgICAgICBlbHNlCisgICAgICAgICAg ICBzdGF0dXMgPSBOVUxMOworICAgIH0KKwogICAgIGFjdCA9IGFjdGl2ZV9l bnRyeV9hY3F1aXJlKHJndCwgb3AtPnJlZik7CiAgICAgYWN0LT5waW4gLT0g cGluX2luY3I7CiAKQEAgLTE1ODYsOSArMTYwOSw4IEBAIHVubWFwX2NvbW1v bl9jb21wbGV0ZShzdHJ1Y3QgZ250dGFiX3VubWFwX2NvbW1vbiAqb3ApCiAg ICAgc3RydWN0IGRvbWFpbiAqbGQsICpyZCA9IG9wLT5yZDsKICAgICBzdHJ1 Y3QgZ3JhbnRfdGFibGUgKnJndDsKICAgICBzdHJ1Y3QgYWN0aXZlX2dyYW50 X2VudHJ5ICphY3Q7Ci0gICAgZ3JhbnRfZW50cnlfaGVhZGVyX3QgKnNoYTsK ICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKLSAgICB1aW50MTZfdCAqc3Rh dHVzOworICAgIHVpbnQxNl90ICpzdGF0dXMgPSBOVUxMOwogCiAgICAgaWYg KCBldmFsdWF0ZV9ub3NwZWMoIW9wLT5kb25lKSApCiAgICAgewpAQCAtMTYw NCwxMSArMTYyNiwxMCBAQCB1bm1hcF9jb21tb25fY29tcGxldGUoc3RydWN0 IGdudHRhYl91bm1hcF9jb21tb24gKm9wKQogICAgIGdyYW50X3JlYWRfbG9j ayhyZ3QpOwogCiAgICAgYWN0ID0gYWN0aXZlX2VudHJ5X2FjcXVpcmUocmd0 LCBvcC0+cmVmKTsKLSAgICBzaGEgPSBzaGFyZWRfZW50cnlfaGVhZGVyKHJn dCwgb3AtPnJlZik7CiAKICAgICBpZiAoIGV2YWx1YXRlX25vc3BlYyhyZ3Qt Pmd0X3ZlcnNpb24gPT0gMSkgKQotICAgICAgICBzdGF0dXMgPSAmc2hhLT5m bGFnczsKLSAgICBlbHNlCisgICAgICAgIHN0YXR1cyA9ICZzaGFyZWRfZW50 cnlfdjEocmd0LCBvcC0+cmVmKS5mbGFnczsKKyAgICBlbHNlIGlmICggZXZh bHVhdGVfbm9zcGVjKG9wLT5yZWYgPCBucl9ncmFudF9lbnRyaWVzKHJndCkp ICkKICAgICAgICAgc3RhdHVzID0gJnN0YXR1c19lbnRyeShyZ3QsIG9wLT5y ZWYpOwogCiAgICAgcGcgPSAhaXNfaW9tZW1fcGFnZShhY3QtPm1mbikgPyBt Zm5fdG9fcGFnZShvcC0+bWZuKSA6IE5VTEw7CkBAIC0yMTk2LDE0ICsyMjE3 LDE0IEBAIGdudHRhYl9xdWVyeV9zaXplKAogICogQ2hlY2sgdGhhdCB0aGUg Z2l2ZW4gZ3JhbnQgcmVmZXJlbmNlIChyZCxyZWYpIGFsbG93cyAnbGQnIHRv IHRyYW5zZmVyCiAgKiBvd25lcnNoaXAgb2YgYSBwYWdlIGZyYW1lLiBJZiBz bywgbG9jayBkb3duIHRoZSBncmFudCBlbnRyeS4KICAqLwotc3RhdGljIGlu dAorc3RhdGljIHVuc2lnbmVkIGludAogZ250dGFiX3ByZXBhcmVfZm9yX3Ry YW5zZmVyKAogICAgIHN0cnVjdCBkb21haW4gKnJkLCBzdHJ1Y3QgZG9tYWlu ICpsZCwgZ3JhbnRfcmVmX3QgcmVmKQogewogICAgIHN0cnVjdCBncmFudF90 YWJsZSAqcmd0ID0gcmQtPmdyYW50X3RhYmxlOwogICAgIHVpbnQzMl90ICpy YXdfc2hhaDsKICAgICB1bmlvbiBncmFudF9jb21ibyBzY29tYm87Ci0gICAg aW50ICAgICAgICAgICAgICAgICByZXRyaWVzID0gMDsKKyAgICB1bnNpZ25l ZCBpbnQgcmV0cmllcyA9IDAsIHZlcjsKIAogICAgIGdyYW50X3JlYWRfbG9j ayhyZ3QpOwogCkBAIC0yMjQ4LDggKzIyNjksMTEgQEAgZ250dGFiX3ByZXBh cmVfZm9yX3RyYW5zZmVyKAogICAgICAgICBzY29tYm8gPSBwcmV2OwogICAg IH0KIAorICAgIHZlciA9IHJndC0+Z3RfdmVyc2lvbjsKKwogICAgIGdyYW50 X3JlYWRfdW5sb2NrKHJndCk7Ci0gICAgcmV0dXJuIDE7CisKKyAgICByZXR1 cm4gdmVyOwogCiAgZmFpbDoKICAgICBncmFudF9yZWFkX3VubG9jayhyZ3Qp OwpAQCAtMjI3NCw3ICsyMjk4LDcgQEAgZ250dGFiX3RyYW5zZmVyKAogCiAg ICAgZm9yICggaSA9IDA7IGkgPCBjb3VudDsgaSsrICkKICAgICB7Ci0gICAg ICAgIGJvb2wgb2theTsKKyAgICAgICAgdW5zaWduZWQgaW50IHZlcjsKICAg ICAgICAgaW50IHJjOwogCiAgICAgICAgIGlmICggaSAmJiBoeXBlcmNhbGxf cHJlZW1wdF9jaGVjaygpICkKQEAgLTI0MTQsMTQgKzI0MzgsMTQgQEAgZ250 dGFiX3RyYW5zZmVyKAogICAgICAgICAgKiBwYWdlbGlzdC4KICAgICAgICAg ICovCiAgICAgICAgIG5yc3Bpbl91bmxvY2soJmUtPnBhZ2VfYWxsb2NfbG9j ayk7Ci0gICAgICAgIG9rYXkgPSBnbnR0YWJfcHJlcGFyZV9mb3JfdHJhbnNm ZXIoZSwgZCwgZ29wLnJlZik7CisgICAgICAgIHZlciA9IGdudHRhYl9wcmVw YXJlX2Zvcl90cmFuc2ZlcihlLCBkLCBnb3AucmVmKTsKIAogICAgICAgICAv KgogICAgICAgICAgKiBNYWtlIHN1cmUgdGhlIHJlZmVyZW5jZSBib3VuZCBj aGVjayBpbiBnbnR0YWJfcHJlcGFyZV9mb3JfdHJhbnNmZXIKICAgICAgICAg ICogaXMgcmVzcGVjdGVkIGFuZCBzcGVjdWxhdGl2ZSBleGVjdXRpb24gaXMg YmxvY2tlZCBhY2NvcmRpbmdseQogICAgICAgICAgKi8KLSAgICAgICAgaWYg KCB1bmxpa2VseSghZXZhbHVhdGVfbm9zcGVjKG9rYXkpKSB8fAotICAgICAg ICAgICAgdW5saWtlbHkoYXNzaWduX3BhZ2VzKHBhZ2UsIDEsIGUsIE1FTUZf bm9fcmVmY291bnQpKSApCisgICAgICAgIGlmICggdW5saWtlbHkoIWV2YWx1 YXRlX25vc3BlYyh2ZXIpKSB8fAorICAgICAgICAgICAgIHVubGlrZWx5KGFz c2lnbl9wYWdlcyhwYWdlLCAxLCBlLCBNRU1GX25vX3JlZmNvdW50KSkgKQog ICAgICAgICB7CiAgICAgICAgICAgICBib29sIGRyb3BfZG9tX3JlZjsKIApA QCAtMjQzMyw3ICsyNDU3LDcgQEAgZ250dGFiX3RyYW5zZmVyKAogICAgICAg ICAgICAgZHJvcF9kb21fcmVmID0gIWRvbWFpbl9hZGp1c3RfdG90X3BhZ2Vz KGUsIC0xKTsKICAgICAgICAgICAgIG5yc3Bpbl91bmxvY2soJmUtPnBhZ2Vf YWxsb2NfbG9jayk7CiAKLSAgICAgICAgICAgIGlmICggb2theSAvKiBpLmUu IGUtPmlzX2R5aW5nIGR1ZSB0byB0aGUgc3Vycm91bmRpbmcgaWYoKSAqLyAp CisgICAgICAgICAgICBpZiAoIHZlciAvKiBpLmUuIGUtPmlzX2R5aW5nIGR1 ZSB0byB0aGUgc3Vycm91bmRpbmcgaWYoKSAqLyApCiAgICAgICAgICAgICAg ICAgZ2RwcmludGsoWEVOTE9HX0lORk8sICJUcmFuc2ZlcmVlIGQlZCBpcyBu b3cgZHlpbmdcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZS0+ZG9t YWluX2lkKTsKIApAQCAtMjQ1Myw3ICsyNDc3LDEzIEBAIGdudHRhYl90cmFu c2ZlcigKICAgICAgICAgZ3JhbnRfcmVhZF9sb2NrKGUtPmdyYW50X3RhYmxl KTsKICAgICAgICAgYWN0ID0gYWN0aXZlX2VudHJ5X2FjcXVpcmUoZS0+Z3Jh bnRfdGFibGUsIGdvcC5yZWYpOwogCi0gICAgICAgIGlmICggZXZhbHVhdGVf bm9zcGVjKGUtPmdyYW50X3RhYmxlLT5ndF92ZXJzaW9uID09IDEpICkKKyAg ICAgICAgaWYgKCB1bmxpa2VseShldmFsdWF0ZV9ub3NwZWMoZS0+Z3JhbnRf dGFibGUtPmd0X3ZlcnNpb24gIT0gdmVyKSkgKQorICAgICAgICB7CisgICAg ICAgICAgICByYyA9IC1FSUxTRVE7CisgICAgICAgICAgICBnb3RvIHJlbGVh c2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIGV2YWx1YXRlX25vc3Bl Yyh2ZXIgPT0gMSkgKQogICAgICAgICB7CiAgICAgICAgICAgICBncmFudF9l bnRyeV92MV90ICpzaGEgPSAmc2hhcmVkX2VudHJ5X3YxKGUtPmdyYW50X3Rh YmxlLCBnb3AucmVmKTsKIApAQCAtMjQ3Myw2ICsyNTAzLDcgQEAgZ250dGFi X3RyYW5zZmVyKAogICAgICAgICBzaGFyZWRfZW50cnlfaGVhZGVyKGUtPmdy YW50X3RhYmxlLCBnb3AucmVmKS0+ZmxhZ3MgfD0KICAgICAgICAgICAgIEdU Rl90cmFuc2Zlcl9jb21wbGV0ZWQ7CiAKKyAgICByZWxlYXNlOgogICAgICAg ICBhY3RpdmVfZW50cnlfcmVsZWFzZShhY3QpOwogICAgICAgICBncmFudF9y ZWFkX3VubG9jayhlLT5ncmFudF90YWJsZSk7CiAKQEAgLTI1MDEsMjggKzI1 MzIsMjcgQEAgcmVsZWFzZV9ncmFudF9mb3JfY29weSgKICAgICBzdHJ1Y3Qg ZG9tYWluICpyZCwgZ3JhbnRfcmVmX3QgZ3JlZiwgYm9vbCByZWFkb25seSkK IHsKICAgICBzdHJ1Y3QgZ3JhbnRfdGFibGUgKnJndCA9IHJkLT5ncmFudF90 YWJsZTsKLSAgICBncmFudF9lbnRyeV9oZWFkZXJfdCAqc2hhOwogICAgIHN0 cnVjdCBhY3RpdmVfZ3JhbnRfZW50cnkgKmFjdDsKICAgICBtZm5fdCBtZm47 Ci0gICAgdWludDE2X3QgKnN0YXR1czsKKyAgICB1aW50MTZfdCAqc3RhdHVz ID0gTlVMTDsKICAgICBncmFudF9yZWZfdCB0cmFuc19ncmVmOwogICAgIHN0 cnVjdCBkb21haW4gKnRkOwogCiAgICAgZ3JhbnRfcmVhZF9sb2NrKHJndCk7 CiAKICAgICBhY3QgPSBhY3RpdmVfZW50cnlfYWNxdWlyZShyZ3QsIGdyZWYp OwotICAgIHNoYSA9IHNoYXJlZF9lbnRyeV9oZWFkZXIocmd0LCBncmVmKTsK ICAgICBtZm4gPSBhY3QtPm1mbjsKIAogICAgIGlmICggZXZhbHVhdGVfbm9z cGVjKHJndC0+Z3RfdmVyc2lvbiA9PSAxKSApCiAgICAgewotICAgICAgICBz dGF0dXMgPSAmc2hhLT5mbGFnczsKKyAgICAgICAgc3RhdHVzID0gJnNoYXJl ZF9lbnRyeV92MShyZ3QsIGdyZWYpLmZsYWdzOwogICAgICAgICB0ZCA9IHJk OwogICAgICAgICB0cmFuc19ncmVmID0gZ3JlZjsKICAgICB9CiAgICAgZWxz ZQogICAgIHsKLSAgICAgICAgc3RhdHVzID0gJnN0YXR1c19lbnRyeShyZ3Qs IGdyZWYpOworICAgICAgICBpZiAoIGV2YWx1YXRlX25vc3BlYyhncmVmIDwg bnJfZ3JhbnRfZW50cmllcyhyZ3QpKSApCisgICAgICAgICAgICBzdGF0dXMg PSAmc3RhdHVzX2VudHJ5KHJndCwgZ3JlZik7CiAgICAgICAgIHRkID0gKGFj dC0+c3JjX2RvbWlkID09IHJkLT5kb21haW5faWQpCiAgICAgICAgICAgICAg PyByZCA6IGtub3duYWxpdmVfZG9tYWluX2Zyb21fZG9taWQoYWN0LT5zcmNf ZG9taWQpOwogICAgICAgICB0cmFuc19ncmVmID0gYWN0LT50cmFuc19ncmVm OwpAQCAtMjU0MSw2ICsyNTcxLDkgQEAgcmVsZWFzZV9ncmFudF9mb3JfY29w eSgKIAogICAgIHJlZHVjZV9zdGF0dXNfZm9yX3BpbihyZCwgYWN0LCBzdGF0 dXMsIHJlYWRvbmx5KTsKIAorICAgIGlmICggIWFjdC0+cGluICYmIGFjdC0+ aXNfc3ViX3BhZ2UgKQorICAgICAgICBhdG9taWNfZGVjKCZyZ3QtPm5yX3Yy X29wcyk7CisKICAgICBhY3RpdmVfZW50cnlfcmVsZWFzZShhY3QpOwogICAg IGdyYW50X3JlYWRfdW5sb2NrKHJndCk7CiAKQEAgLTI2NzIsOCArMjcwNSwx MCBAQCBhY3F1aXJlX2dyYW50X2Zvcl9jb3B5KAogCiAgICAgICAgIC8qCiAg ICAgICAgICAqIGFjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoKSB3aWxsIHRha2Ug dGhlIGxvY2sgb24gdGhlIHJlbW90ZSB0YWJsZSwKLSAgICAgICAgICogc28g d2UgaGF2ZSB0byBkcm9wIHRoZSBsb2NrIGhlcmUgYW5kIHJlYWNxdWlyZS4K KyAgICAgICAgICogc28gd2UgaGF2ZSB0byBkcm9wIHRoZSBsb2NrIGhlcmUg YW5kIHJlYWNxdWlyZS4gIEJlZm9yZSBkb2luZyBzbywKKyAgICAgICAgICog cmVjb3JkIHRoYXQgYSB2MiBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MuCiAg ICAgICAgICAqLworICAgICAgICBhdG9taWNfaW5jKCZyZ3QtPm5yX3YyX29w cyk7CiAgICAgICAgIGFjdGl2ZV9lbnRyeV9yZWxlYXNlKGFjdCk7CiAgICAg ICAgIGdyYW50X3JlYWRfdW5sb2NrKHJndCk7CiAKQEAgLTI2ODcsNiArMjcy Miw3IEBAIGFjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoCiAKICAgICAgICAgaWYg KCByYyAhPSBHTlRTVF9va2F5ICkKICAgICAgICAgeworICAgICAgICAgICAg YXRvbWljX2RlYygmcmd0LT5ucl92Ml9vcHMpOwogICAgICAgICAgICAgcmN1 X3VubG9ja19kb21haW4odGQpOwogICAgICAgICAgICAgcmVkdWNlX3N0YXR1 c19mb3JfcGluKHJkLCBhY3QsIHN0YXR1cywgcmVhZG9ubHkpOwogICAgICAg ICAgICAgYWN0aXZlX2VudHJ5X3JlbGVhc2UoYWN0KTsKQEAgLTI3MjMsNiAr Mjc1OSw4IEBAIGFjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoCiAgICAgICAgICAg ICByY3VfdW5sb2NrX2RvbWFpbih0ZCk7CiAKICAgICAgICAgICAgIGdyYW50 X3JlYWRfbG9jayhyZ3QpOworICAgICAgICAgICAgYXRvbWljX2RlYygmcmd0 LT5ucl92Ml9vcHMpOworCiAgICAgICAgICAgICBhY3QgPSBhY3RpdmVfZW50 cnlfYWNxdWlyZShyZ3QsIGdyZWYpOwogICAgICAgICAgICAgcmVkdWNlX3N0 YXR1c19mb3JfcGluKHJkLCBhY3QsIHN0YXR1cywgcmVhZG9ubHkpOwogICAg ICAgICAgICAgYWN0aXZlX2VudHJ5X3JlbGVhc2UoYWN0KTsKQEAgLTI3NDks NiArMjc4Nyw4IEBAIGFjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoCiAgICAgICAg ICAgICAgKi8KICAgICAgICAgICAgIGFjdC0+aXNfc3ViX3BhZ2UgPSB0cnVl OwogICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGF0b21p Y19kZWMoJnJndC0+bnJfdjJfb3BzKTsKICAgICB9CiAgICAgZWxzZSBpZiAo ICFvbGRfcGluIHx8CiAgICAgICAgICAgICAgICghcmVhZG9ubHkgJiYgIShv bGRfcGluICYgKEdOVFBJTl9kZXZ3X21hc2t8R05UUElOX2hzdHdfbWFzaykp KSApCkBAIC0yODAzLDYgKzI4NDMsOSBAQCBhY3F1aXJlX2dyYW50X2Zvcl9j b3B5KAogICAgICAgICAgICAgYWN0LT5zcmNfZG9taWQgPSB0ZC0+ZG9tYWlu X2lkOwogICAgICAgICAgICAgYWN0LT50cmFuc19ncmVmID0gdHJhbnNfZ3Jl ZjsKICAgICAgICAgICAgIGFjdC0+bWZuID0gZ3JhbnRfbWZuOworCisgICAg ICAgICAgICBpZiAoIGlzX3N1Yl9wYWdlICkKKyAgICAgICAgICAgICAgICBh dG9taWNfaW5jKCZyZ3QtPm5yX3YyX29wcyk7CiAgICAgICAgIH0KICAgICAg ICAgZWxzZSBpZiAoICFtZm5fZXEoYWN0LT5tZm4sIGdyYW50X21mbikgfHwK ICAgICAgICAgICAgICAgICAgIGFjdC0+c3JjX2RvbWlkICE9IHRkLT5kb21h aW5faWQgfHwKQEAgLTMyMzIsNyArMzI3NSwxNyBAQCBnbnR0YWJfc2V0X3Zl cnNpb24oWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShnbnR0YWJfc2V0X3ZlcnNp b25fdCkgdW9wKQogICAgICAgICBpZiAoIHJlcyA8IDApCiAgICAgICAgICAg ICBnb3RvIG91dF91bmxvY2s7CiAgICAgICAgIGJyZWFrOworCiAgICAgY2Fz ZSAyOgorICAgICAgICBpZiAoIGF0b21pY19yZWFkKCZndC0+bnJfdjJfb3Bz KSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19X QVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgInRyaWVkIHRvIGNoYW5n ZSB0byBncmFudCB0YWJsZSB2MSwgYnV0ICVkIHYyIG9wZXJhdGlvbnMgc3Rp bGwgaW4gcHJvZ3Jlc3NcbiIsCisgICAgICAgICAgICAgICAgICAgICBhdG9t aWNfcmVhZCgmZ3QtPm5yX3YyX29wcykpOworICAgICAgICAgICAgcmVzID0g LUVBR0FJTjsKKyAgICAgICAgICAgIGdvdG8gb3V0X3VubG9jazsKKyAgICAg ICAgfQorCiAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgR05UVEFCX05SX1JF U0VSVkVEX0VOVFJJRVM7IGkrKyApCiAgICAgICAgIHsKICAgICAgICAgICAg IHN3aXRjaCAoIHNoYXJlZF9lbnRyeV92MihndCwgaSkuaGRyLmZsYWdzICYg R1RGX3R5cGVfbWFzayApCg== --=separator Content-Type: application/octet-stream; name="xsa501-4.17.patch" Content-Disposition: attachment; filename="xsa501-4.17.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGNvcGUgd2l0aCB2ZXJzaW9uIGNoYW5nZXMgcmFjaW5nIG90 aGVyIG9wZXJhdGlvbnMKCkRyb3BwaW5nIGFuZCByZS1hY3F1aXJpbmcgdGhl IGdyYW50IHRhYmxlIGxvY2sgZm9yIGEgcGFydGljdWxhciBvcGVyYXRpb24K cmVxdWlyZXMgc3BlY2lhbCBjYXJlLCBhcyBpbiB0aGUgbWVhbnRpbWUgdGhl IGdyYW50IHRhYmxlIHZlcnNpb24gY2FuCmNoYW5nZS4KCkR1cmluZyBhIHYy IC0+IHYxIGNoYW5nZSwgc3RhdHVzIGZyYW1lcyBnb2luZyBhd2F5IG1lYW5z IHRoYXQgcHJlLQpjYWxjdWxhdGVkIHN0YXR1cyBwb2ludGVycyBnbyBzdGFs ZSwgcmVmZXJlbmNpbmcgZnJlZWQgKGFuZCBwb3NzaWJseQphbHJlYWR5IHJl LXVzZWQpIG1lbW9yeS4gUmVjb3JkIGluLWZsaWdodCB2MiBvcGVyYXRpb25z LCBwZXJtaXR0aW5nIHRoZQp2ZXJzaW9uIGNoYW5nZSBvbmx5IHdoZW4gdGhl cmUgYXJlIG5vbmUgb2YgdGhlbS4gUmVjYWxjdWxhdGUgInN0YXR1cyIgaW4K dGhlIG9uZSBwbGFjZSAobWFwX2dyYW50X3JlZigpJ3MgZXJyb3IgcGF0aCkg d2hlcmUgaXQgY291bGQgYmUgc3RhbGUsIGJ1dApjb25maW5lIHRoaXMgdG8g cmVzZXJ2ZWQgZW50cmllcy4KClRoaXMgaXMgQ1ZFLTIwMjYtNjI0MzYuCgpS ZXBvcnRlZC1ieTogTWFyayBFc2xlciA8bWFya0BoZXhwcm9vZi5kZXY+CgpE dXJpbmcgYSB2MSAtPiB2MiBjaGFuZ2UsIHRoZSBudW1iZXIgb2Ygc2hhcmVk IHRhYmxlIGVudHJpZXMgcmVkdWNlcywKbWVhbmluZyB0aGF0IHByZXZpb3Vz bHkgdmFsaWRhdGVkIGdyYW50IHJlZmVyZW5jZXMgbWF5IG5vdyBiZSBvdXQg b2YKYm91bmRzLiBCZWNhdXNlIG9mIHRoZSBjaGVja2luZyBvZiBwaW4gY291 bnRzIGluIGdudHRhYl9zZXRfdmVyc2lvbigpCih3aXRoIHRoZSBncmFudCB0 YWJsZSBsb2NrIGhlbGQgZm9yIHdyaXRpbmcpLCBmb3Igbm93LW91dC1vZi1i b3VuZHMgZ3JlZi1zCm5laXRoZXIgYWN0aXZlIG1hcHBpbmdzIGNhbiBleGlz dCwgbm9yIGNhbiB0aGVyZSBiZSBpbi1wcm9ncmVzcyBjb3B5Cm9wZXJhdGlv bnMuIE5ldmVydGhlbGVzcyBib3VuZHMgY2hlY2tzIGFyZSBhZGRlZCB0aGVy ZSwganVzdCB0byBiZSBvbiB0aGUKc2FmZSBzaWRlLgoKRm9yIGdudHRhYl90 cmFuc2ZlcigpLCB0byBjb3ZlciB0aGUgZ2FwIGJldHdlZW4gdGhlIGxvY2sg YmVpbmcgZHJvcHBlZCBieQpnbnR0YWJfcHJlcGFyZV9mb3JfdHJhbnNmZXIo KSBhbmQgaXQgYmVpbmcgcmUtYWNxdWlyZWQsIGhhdmUgdGhlIGhlbHBlcgpy ZXR1cm4gdGhlIHZlcnNpb24gaXQgZm91bmQsIGFuZCBmYWlsIHRoZSBvcGVy YXRpb24gaWYgdGhlIHZlcnNpb24gdHVybnMKb3V0IHRvIGhhdmUgY2hhbmdl ZCBhZnRlciByZS1hY3F1aXJpbmcgdGhlIGxvY2suCgpGdXJ0aGVyIGF2b2lk IG5lZWRsZXNzIHVzZSBvZiBzaGFyZWRfZW50cnlfaGVhZGVyKCksIGFzIGl0 IGludm9sdmVzCnBvaW50ZXIgYXJpdGhtZXRpYyB3aGljaCwgd2hlbiB1c2lu ZyBhbiBvdXQtb2YtYm91bmRzIHJlZiwgaXMgVUIuCgpUaGlzIGlzIENWRS0y MDI2LTYyNDM1LgoKRXZlcnl0aGluZyB0b2dldGhlciBpcyBYU0EtNTAxLgoK Rml4ZXM6IGE5OGRjMTM3MDNlMCAoIkludHJvZHVjZSBhIGdyYW50X2VudHJ5 X3YyIHN0cnVjdHVyZSIpClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KVGVzdGVkLWJ5OiBNYXJrIEVzbGVyIDxtYXJr QGhleHByb29mLmRldj4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFu ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CgotLS0gYS94ZW4vY29tbW9uL2dy YW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBA IC03MSw2ICs3MSwxMCBAQCBzdHJ1Y3QgZ3JhbnRfdGFibGUgewogICAgIHVu c2lnbmVkIGludCAgICAgICAgICBucl9ncmFudF9mcmFtZXM7CiAgICAgLyog TnVtYmVyIG9mIGdyYW50IHN0YXR1cyBmcmFtZXMgc2hhcmVkIHdpdGggZ3Vl c3QgKGZvciB2ZXJzaW9uIDIpICovCiAgICAgdW5zaWduZWQgaW50ICAgICAg ICAgIG5yX3N0YXR1c19mcmFtZXM7CisKKyAgICAvKiBOdW1iZXIgb2YgdmVy c2lvbiAyIG9wZXJhdGlvbnMgaW4gcHJvZ3Jlc3MuICovCisgICAgYXRvbWlj X3QgICAgICAgICAgICAgIG5yX3YyX29wczsKKwogICAgIC8qCiAgICAgICog TnVtYmVyIG9mIGF2YWlsYWJsZSBtYXB0cmFjayBlbnRyaWVzLiAgRm9yIGNs ZWFudXAgcHVycG9zZXMgaXQgaXMKICAgICAgKiBpbXBvcnRhbnQgdG8gcmVh bGl6ZSB0aGF0IHRoaXMgZmllbGQgYW5kIEBtYXB0cmFjayBmdXJ0aGVyIGRv d24gd2lsbApAQCAtOTE4LDYgKzkyMiw5IEBAIHN0YXRpYyB2b2lkIHJlZHVj ZV9zdGF0dXNfZm9yX3BpbihzdHJ1Y3QKIHsKICAgICB1bnNpZ25lZCBpbnQg Y2xlYXJfZmxhZ3MgPSBhY3QtPnBpbiA/IDAgOiBHVEZfcmVhZGluZzsKIAor ICAgIGlmICggdW5saWtlbHkoIXN0YXR1cykgKQorICAgICAgICByZXR1cm47 CisKICAgICBpZiAoICFyZWFkb25seSAmJiAhKGFjdC0+cGluICYgKEdOVFBJ Tl9oc3R3X21hc2sgfCBHTlRQSU5fZGV2d19tYXNrKSkgKQogICAgICAgICBj bGVhcl9mbGFncyB8PSBHVEZfd3JpdGluZzsKIApAQCAtMTMxOCw2ICsxMzI1 LDIyIEBAIG1hcF9ncmFudF9yZWYoCiAKICAgICBncmFudF9yZWFkX2xvY2so cmd0KTsKIAorICAgIGlmICggdW5saWtlbHkoZXZhbHVhdGVfbm9zcGVjKChy Z3QtPmd0X3ZlcnNpb24gPT0gMSkgIT0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc3RhdHVzID09ICZzaGFoLT5mbGFncykpKSApCisg ICAgeworICAgICAgICAvKgorICAgICAgICAgKiBBZnRlciBhIHYxIC0+IHYy IGNoYW5nZSBiZWhpbmQgb3VyIGJhY2tzICJyZWYiIG1heSBub3cgYmUgb3V0 IG9mCisgICAgICAgICAqIGJvdW5kcy4gIFJlY2FsY3VsYXRlIGl0LCBidXQg b25seSBmb3IgcmVzZXJ2ZWQgZW50cmllcy4gIE90aGVycworICAgICAgICAg KiB3aWxsIGhhdmUgYmVlbiBjbGVhcmVkIGFueXdheSBieSB0aGUgdmVyc2lv biBjaGFuZ2UuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHJlZiA8IEdO VFRBQl9OUl9SRVNFUlZFRF9FTlRSSUVTICkKKyAgICAgICAgICAgIHN0YXR1 cyA9IGV2YWx1YXRlX25vc3BlYyhyZ3QtPmd0X3ZlcnNpb24gPT0gMSkKKyAg ICAgICAgICAgICAgICAgICAgID8gJnNoYWgtPmZsYWdzCisgICAgICAgICAg ICAgICAgICAgICA6ICZzdGF0dXNfZW50cnkocmd0LCByZWYpOworICAgICAg ICBlbHNlCisgICAgICAgICAgICBzdGF0dXMgPSBOVUxMOworICAgIH0KKwog ICAgIGFjdCA9IGFjdGl2ZV9lbnRyeV9hY3F1aXJlKHJndCwgb3AtPnJlZik7 CiAgICAgYWN0LT5waW4gLT0gcGluX2luY3I7CiAKQEAgLTE1NTcsOSArMTU4 MCw4IEBAIHVubWFwX2NvbW1vbl9jb21wbGV0ZShzdHJ1Y3QgZ250dGFiX3Vu bWEKICAgICBzdHJ1Y3QgZG9tYWluICpsZCwgKnJkID0gb3AtPnJkOwogICAg IHN0cnVjdCBncmFudF90YWJsZSAqcmd0OwogICAgIHN0cnVjdCBhY3RpdmVf Z3JhbnRfZW50cnkgKmFjdDsKLSAgICBncmFudF9lbnRyeV9oZWFkZXJfdCAq c2hhOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwotICAgIHVpbnQxNl90 ICpzdGF0dXM7CisgICAgdWludDE2X3QgKnN0YXR1cyA9IE5VTEw7CiAKICAg ICBpZiAoIGV2YWx1YXRlX25vc3BlYyghb3AtPmRvbmUpICkKICAgICB7CkBA IC0xNTc1LDExICsxNTk3LDEwIEBAIHVubWFwX2NvbW1vbl9jb21wbGV0ZShz dHJ1Y3QgZ250dGFiX3VubWEKICAgICBncmFudF9yZWFkX2xvY2socmd0KTsK IAogICAgIGFjdCA9IGFjdGl2ZV9lbnRyeV9hY3F1aXJlKHJndCwgb3AtPnJl Zik7Ci0gICAgc2hhID0gc2hhcmVkX2VudHJ5X2hlYWRlcihyZ3QsIG9wLT5y ZWYpOwogCiAgICAgaWYgKCBldmFsdWF0ZV9ub3NwZWMocmd0LT5ndF92ZXJz aW9uID09IDEpICkKLSAgICAgICAgc3RhdHVzID0gJnNoYS0+ZmxhZ3M7Ci0g ICAgZWxzZQorICAgICAgICBzdGF0dXMgPSAmc2hhcmVkX2VudHJ5X3YxKHJn dCwgb3AtPnJlZikuZmxhZ3M7CisgICAgZWxzZSBpZiAoIGV2YWx1YXRlX25v c3BlYyhvcC0+cmVmIDwgbnJfZ3JhbnRfZW50cmllcyhyZ3QpKSApCiAgICAg ICAgIHN0YXR1cyA9ICZzdGF0dXNfZW50cnkocmd0LCBvcC0+cmVmKTsKIAog ICAgIHBnID0gIWlzX2lvbWVtX3BhZ2UoYWN0LT5tZm4pID8gbWZuX3RvX3Bh Z2Uob3AtPm1mbikgOiBOVUxMOwpAQCAtMjE2NywxNCArMjE4OCwxNCBAQCBn bnR0YWJfcXVlcnlfc2l6ZSgKICAqIENoZWNrIHRoYXQgdGhlIGdpdmVuIGdy YW50IHJlZmVyZW5jZSAocmQscmVmKSBhbGxvd3MgJ2xkJyB0byB0cmFuc2Zl cgogICogb3duZXJzaGlwIG9mIGEgcGFnZSBmcmFtZS4gSWYgc28sIGxvY2sg ZG93biB0aGUgZ3JhbnQgZW50cnkuCiAgKi8KLXN0YXRpYyBpbnQKK3N0YXRp YyB1bnNpZ25lZCBpbnQKIGdudHRhYl9wcmVwYXJlX2Zvcl90cmFuc2ZlcigK ICAgICBzdHJ1Y3QgZG9tYWluICpyZCwgc3RydWN0IGRvbWFpbiAqbGQsIGdy YW50X3JlZl90IHJlZikKIHsKICAgICBzdHJ1Y3QgZ3JhbnRfdGFibGUgKnJn dCA9IHJkLT5ncmFudF90YWJsZTsKICAgICB1aW50MzJfdCAqcmF3X3NoYWg7 CiAgICAgdW5pb24gZ3JhbnRfY29tYm8gc2NvbWJvOwotICAgIGludCAgICAg ICAgICAgICAgICAgcmV0cmllcyA9IDA7CisgICAgdW5zaWduZWQgaW50IHJl dHJpZXMgPSAwLCB2ZXI7CiAKICAgICBncmFudF9yZWFkX2xvY2socmd0KTsK IApAQCAtMjIxOSw4ICsyMjQwLDExIEBAIGdudHRhYl9wcmVwYXJlX2Zvcl90 cmFuc2ZlcigKICAgICAgICAgc2NvbWJvID0gcHJldjsKICAgICB9CiAKKyAg ICB2ZXIgPSByZ3QtPmd0X3ZlcnNpb247CisKICAgICBncmFudF9yZWFkX3Vu bG9jayhyZ3QpOwotICAgIHJldHVybiAxOworCisgICAgcmV0dXJuIHZlcjsK IAogIGZhaWw6CiAgICAgZ3JhbnRfcmVhZF91bmxvY2socmd0KTsKQEAgLTIy NDUsNyArMjI2OSw3IEBAIGdudHRhYl90cmFuc2ZlcigKIAogICAgIGZvciAo IGkgPSAwOyBpIDwgY291bnQ7IGkrKyApCiAgICAgewotICAgICAgICBib29s X3Qgb2theTsKKyAgICAgICAgdW5zaWduZWQgaW50IHZlcjsKICAgICAgICAg aW50IHJjOwogCiAgICAgICAgIGlmICggaSAmJiBoeXBlcmNhbGxfcHJlZW1w dF9jaGVjaygpICkKQEAgLTIzODUsMTQgKzI0MDksMTQgQEAgZ250dGFiX3Ry YW5zZmVyKAogICAgICAgICAgKiBwYWdlbGlzdC4KICAgICAgICAgICovCiAg ICAgICAgIHNwaW5fdW5sb2NrKCZlLT5wYWdlX2FsbG9jX2xvY2spOwotICAg ICAgICBva2F5ID0gZ250dGFiX3ByZXBhcmVfZm9yX3RyYW5zZmVyKGUsIGQs IGdvcC5yZWYpOworICAgICAgICB2ZXIgPSBnbnR0YWJfcHJlcGFyZV9mb3Jf dHJhbnNmZXIoZSwgZCwgZ29wLnJlZik7CiAKICAgICAgICAgLyoKICAgICAg ICAgICogTWFrZSBzdXJlIHRoZSByZWZlcmVuY2UgYm91bmQgY2hlY2sgaW4g Z250dGFiX3ByZXBhcmVfZm9yX3RyYW5zZmVyCiAgICAgICAgICAqIGlzIHJl c3BlY3RlZCBhbmQgc3BlY3VsYXRpdmUgZXhlY3V0aW9uIGlzIGJsb2NrZWQg YWNjb3JkaW5nbHkKICAgICAgICAgICovCi0gICAgICAgIGlmICggdW5saWtl bHkoIWV2YWx1YXRlX25vc3BlYyhva2F5KSkgfHwKLSAgICAgICAgICAgIHVu bGlrZWx5KGFzc2lnbl9wYWdlcyhwYWdlLCAxLCBlLCBNRU1GX25vX3JlZmNv dW50KSkgKQorICAgICAgICBpZiAoIHVubGlrZWx5KCFldmFsdWF0ZV9ub3Nw ZWModmVyKSkgfHwKKyAgICAgICAgICAgICB1bmxpa2VseShhc3NpZ25fcGFn ZXMocGFnZSwgMSwgZSwgTUVNRl9ub19yZWZjb3VudCkpICkKICAgICAgICAg ewogICAgICAgICAgICAgYm9vbCBkcm9wX2RvbV9yZWY7CiAKQEAgLTI0MDQs NyArMjQyOCw3IEBAIGdudHRhYl90cmFuc2ZlcigKICAgICAgICAgICAgIGRy b3BfZG9tX3JlZiA9ICFkb21haW5fYWRqdXN0X3RvdF9wYWdlcyhlLCAtMSk7 CiAgICAgICAgICAgICBzcGluX3VubG9jaygmZS0+cGFnZV9hbGxvY19sb2Nr KTsKIAotICAgICAgICAgICAgaWYgKCBva2F5IC8qIGkuZS4gZS0+aXNfZHlp bmcgZHVlIHRvIHRoZSBzdXJyb3VuZGluZyBpZigpICovICkKKyAgICAgICAg ICAgIGlmICggdmVyIC8qIGkuZS4gZS0+aXNfZHlpbmcgZHVlIHRvIHRoZSBz dXJyb3VuZGluZyBpZigpICovICkKICAgICAgICAgICAgICAgICBnZHByaW50 ayhYRU5MT0dfSU5GTywgIlRyYW5zZmVyZWUgZCVkIGlzIG5vdyBkeWluZ1xu IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBlLT5kb21haW5faWQpOwog CkBAIC0yNDI0LDcgKzI0NDgsMTMgQEAgZ250dGFiX3RyYW5zZmVyKAogICAg ICAgICBncmFudF9yZWFkX2xvY2soZS0+Z3JhbnRfdGFibGUpOwogICAgICAg ICBhY3QgPSBhY3RpdmVfZW50cnlfYWNxdWlyZShlLT5ncmFudF90YWJsZSwg Z29wLnJlZik7CiAKLSAgICAgICAgaWYgKCBldmFsdWF0ZV9ub3NwZWMoZS0+ Z3JhbnRfdGFibGUtPmd0X3ZlcnNpb24gPT0gMSkgKQorICAgICAgICBpZiAo IHVubGlrZWx5KGV2YWx1YXRlX25vc3BlYyhlLT5ncmFudF90YWJsZS0+Z3Rf dmVyc2lvbiAhPSB2ZXIpKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJj ID0gLUVJTFNFUTsKKyAgICAgICAgICAgIGdvdG8gcmVsZWFzZTsKKyAgICAg ICAgfQorCisgICAgICAgIGlmICggZXZhbHVhdGVfbm9zcGVjKHZlciA9PSAx KSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGdyYW50X2VudHJ5X3YxX3Qg KnNoYSA9ICZzaGFyZWRfZW50cnlfdjEoZS0+Z3JhbnRfdGFibGUsIGdvcC5y ZWYpOwogCkBAIC0yNDQ0LDYgKzI0NzQsNyBAQCBnbnR0YWJfdHJhbnNmZXIo CiAgICAgICAgIHNoYXJlZF9lbnRyeV9oZWFkZXIoZS0+Z3JhbnRfdGFibGUs IGdvcC5yZWYpLT5mbGFncyB8PQogICAgICAgICAgICAgR1RGX3RyYW5zZmVy X2NvbXBsZXRlZDsKIAorICAgIHJlbGVhc2U6CiAgICAgICAgIGFjdGl2ZV9l bnRyeV9yZWxlYXNlKGFjdCk7CiAgICAgICAgIGdyYW50X3JlYWRfdW5sb2Nr KGUtPmdyYW50X3RhYmxlKTsKIApAQCAtMjQ3MiwyOCArMjUwMywyNyBAQCBy ZWxlYXNlX2dyYW50X2Zvcl9jb3B5KAogICAgIHN0cnVjdCBkb21haW4gKnJk LCBncmFudF9yZWZfdCBncmVmLCBib29sIHJlYWRvbmx5KQogewogICAgIHN0 cnVjdCBncmFudF90YWJsZSAqcmd0ID0gcmQtPmdyYW50X3RhYmxlOwotICAg IGdyYW50X2VudHJ5X2hlYWRlcl90ICpzaGE7CiAgICAgc3RydWN0IGFjdGl2 ZV9ncmFudF9lbnRyeSAqYWN0OwogICAgIG1mbl90IG1mbjsKLSAgICB1aW50 MTZfdCAqc3RhdHVzOworICAgIHVpbnQxNl90ICpzdGF0dXMgPSBOVUxMOwog ICAgIGdyYW50X3JlZl90IHRyYW5zX2dyZWY7CiAgICAgc3RydWN0IGRvbWFp biAqdGQ7CiAKICAgICBncmFudF9yZWFkX2xvY2socmd0KTsKIAogICAgIGFj dCA9IGFjdGl2ZV9lbnRyeV9hY3F1aXJlKHJndCwgZ3JlZik7Ci0gICAgc2hh ID0gc2hhcmVkX2VudHJ5X2hlYWRlcihyZ3QsIGdyZWYpOwogICAgIG1mbiA9 IGFjdC0+bWZuOwogCiAgICAgaWYgKCBldmFsdWF0ZV9ub3NwZWMocmd0LT5n dF92ZXJzaW9uID09IDEpICkKICAgICB7Ci0gICAgICAgIHN0YXR1cyA9ICZz aGEtPmZsYWdzOworICAgICAgICBzdGF0dXMgPSAmc2hhcmVkX2VudHJ5X3Yx KHJndCwgZ3JlZikuZmxhZ3M7CiAgICAgICAgIHRkID0gcmQ7CiAgICAgICAg IHRyYW5zX2dyZWYgPSBncmVmOwogICAgIH0KICAgICBlbHNlCiAgICAgewot ICAgICAgICBzdGF0dXMgPSAmc3RhdHVzX2VudHJ5KHJndCwgZ3JlZik7Cisg ICAgICAgIGlmICggZXZhbHVhdGVfbm9zcGVjKGdyZWYgPCBucl9ncmFudF9l bnRyaWVzKHJndCkpICkKKyAgICAgICAgICAgIHN0YXR1cyA9ICZzdGF0dXNf ZW50cnkocmd0LCBncmVmKTsKICAgICAgICAgdGQgPSBhY3QtPnRyYW5zX2Rv bWFpbjsKICAgICAgICAgdHJhbnNfZ3JlZiA9IGFjdC0+dHJhbnNfZ3JlZjsK ICAgICB9CkBAIC0yNTExLDYgKzI1NDEsOSBAQCByZWxlYXNlX2dyYW50X2Zv cl9jb3B5KAogCiAgICAgcmVkdWNlX3N0YXR1c19mb3JfcGluKHJkLCBhY3Qs IHN0YXR1cywgcmVhZG9ubHkpOwogCisgICAgaWYgKCAhYWN0LT5waW4gJiYg YWN0LT5pc19zdWJfcGFnZSApCisgICAgICAgIGF0b21pY19kZWMoJnJndC0+ bnJfdjJfb3BzKTsKKwogICAgIGFjdGl2ZV9lbnRyeV9yZWxlYXNlKGFjdCk7 CiAgICAgZ3JhbnRfcmVhZF91bmxvY2socmd0KTsKIApAQCAtMjYyMyw4ICsy NjU2LDEwIEBAIGFjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoCiAKICAgICAgICAg LyoKICAgICAgICAgICogYWNxdWlyZV9ncmFudF9mb3JfY29weSgpIHdpbGwg dGFrZSB0aGUgbG9jayBvbiB0aGUgcmVtb3RlIHRhYmxlLAotICAgICAgICAg KiBzbyB3ZSBoYXZlIHRvIGRyb3AgdGhlIGxvY2sgaGVyZSBhbmQgcmVhY3F1 aXJlLgorICAgICAgICAgKiBzbyB3ZSBoYXZlIHRvIGRyb3AgdGhlIGxvY2sg aGVyZSBhbmQgcmVhY3F1aXJlLiAgQmVmb3JlIGRvaW5nIHNvLAorICAgICAg ICAgKiByZWNvcmQgdGhhdCBhIHYyIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVz cy4KICAgICAgICAgICovCisgICAgICAgIGF0b21pY19pbmMoJnJndC0+bnJf djJfb3BzKTsKICAgICAgICAgYWN0aXZlX2VudHJ5X3JlbGVhc2UoYWN0KTsK ICAgICAgICAgZ3JhbnRfcmVhZF91bmxvY2socmd0KTsKIApAQCAtMjYzOCw2 ICsyNjczLDcgQEAgYWNxdWlyZV9ncmFudF9mb3JfY29weSgKIAogICAgICAg ICBpZiAoIHJjICE9IEdOVFNUX29rYXkgKQogICAgICAgICB7CisgICAgICAg ICAgICBhdG9taWNfZGVjKCZyZ3QtPm5yX3YyX29wcyk7CiAgICAgICAgICAg ICByY3VfdW5sb2NrX2RvbWFpbih0ZCk7CiAgICAgICAgICAgICByZWR1Y2Vf c3RhdHVzX2Zvcl9waW4ocmQsIGFjdCwgc3RhdHVzLCByZWFkb25seSk7CiAg ICAgICAgICAgICBhY3RpdmVfZW50cnlfcmVsZWFzZShhY3QpOwpAQCAtMjY3 NCw2ICsyNzEwLDggQEAgYWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAgICAg ICAgICAgIHJjdV91bmxvY2tfZG9tYWluKHRkKTsKIAogICAgICAgICAgICAg Z3JhbnRfcmVhZF9sb2NrKHJndCk7CisgICAgICAgICAgICBhdG9taWNfZGVj KCZyZ3QtPm5yX3YyX29wcyk7CisKICAgICAgICAgICAgIGFjdCA9IGFjdGl2 ZV9lbnRyeV9hY3F1aXJlKHJndCwgZ3JlZik7CiAgICAgICAgICAgICByZWR1 Y2Vfc3RhdHVzX2Zvcl9waW4ocmQsIGFjdCwgc3RhdHVzLCByZWFkb25seSk7 CiAgICAgICAgICAgICBhY3RpdmVfZW50cnlfcmVsZWFzZShhY3QpOwpAQCAt MjcwMCw2ICsyNzM4LDggQEAgYWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAg ICAgICAgICAgICAqLwogICAgICAgICAgICAgYWN0LT5pc19zdWJfcGFnZSA9 IHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAg YXRvbWljX2RlYygmcmd0LT5ucl92Ml9vcHMpOwogICAgIH0KICAgICBlbHNl IGlmICggIW9sZF9waW4gfHwKICAgICAgICAgICAgICAgKCFyZWFkb25seSAm JiAhKG9sZF9waW4gJiAoR05UUElOX2RldndfbWFza3xHTlRQSU5faHN0d19t YXNrKSkpICkKQEAgLTI3NTQsNiArMjc5NCw5IEBAIGFjcXVpcmVfZ3JhbnRf Zm9yX2NvcHkoCiAgICAgICAgICAgICBhY3QtPnRyYW5zX2RvbWFpbiA9IHRk OwogICAgICAgICAgICAgYWN0LT50cmFuc19ncmVmID0gdHJhbnNfZ3JlZjsK ICAgICAgICAgICAgIGFjdC0+bWZuID0gZ3JhbnRfbWZuOworCisgICAgICAg ICAgICBpZiAoIGlzX3N1Yl9wYWdlICkKKyAgICAgICAgICAgICAgICBhdG9t aWNfaW5jKCZyZ3QtPm5yX3YyX29wcyk7CiAgICAgICAgIH0KICAgICAgICAg ZWxzZSBpZiAoICFtZm5fZXEoYWN0LT5tZm4sIGdyYW50X21mbikgfHwKICAg ICAgICAgICAgICAgICAgIGFjdC0+dHJhbnNfZG9tYWluICE9IHRkIHx8CkBA IC0zMTczLDcgKzMyMTYsMTcgQEAgZ250dGFiX3NldF92ZXJzaW9uKFhFTl9H VUVTVF9IQU5ETEVfUEFSQQogICAgICAgICBpZiAoIHJlcyA8IDApCiAgICAg ICAgICAgICBnb3RvIG91dF91bmxvY2s7CiAgICAgICAgIGJyZWFrOworCiAg ICAgY2FzZSAyOgorICAgICAgICBpZiAoIGF0b21pY19yZWFkKCZndC0+bnJf djJfb3BzKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGdkcHJpbnRrKFhF TkxPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgInRyaWVkIHRv IGNoYW5nZSB0byBncmFudCB0YWJsZSB2MSwgYnV0ICVkIHYyIG9wZXJhdGlv bnMgc3RpbGwgaW4gcHJvZ3Jlc3NcbiIsCisgICAgICAgICAgICAgICAgICAg ICBhdG9taWNfcmVhZCgmZ3QtPm5yX3YyX29wcykpOworICAgICAgICAgICAg cmVzID0gLUVBR0FJTjsKKyAgICAgICAgICAgIGdvdG8gb3V0X3VubG9jazsK KyAgICAgICAgfQorCiAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgR05UVEFC X05SX1JFU0VSVkVEX0VOVFJJRVM7IGkrKyApCiAgICAgICAgIHsKICAgICAg ICAgICAgIHN3aXRjaCAoIHNoYXJlZF9lbnRyeV92MihndCwgaSkuaGRyLmZs YWdzICYgR1RGX3R5cGVfbWFzayApCg== --=separator Content-Type: application/octet-stream; name="xsa501-4.18.patch" Content-Disposition: attachment; filename="xsa501-4.18.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBnbnR0YWI6IGNvcGUgd2l0aCB2ZXJzaW9uIGNoYW5nZXMgcmFjaW5nIG90 aGVyIG9wZXJhdGlvbnMKCkRyb3BwaW5nIGFuZCByZS1hY3F1aXJpbmcgdGhl IGdyYW50IHRhYmxlIGxvY2sgZm9yIGEgcGFydGljdWxhciBvcGVyYXRpb24K cmVxdWlyZXMgc3BlY2lhbCBjYXJlLCBhcyBpbiB0aGUgbWVhbnRpbWUgdGhl IGdyYW50IHRhYmxlIHZlcnNpb24gY2FuCmNoYW5nZS4KCkR1cmluZyBhIHYy IC0+IHYxIGNoYW5nZSwgc3RhdHVzIGZyYW1lcyBnb2luZyBhd2F5IG1lYW5z IHRoYXQgcHJlLQpjYWxjdWxhdGVkIHN0YXR1cyBwb2ludGVycyBnbyBzdGFs ZSwgcmVmZXJlbmNpbmcgZnJlZWQgKGFuZCBwb3NzaWJseQphbHJlYWR5IHJl LXVzZWQpIG1lbW9yeS4gUmVjb3JkIGluLWZsaWdodCB2MiBvcGVyYXRpb25z LCBwZXJtaXR0aW5nIHRoZQp2ZXJzaW9uIGNoYW5nZSBvbmx5IHdoZW4gdGhl cmUgYXJlIG5vbmUgb2YgdGhlbS4gUmVjYWxjdWxhdGUgInN0YXR1cyIgaW4K dGhlIG9uZSBwbGFjZSAobWFwX2dyYW50X3JlZigpJ3MgZXJyb3IgcGF0aCkg d2hlcmUgaXQgY291bGQgYmUgc3RhbGUsIGJ1dApjb25maW5lIHRoaXMgdG8g cmVzZXJ2ZWQgZW50cmllcy4KClRoaXMgaXMgQ1ZFLTIwMjYtNjI0MzYuCgpS ZXBvcnRlZC1ieTogTWFyayBFc2xlciA8bWFya0BoZXhwcm9vZi5kZXY+CgpE dXJpbmcgYSB2MSAtPiB2MiBjaGFuZ2UsIHRoZSBudW1iZXIgb2Ygc2hhcmVk IHRhYmxlIGVudHJpZXMgcmVkdWNlcywKbWVhbmluZyB0aGF0IHByZXZpb3Vz bHkgdmFsaWRhdGVkIGdyYW50IHJlZmVyZW5jZXMgbWF5IG5vdyBiZSBvdXQg b2YKYm91bmRzLiBCZWNhdXNlIG9mIHRoZSBjaGVja2luZyBvZiBwaW4gY291 bnRzIGluIGdudHRhYl9zZXRfdmVyc2lvbigpCih3aXRoIHRoZSBncmFudCB0 YWJsZSBsb2NrIGhlbGQgZm9yIHdyaXRpbmcpLCBmb3Igbm93LW91dC1vZi1i b3VuZHMgZ3JlZi1zCm5laXRoZXIgYWN0aXZlIG1hcHBpbmdzIGNhbiBleGlz dCwgbm9yIGNhbiB0aGVyZSBiZSBpbi1wcm9ncmVzcyBjb3B5Cm9wZXJhdGlv bnMuIE5ldmVydGhlbGVzcyBib3VuZHMgY2hlY2tzIGFyZSBhZGRlZCB0aGVy ZSwganVzdCB0byBiZSBvbiB0aGUKc2FmZSBzaWRlLgoKRm9yIGdudHRhYl90 cmFuc2ZlcigpLCB0byBjb3ZlciB0aGUgZ2FwIGJldHdlZW4gdGhlIGxvY2sg YmVpbmcgZHJvcHBlZCBieQpnbnR0YWJfcHJlcGFyZV9mb3JfdHJhbnNmZXIo KSBhbmQgaXQgYmVpbmcgcmUtYWNxdWlyZWQsIGhhdmUgdGhlIGhlbHBlcgpy ZXR1cm4gdGhlIHZlcnNpb24gaXQgZm91bmQsIGFuZCBmYWlsIHRoZSBvcGVy YXRpb24gaWYgdGhlIHZlcnNpb24gdHVybnMKb3V0IHRvIGhhdmUgY2hhbmdl ZCBhZnRlciByZS1hY3F1aXJpbmcgdGhlIGxvY2suCgpGdXJ0aGVyIGF2b2lk IG5lZWRsZXNzIHVzZSBvZiBzaGFyZWRfZW50cnlfaGVhZGVyKCksIGFzIGl0 IGludm9sdmVzCnBvaW50ZXIgYXJpdGhtZXRpYyB3aGljaCwgd2hlbiB1c2lu ZyBhbiBvdXQtb2YtYm91bmRzIHJlZiwgaXMgVUIuCgpUaGlzIGlzIENWRS0y MDI2LTYyNDM1LgoKRXZlcnl0aGluZyB0b2dldGhlciBpcyBYU0EtNTAxLgoK Rml4ZXM6IGE5OGRjMTM3MDNlMCAoIkludHJvZHVjZSBhIGdyYW50X2VudHJ5 X3YyIHN0cnVjdHVyZSIpClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KVGVzdGVkLWJ5OiBNYXJrIEVzbGVyIDxtYXJr QGhleHByb29mLmRldj4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFu ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CgotLS0gYS94ZW4vY29tbW9uL2dy YW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBA IC03MSw2ICs3MSwxMCBAQCBzdHJ1Y3QgZ3JhbnRfdGFibGUgewogICAgIHVu c2lnbmVkIGludCAgICAgICAgICBucl9ncmFudF9mcmFtZXM7CiAgICAgLyog TnVtYmVyIG9mIGdyYW50IHN0YXR1cyBmcmFtZXMgc2hhcmVkIHdpdGggZ3Vl c3QgKGZvciB2ZXJzaW9uIDIpICovCiAgICAgdW5zaWduZWQgaW50ICAgICAg ICAgIG5yX3N0YXR1c19mcmFtZXM7CisKKyAgICAvKiBOdW1iZXIgb2YgdmVy c2lvbiAyIG9wZXJhdGlvbnMgaW4gcHJvZ3Jlc3MuICovCisgICAgYXRvbWlj X3QgICAgICAgICAgICAgIG5yX3YyX29wczsKKwogICAgIC8qCiAgICAgICog TnVtYmVyIG9mIGF2YWlsYWJsZSBtYXB0cmFjayBlbnRyaWVzLiAgRm9yIGNs ZWFudXAgcHVycG9zZXMgaXQgaXMKICAgICAgKiBpbXBvcnRhbnQgdG8gcmVh bGl6ZSB0aGF0IHRoaXMgZmllbGQgYW5kIEBtYXB0cmFjayBmdXJ0aGVyIGRv d24gd2lsbApAQCAtOTMzLDYgKzkzNyw5IEBAIHN0YXRpYyB2b2lkIHJlZHVj ZV9zdGF0dXNfZm9yX3BpbihzdHJ1Y3QKIHsKICAgICB1bnNpZ25lZCBpbnQg Y2xlYXJfZmxhZ3MgPSBhY3QtPnBpbiA/IDAgOiBHVEZfcmVhZGluZzsKIAor ICAgIGlmICggdW5saWtlbHkoIXN0YXR1cykgKQorICAgICAgICByZXR1cm47 CisKICAgICBpZiAoICFyZWFkb25seSAmJiAhKGFjdC0+cGluICYgKEdOVFBJ Tl9oc3R3X21hc2sgfCBHTlRQSU5fZGV2d19tYXNrKSkgKQogICAgICAgICBj bGVhcl9mbGFncyB8PSBHVEZfd3JpdGluZzsKIApAQCAtMTM0MSw2ICsxMzQ4 LDIyIEBAIG1hcF9ncmFudF9yZWYoCiAKICAgICBncmFudF9yZWFkX2xvY2so cmd0KTsKIAorICAgIGlmICggdW5saWtlbHkoZXZhbHVhdGVfbm9zcGVjKChy Z3QtPmd0X3ZlcnNpb24gPT0gMSkgIT0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc3RhdHVzID09ICZzaGFoLT5mbGFncykpKSApCisg ICAgeworICAgICAgICAvKgorICAgICAgICAgKiBBZnRlciBhIHYxIC0+IHYy IGNoYW5nZSBiZWhpbmQgb3VyIGJhY2tzICJyZWYiIG1heSBub3cgYmUgb3V0 IG9mCisgICAgICAgICAqIGJvdW5kcy4gIFJlY2FsY3VsYXRlIGl0LCBidXQg b25seSBmb3IgcmVzZXJ2ZWQgZW50cmllcy4gIE90aGVycworICAgICAgICAg KiB3aWxsIGhhdmUgYmVlbiBjbGVhcmVkIGFueXdheSBieSB0aGUgdmVyc2lv biBjaGFuZ2UuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHJlZiA8IEdO VFRBQl9OUl9SRVNFUlZFRF9FTlRSSUVTICkKKyAgICAgICAgICAgIHN0YXR1 cyA9IGV2YWx1YXRlX25vc3BlYyhyZ3QtPmd0X3ZlcnNpb24gPT0gMSkKKyAg ICAgICAgICAgICAgICAgICAgID8gJnNoYWgtPmZsYWdzCisgICAgICAgICAg ICAgICAgICAgICA6ICZzdGF0dXNfZW50cnkocmd0LCByZWYpOworICAgICAg ICBlbHNlCisgICAgICAgICAgICBzdGF0dXMgPSBOVUxMOworICAgIH0KKwog ICAgIGFjdCA9IGFjdGl2ZV9lbnRyeV9hY3F1aXJlKHJndCwgb3AtPnJlZik7 CiAgICAgYWN0LT5waW4gLT0gcGluX2luY3I7CiAKQEAgLTE1ODQsOSArMTYw Nyw4IEBAIHVubWFwX2NvbW1vbl9jb21wbGV0ZShzdHJ1Y3QgZ250dGFiX3Vu bWEKICAgICBzdHJ1Y3QgZG9tYWluICpsZCwgKnJkID0gb3AtPnJkOwogICAg IHN0cnVjdCBncmFudF90YWJsZSAqcmd0OwogICAgIHN0cnVjdCBhY3RpdmVf Z3JhbnRfZW50cnkgKmFjdDsKLSAgICBncmFudF9lbnRyeV9oZWFkZXJfdCAq c2hhOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwotICAgIHVpbnQxNl90 ICpzdGF0dXM7CisgICAgdWludDE2X3QgKnN0YXR1cyA9IE5VTEw7CiAKICAg ICBpZiAoIGV2YWx1YXRlX25vc3BlYyghb3AtPmRvbmUpICkKICAgICB7CkBA IC0xNjAyLDExICsxNjI0LDEwIEBAIHVubWFwX2NvbW1vbl9jb21wbGV0ZShz dHJ1Y3QgZ250dGFiX3VubWEKICAgICBncmFudF9yZWFkX2xvY2socmd0KTsK IAogICAgIGFjdCA9IGFjdGl2ZV9lbnRyeV9hY3F1aXJlKHJndCwgb3AtPnJl Zik7Ci0gICAgc2hhID0gc2hhcmVkX2VudHJ5X2hlYWRlcihyZ3QsIG9wLT5y ZWYpOwogCiAgICAgaWYgKCBldmFsdWF0ZV9ub3NwZWMocmd0LT5ndF92ZXJz aW9uID09IDEpICkKLSAgICAgICAgc3RhdHVzID0gJnNoYS0+ZmxhZ3M7Ci0g ICAgZWxzZQorICAgICAgICBzdGF0dXMgPSAmc2hhcmVkX2VudHJ5X3YxKHJn dCwgb3AtPnJlZikuZmxhZ3M7CisgICAgZWxzZSBpZiAoIGV2YWx1YXRlX25v c3BlYyhvcC0+cmVmIDwgbnJfZ3JhbnRfZW50cmllcyhyZ3QpKSApCiAgICAg ICAgIHN0YXR1cyA9ICZzdGF0dXNfZW50cnkocmd0LCBvcC0+cmVmKTsKIAog ICAgIHBnID0gIWlzX2lvbWVtX3BhZ2UoYWN0LT5tZm4pID8gbWZuX3RvX3Bh Z2Uob3AtPm1mbikgOiBOVUxMOwpAQCAtMjE5NCwxNCArMjIxNSwxNCBAQCBn bnR0YWJfcXVlcnlfc2l6ZSgKICAqIENoZWNrIHRoYXQgdGhlIGdpdmVuIGdy YW50IHJlZmVyZW5jZSAocmQscmVmKSBhbGxvd3MgJ2xkJyB0byB0cmFuc2Zl cgogICogb3duZXJzaGlwIG9mIGEgcGFnZSBmcmFtZS4gSWYgc28sIGxvY2sg ZG93biB0aGUgZ3JhbnQgZW50cnkuCiAgKi8KLXN0YXRpYyBpbnQKK3N0YXRp YyB1bnNpZ25lZCBpbnQKIGdudHRhYl9wcmVwYXJlX2Zvcl90cmFuc2ZlcigK ICAgICBzdHJ1Y3QgZG9tYWluICpyZCwgc3RydWN0IGRvbWFpbiAqbGQsIGdy YW50X3JlZl90IHJlZikKIHsKICAgICBzdHJ1Y3QgZ3JhbnRfdGFibGUgKnJn dCA9IHJkLT5ncmFudF90YWJsZTsKICAgICB1aW50MzJfdCAqcmF3X3NoYWg7 CiAgICAgdW5pb24gZ3JhbnRfY29tYm8gc2NvbWJvOwotICAgIGludCAgICAg ICAgICAgICAgICAgcmV0cmllcyA9IDA7CisgICAgdW5zaWduZWQgaW50IHJl dHJpZXMgPSAwLCB2ZXI7CiAKICAgICBncmFudF9yZWFkX2xvY2socmd0KTsK IApAQCAtMjI0Niw4ICsyMjY3LDExIEBAIGdudHRhYl9wcmVwYXJlX2Zvcl90 cmFuc2ZlcigKICAgICAgICAgc2NvbWJvID0gcHJldjsKICAgICB9CiAKKyAg ICB2ZXIgPSByZ3QtPmd0X3ZlcnNpb247CisKICAgICBncmFudF9yZWFkX3Vu bG9jayhyZ3QpOwotICAgIHJldHVybiAxOworCisgICAgcmV0dXJuIHZlcjsK IAogIGZhaWw6CiAgICAgZ3JhbnRfcmVhZF91bmxvY2socmd0KTsKQEAgLTIy NzIsNyArMjI5Niw3IEBAIGdudHRhYl90cmFuc2ZlcigKIAogICAgIGZvciAo IGkgPSAwOyBpIDwgY291bnQ7IGkrKyApCiAgICAgewotICAgICAgICBib29s X3Qgb2theTsKKyAgICAgICAgdW5zaWduZWQgaW50IHZlcjsKICAgICAgICAg aW50IHJjOwogCiAgICAgICAgIGlmICggaSAmJiBoeXBlcmNhbGxfcHJlZW1w dF9jaGVjaygpICkKQEAgLTI0MTIsMTQgKzI0MzYsMTQgQEAgZ250dGFiX3Ry YW5zZmVyKAogICAgICAgICAgKiBwYWdlbGlzdC4KICAgICAgICAgICovCiAg ICAgICAgIHNwaW5fdW5sb2NrKCZlLT5wYWdlX2FsbG9jX2xvY2spOwotICAg ICAgICBva2F5ID0gZ250dGFiX3ByZXBhcmVfZm9yX3RyYW5zZmVyKGUsIGQs IGdvcC5yZWYpOworICAgICAgICB2ZXIgPSBnbnR0YWJfcHJlcGFyZV9mb3Jf dHJhbnNmZXIoZSwgZCwgZ29wLnJlZik7CiAKICAgICAgICAgLyoKICAgICAg ICAgICogTWFrZSBzdXJlIHRoZSByZWZlcmVuY2UgYm91bmQgY2hlY2sgaW4g Z250dGFiX3ByZXBhcmVfZm9yX3RyYW5zZmVyCiAgICAgICAgICAqIGlzIHJl c3BlY3RlZCBhbmQgc3BlY3VsYXRpdmUgZXhlY3V0aW9uIGlzIGJsb2NrZWQg YWNjb3JkaW5nbHkKICAgICAgICAgICovCi0gICAgICAgIGlmICggdW5saWtl bHkoIWV2YWx1YXRlX25vc3BlYyhva2F5KSkgfHwKLSAgICAgICAgICAgIHVu bGlrZWx5KGFzc2lnbl9wYWdlcyhwYWdlLCAxLCBlLCBNRU1GX25vX3JlZmNv dW50KSkgKQorICAgICAgICBpZiAoIHVubGlrZWx5KCFldmFsdWF0ZV9ub3Nw ZWModmVyKSkgfHwKKyAgICAgICAgICAgICB1bmxpa2VseShhc3NpZ25fcGFn ZXMocGFnZSwgMSwgZSwgTUVNRl9ub19yZWZjb3VudCkpICkKICAgICAgICAg ewogICAgICAgICAgICAgYm9vbCBkcm9wX2RvbV9yZWY7CiAKQEAgLTI0MzEs NyArMjQ1NSw3IEBAIGdudHRhYl90cmFuc2ZlcigKICAgICAgICAgICAgIGRy b3BfZG9tX3JlZiA9ICFkb21haW5fYWRqdXN0X3RvdF9wYWdlcyhlLCAtMSk7 CiAgICAgICAgICAgICBzcGluX3VubG9jaygmZS0+cGFnZV9hbGxvY19sb2Nr KTsKIAotICAgICAgICAgICAgaWYgKCBva2F5IC8qIGkuZS4gZS0+aXNfZHlp bmcgZHVlIHRvIHRoZSBzdXJyb3VuZGluZyBpZigpICovICkKKyAgICAgICAg ICAgIGlmICggdmVyIC8qIGkuZS4gZS0+aXNfZHlpbmcgZHVlIHRvIHRoZSBz dXJyb3VuZGluZyBpZigpICovICkKICAgICAgICAgICAgICAgICBnZHByaW50 ayhYRU5MT0dfSU5GTywgIlRyYW5zZmVyZWUgZCVkIGlzIG5vdyBkeWluZ1xu IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBlLT5kb21haW5faWQpOwog CkBAIC0yNDUxLDcgKzI0NzUsMTMgQEAgZ250dGFiX3RyYW5zZmVyKAogICAg ICAgICBncmFudF9yZWFkX2xvY2soZS0+Z3JhbnRfdGFibGUpOwogICAgICAg ICBhY3QgPSBhY3RpdmVfZW50cnlfYWNxdWlyZShlLT5ncmFudF90YWJsZSwg Z29wLnJlZik7CiAKLSAgICAgICAgaWYgKCBldmFsdWF0ZV9ub3NwZWMoZS0+ Z3JhbnRfdGFibGUtPmd0X3ZlcnNpb24gPT0gMSkgKQorICAgICAgICBpZiAo IHVubGlrZWx5KGV2YWx1YXRlX25vc3BlYyhlLT5ncmFudF90YWJsZS0+Z3Rf dmVyc2lvbiAhPSB2ZXIpKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJj ID0gLUVJTFNFUTsKKyAgICAgICAgICAgIGdvdG8gcmVsZWFzZTsKKyAgICAg ICAgfQorCisgICAgICAgIGlmICggZXZhbHVhdGVfbm9zcGVjKHZlciA9PSAx KSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGdyYW50X2VudHJ5X3YxX3Qg KnNoYSA9ICZzaGFyZWRfZW50cnlfdjEoZS0+Z3JhbnRfdGFibGUsIGdvcC5y ZWYpOwogCkBAIC0yNDcxLDYgKzI1MDEsNyBAQCBnbnR0YWJfdHJhbnNmZXIo CiAgICAgICAgIHNoYXJlZF9lbnRyeV9oZWFkZXIoZS0+Z3JhbnRfdGFibGUs IGdvcC5yZWYpLT5mbGFncyB8PQogICAgICAgICAgICAgR1RGX3RyYW5zZmVy X2NvbXBsZXRlZDsKIAorICAgIHJlbGVhc2U6CiAgICAgICAgIGFjdGl2ZV9l bnRyeV9yZWxlYXNlKGFjdCk7CiAgICAgICAgIGdyYW50X3JlYWRfdW5sb2Nr KGUtPmdyYW50X3RhYmxlKTsKIApAQCAtMjQ5OSwyOCArMjUzMCwyNyBAQCBy ZWxlYXNlX2dyYW50X2Zvcl9jb3B5KAogICAgIHN0cnVjdCBkb21haW4gKnJk LCBncmFudF9yZWZfdCBncmVmLCBib29sIHJlYWRvbmx5KQogewogICAgIHN0 cnVjdCBncmFudF90YWJsZSAqcmd0ID0gcmQtPmdyYW50X3RhYmxlOwotICAg IGdyYW50X2VudHJ5X2hlYWRlcl90ICpzaGE7CiAgICAgc3RydWN0IGFjdGl2 ZV9ncmFudF9lbnRyeSAqYWN0OwogICAgIG1mbl90IG1mbjsKLSAgICB1aW50 MTZfdCAqc3RhdHVzOworICAgIHVpbnQxNl90ICpzdGF0dXMgPSBOVUxMOwog ICAgIGdyYW50X3JlZl90IHRyYW5zX2dyZWY7CiAgICAgc3RydWN0IGRvbWFp biAqdGQ7CiAKICAgICBncmFudF9yZWFkX2xvY2socmd0KTsKIAogICAgIGFj dCA9IGFjdGl2ZV9lbnRyeV9hY3F1aXJlKHJndCwgZ3JlZik7Ci0gICAgc2hh ID0gc2hhcmVkX2VudHJ5X2hlYWRlcihyZ3QsIGdyZWYpOwogICAgIG1mbiA9 IGFjdC0+bWZuOwogCiAgICAgaWYgKCBldmFsdWF0ZV9ub3NwZWMocmd0LT5n dF92ZXJzaW9uID09IDEpICkKICAgICB7Ci0gICAgICAgIHN0YXR1cyA9ICZz aGEtPmZsYWdzOworICAgICAgICBzdGF0dXMgPSAmc2hhcmVkX2VudHJ5X3Yx KHJndCwgZ3JlZikuZmxhZ3M7CiAgICAgICAgIHRkID0gcmQ7CiAgICAgICAg IHRyYW5zX2dyZWYgPSBncmVmOwogICAgIH0KICAgICBlbHNlCiAgICAgewot ICAgICAgICBzdGF0dXMgPSAmc3RhdHVzX2VudHJ5KHJndCwgZ3JlZik7Cisg ICAgICAgIGlmICggZXZhbHVhdGVfbm9zcGVjKGdyZWYgPCBucl9ncmFudF9l bnRyaWVzKHJndCkpICkKKyAgICAgICAgICAgIHN0YXR1cyA9ICZzdGF0dXNf ZW50cnkocmd0LCBncmVmKTsKICAgICAgICAgdGQgPSAoYWN0LT5zcmNfZG9t aWQgPT0gcmQtPmRvbWFpbl9pZCkKICAgICAgICAgICAgICA/IHJkIDoga25v d25hbGl2ZV9kb21haW5fZnJvbV9kb21pZChhY3QtPnNyY19kb21pZCk7CiAg ICAgICAgIHRyYW5zX2dyZWYgPSBhY3QtPnRyYW5zX2dyZWY7CkBAIC0yNTM5 LDYgKzI1NjksOSBAQCByZWxlYXNlX2dyYW50X2Zvcl9jb3B5KAogCiAgICAg cmVkdWNlX3N0YXR1c19mb3JfcGluKHJkLCBhY3QsIHN0YXR1cywgcmVhZG9u bHkpOwogCisgICAgaWYgKCAhYWN0LT5waW4gJiYgYWN0LT5pc19zdWJfcGFn ZSApCisgICAgICAgIGF0b21pY19kZWMoJnJndC0+bnJfdjJfb3BzKTsKKwog ICAgIGFjdGl2ZV9lbnRyeV9yZWxlYXNlKGFjdCk7CiAgICAgZ3JhbnRfcmVh ZF91bmxvY2socmd0KTsKIApAQCAtMjY3MCw4ICsyNzAzLDEwIEBAIGFjcXVp cmVfZ3JhbnRfZm9yX2NvcHkoCiAKICAgICAgICAgLyoKICAgICAgICAgICog YWNxdWlyZV9ncmFudF9mb3JfY29weSgpIHdpbGwgdGFrZSB0aGUgbG9jayBv biB0aGUgcmVtb3RlIHRhYmxlLAotICAgICAgICAgKiBzbyB3ZSBoYXZlIHRv IGRyb3AgdGhlIGxvY2sgaGVyZSBhbmQgcmVhY3F1aXJlLgorICAgICAgICAg KiBzbyB3ZSBoYXZlIHRvIGRyb3AgdGhlIGxvY2sgaGVyZSBhbmQgcmVhY3F1 aXJlLiAgQmVmb3JlIGRvaW5nIHNvLAorICAgICAgICAgKiByZWNvcmQgdGhh dCBhIHYyIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVzcy4KICAgICAgICAgICov CisgICAgICAgIGF0b21pY19pbmMoJnJndC0+bnJfdjJfb3BzKTsKICAgICAg ICAgYWN0aXZlX2VudHJ5X3JlbGVhc2UoYWN0KTsKICAgICAgICAgZ3JhbnRf cmVhZF91bmxvY2socmd0KTsKIApAQCAtMjY4NSw2ICsyNzIwLDcgQEAgYWNx dWlyZV9ncmFudF9mb3JfY29weSgKIAogICAgICAgICBpZiAoIHJjICE9IEdO VFNUX29rYXkgKQogICAgICAgICB7CisgICAgICAgICAgICBhdG9taWNfZGVj KCZyZ3QtPm5yX3YyX29wcyk7CiAgICAgICAgICAgICByY3VfdW5sb2NrX2Rv bWFpbih0ZCk7CiAgICAgICAgICAgICByZWR1Y2Vfc3RhdHVzX2Zvcl9waW4o cmQsIGFjdCwgc3RhdHVzLCByZWFkb25seSk7CiAgICAgICAgICAgICBhY3Rp dmVfZW50cnlfcmVsZWFzZShhY3QpOwpAQCAtMjcyMSw2ICsyNzU3LDggQEAg YWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAgICAgICAgICAgIHJjdV91bmxv Y2tfZG9tYWluKHRkKTsKIAogICAgICAgICAgICAgZ3JhbnRfcmVhZF9sb2Nr KHJndCk7CisgICAgICAgICAgICBhdG9taWNfZGVjKCZyZ3QtPm5yX3YyX29w cyk7CisKICAgICAgICAgICAgIGFjdCA9IGFjdGl2ZV9lbnRyeV9hY3F1aXJl KHJndCwgZ3JlZik7CiAgICAgICAgICAgICByZWR1Y2Vfc3RhdHVzX2Zvcl9w aW4ocmQsIGFjdCwgc3RhdHVzLCByZWFkb25seSk7CiAgICAgICAgICAgICBh Y3RpdmVfZW50cnlfcmVsZWFzZShhY3QpOwpAQCAtMjc0Nyw2ICsyNzg1LDgg QEAgYWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAgICAgICAgICAgICAqLwog ICAgICAgICAgICAgYWN0LT5pc19zdWJfcGFnZSA9IHRydWU7CiAgICAgICAg IH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXRvbWljX2RlYygmcmd0 LT5ucl92Ml9vcHMpOwogICAgIH0KICAgICBlbHNlIGlmICggIW9sZF9waW4g fHwKICAgICAgICAgICAgICAgKCFyZWFkb25seSAmJiAhKG9sZF9waW4gJiAo R05UUElOX2RldndfbWFza3xHTlRQSU5faHN0d19tYXNrKSkpICkKQEAgLTI4 MDEsNiArMjg0MSw5IEBAIGFjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoCiAgICAg ICAgICAgICBhY3QtPnNyY19kb21pZCA9IHRkLT5kb21haW5faWQ7CiAgICAg ICAgICAgICBhY3QtPnRyYW5zX2dyZWYgPSB0cmFuc19ncmVmOwogICAgICAg ICAgICAgYWN0LT5tZm4gPSBncmFudF9tZm47CisKKyAgICAgICAgICAgIGlm ICggaXNfc3ViX3BhZ2UgKQorICAgICAgICAgICAgICAgIGF0b21pY19pbmMo JnJndC0+bnJfdjJfb3BzKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlm ICggIW1mbl9lcShhY3QtPm1mbiwgZ3JhbnRfbWZuKSB8fAogICAgICAgICAg ICAgICAgICAgYWN0LT5zcmNfZG9taWQgIT0gdGQtPmRvbWFpbl9pZCB8fApA QCAtMzIyNiw3ICszMjY5LDE3IEBAIGdudHRhYl9zZXRfdmVyc2lvbihYRU5f R1VFU1RfSEFORExFX1BBUkEKICAgICAgICAgaWYgKCByZXMgPCAwKQogICAg ICAgICAgICAgZ290byBvdXRfdW5sb2NrOwogICAgICAgICBicmVhazsKKwog ICAgIGNhc2UgMjoKKyAgICAgICAgaWYgKCBhdG9taWNfcmVhZCgmZ3QtPm5y X3YyX29wcykgKQorICAgICAgICB7CisgICAgICAgICAgICBnZHByaW50ayhY RU5MT0dfV0FSTklORywKKyAgICAgICAgICAgICAgICAgICAgICJ0cmllZCB0 byBjaGFuZ2UgdG8gZ3JhbnQgdGFibGUgdjEsIGJ1dCAlZCB2MiBvcGVyYXRp b25zIHN0aWxsIGluIHByb2dyZXNzXG4iLAorICAgICAgICAgICAgICAgICAg ICAgYXRvbWljX3JlYWQoJmd0LT5ucl92Ml9vcHMpKTsKKyAgICAgICAgICAg IHJlcyA9IC1FQUdBSU47CisgICAgICAgICAgICBnb3RvIG91dF91bmxvY2s7 CisgICAgICAgIH0KKwogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEdOVFRB Ql9OUl9SRVNFUlZFRF9FTlRSSUVTOyBpKysgKQogICAgICAgICB7CiAgICAg ICAgICAgICBzd2l0Y2ggKCBzaGFyZWRfZW50cnlfdjIoZ3QsIGkpLmhkci5m bGFncyAmIEdURl90eXBlX21hc2sgKQo= --=separator--