From nobody Fri May 17 04:49:51 2024 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; dkim=pass; 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 ARC-Seal: i=1; a=rsa-sha256; t=1667304132; cv=none; d=zohomail.com; s=zohoarc; b=WnwQEQDKkfkcuy7KTnq1hctsRGzQiZoKVJVfxsA4c6Q0Hmuq1YZTvrDQ5++u04Qv99QoREAWfVobA6N/+NivGoFdvfpQE1LrHetuddpe11gDTc95qpGUGdCUsyCw36i2aNaguR77asQD6GF9J21q1zdPZou+VFeZmSywHsjfBe8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1667304132; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=5J8Vh2XLLnRFL3tL5UuK6QowUl/ysp9mydg4XFdyJW4=; b=li/MSHy0YgJK+yLLyBhSzR9i9ZvPGrzKzW1g16nWgHn7WdftwzaPXlGthaepDzO/jwbvZNhbpfjxGzLUNq7xP97gVOyJRCBu8xopMbsd+mIpkXuUuCaaaUv+0aQKkC1chcRHAivRZ35AvHtCiEd+juxA0GopIcHb1sh8DN5LGVk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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 1667304131790438.69955658828485; Tue, 1 Nov 2022 05:02:11 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.433509.686671 (Exim 4.92) (envelope-from ) id 1oppxR-0003Hk-12; Tue, 01 Nov 2022 12:01:29 +0000 Received: by outflank-mailman (output) from mailman id 433509.686671; Tue, 01 Nov 2022 12:01:28 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oppxP-0003Ah-L5; Tue, 01 Nov 2022 12:01:27 +0000 Received: by outflank-mailman (input) for mailman id 433509; Tue, 01 Nov 2022 12:01:21 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oppxI-0000IJ-VZ for xen-devel@lists.xen.org; Tue, 01 Nov 2022 12:01:21 +0000 Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id d8973328-59dc-11ed-91b5-6bf2151ebd3b; Tue, 01 Nov 2022 13:00:58 +0100 (CET) Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oppwj-0005Xg-3a; Tue, 01 Nov 2022 12:00:45 +0000 Received: from jgross by xenbits.xenproject.org with local (Exim 4.92) (envelope-from ) id 1oppwj-0005Rp-2T; Tue, 01 Nov 2022 12:00:45 +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" X-Inumbo-ID: d8973328-59dc-11ed-91b5-6bf2151ebd3b DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version: Content-Transfer-Encoding:Content-Type; bh=5J8Vh2XLLnRFL3tL5UuK6QowUl/ysp9mydg4XFdyJW4=; b=K5+AuxUM7txumEHhLAEnySAaNb RsFvMRDjQTMMvzl14PoRXTxBRADdxPf4AbBctNnRB75i+07DtAs96fRYBpV1cqDjfrgIZDPRccXSZ SeaO2ckv2Cp58DtfpHohybxkC/s63O61UjXa7wX9VUhSOAQH9aqNXzMvSxmQs0BwYFl4=; Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8" Content-Transfer-Encoding: binary MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) 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 416 v2 (CVE-2022-42319) - Xenstore: Guests can cause Xenstore to not free temporary memory Message-Id: Date: Tue, 01 Nov 2022 12:00:45 +0000 X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: pass (identity @xen.org) X-ZM-MESSAGEID: 1667304133790100001 --=separator Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Reported-by: Julien Grall Reviewed-by: Julien Grall -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Xen Security Advisory CVE-2022-42319 / XSA-416 version 2 Xenstore: Guests can cause Xenstore to not free temporary memory UPDATES IN VERSION 2 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Public release. ISSUE DESCRIPTION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D When working on a request of a guest, xenstored might need to allocate quite large amounts of memory temporarily. This memory is freed only after the request has been finished completely. A request is regarded to be finished only after the guest has read the response message of the request from the ring page. Thus a guest not reading the response can cause xenstored to not free the temporary memory. This can result in memory shortages causing Denial of Service (DoS) of xenstored. IMPACT =3D=3D=3D=3D=3D=3D A malicious guest can cause DoS of xenstored, resulting in the inability to create new guests or to change the configuration of already running guests. VULNERABLE SYSTEMS =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Xen systems with version 4.9 and newer running the C variant of Xenstore (xenstored or xenstore-stubdom) are vulnerable. Systems using the Ocaml variant of Xenstore (oxenstored) are not vulnerable. MITIGATION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Using oxenstored instead of xenstored will avoid the vulnerability. CREDITS =3D=3D=3D=3D=3D=3D=3D This issue was discovered by Julien Grall of Amazon. 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. xsa416.patch xen-unstable xsa416-4.16.patch Xen 4.16.x xsa416-4.15.patch Xen 4.15.x xsa416-4.14.patch Xen 4.14.x xsa416-4.13.patch Xen 4.13.x $ sha256sum xsa416* 9f5f459b0c5b71ba25503d176c59732baf2ed174688b59e51010f22f8eecd218 xsa416.me= ta 6a28884392997baaea046ac8f1df86ffaec64febdabf17a8753e451ef3cab0f7 xsa416.pa= tch 5838de576be5a71be46ab2e58287ea7d9c774f68f588c7d1f472a190b5923446 xsa416-4.= 13.patch cb06c57ff0158899e61b26901e06d931838f68958d610fbeff1c76edb9c8b4e1 xsa416-4.= 14.patch 68b7128b0f1e1d6de345dbc47dfdd583beff840c96e625fcf6e6a82679ff3732 xsa416-4.= 15.patch c4bb88546b272925d85d75d62f552d91698a10faaac1a0ce6cac3c54eeeda6a2 xsa416-4.= 16.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 and/or mitigations described above (or others which are substantially similar) is permitted during the embargo, even on public-facing systems with untrusted guest users and administrators. But: Distribution of updated software is prohibited (except to other members of the predisclosure list). Predisclosure list members who wish to deploy significantly different patches and/or mitigations, please contact the Xen Project Security Team. (Note: this during-embargo deployment notice is retained in post-embargo publicly released Xen Project advisories, even though it is then no longer applicable. This is to enable the community to have oversight of the Xen Project Security Team's decisionmaking.) For more information about permissible uses of embargoed information, consult the Xen Project community's agreed Security Policy: http://www.xenproject.org/security-policy.html -----BEGIN PGP SIGNATURE----- iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmNg+6UMHHBncEB4ZW4u b3JnAAoJEIP+FMlX6CvZx0IH/0A0O9/AnlHpVEM8RUVrHqDLbVozGVbroH/OsA05 Fgj5kCqgRQs03H2uMnIboDL9RbgnjqRkU1cVf0gG2MWRzvMofxjLykUN8fUxcax0 6qCnAPF1m5kFA/LE6iyjWem6949n7B/LZb2NCJ9EFwb+W1/g6/skTj82ngvlSO+6 svxuK+BnTUshcDI6b3MSos4CPVpF4VMYB8JogUo9XANUdu7mblV4jMPn/wt712MA tEOcxeIPvzkYpPTzV5bEQGKmRy4WpnpSKDPDL8+PVFMFdyMartx98RoZFnldTmlN fifLfsTq3h3NxTA7V0KUXdO5tb0ZPLQiN/8fn7AwO/2HtdY=3D =3DYXaE -----END PGP SIGNATURE----- --=separator Content-Type: application/octet-stream; name="xsa416.meta" Content-Disposition: attachment; filename="xsa416.meta" Content-Transfer-Encoding: base64 ewogICJYU0EiOiA0MTYsCiAgIlN1cHBvcnRlZFZlcnNpb25zIjogWwogICAg Im1hc3RlciIsCiAgICAiNC4xNiIsCiAgICAiNC4xNSIsCiAgICAiNC4xNCIs CiAgICAiNC4xMyIKICBdLAogICJUcmVlcyI6IFsKICAgICJ4ZW4iCiAgXSwK ICAiUmVjaXBlcyI6IHsKICAgICI0LjEzIjogewogICAgICAiUmVjaXBlcyI6 IHsKICAgICAgICAieGVuIjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICIw YmU2M2MyNjE1YjI2ODAwMWY3Y2M5YjcyY2UyNWVlZDk1MjczN2RjIiwKICAg ICAgICAgICJQcmVyZXFzIjogWwogICAgICAgICAgICA0MTQsCiAgICAgICAg ICAgIDQxNSwKICAgICAgICAgICAgMzI2CiAgICAgICAgICBdLAogICAgICAg ICAgIlBhdGNoZXMiOiBbCiAgICAgICAgICAgICJ4c2E0MTYtNC4xMy5wYXRj aCIKICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAi NC4xNCI6IHsKICAgICAgIlJlY2lwZXMiOiB7CiAgICAgICAgInhlbiI6IHsK ICAgICAgICAgICJTdGFibGVSZWYiOiAiMDE2ZGU2Mjc0N2IyNmVhZDVhNWM3 NjNiNjQwZmU4ZTIwNWNkMTgyYiIsCiAgICAgICAgICAiUHJlcmVxcyI6IFsK ICAgICAgICAgICAgNDE0LAogICAgICAgICAgICA0MTUsCiAgICAgICAgICAg IDMyNgogICAgICAgICAgXSwKICAgICAgICAgICJQYXRjaGVzIjogWwogICAg ICAgICAgICAieHNhNDE2LTQuMTQucGF0Y2giCiAgICAgICAgICBdCiAgICAg ICAgfQogICAgICB9CiAgICB9LAogICAgIjQuMTUiOiB7CiAgICAgICJSZWNp cGVzIjogewogICAgICAgICJ4ZW4iOiB7CiAgICAgICAgICAiU3RhYmxlUmVm IjogIjgxNjU4MGFmZGQxNzMwZDRmODVmNjQ0NzdhMjQyYTQzOWFmMWNkZjgi LAogICAgICAgICAgIlByZXJlcXMiOiBbCiAgICAgICAgICAgIDQxNCwKICAg ICAgICAgICAgNDE1LAogICAgICAgICAgICAzMjYKICAgICAgICAgIF0sCiAg ICAgICAgICAiUGF0Y2hlcyI6IFsKICAgICAgICAgICAgInhzYTQxNi00LjE1 LnBhdGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAgfSwK ICAgICI0LjE2IjogewogICAgICAiUmVjaXBlcyI6IHsKICAgICAgICAieGVu IjogewogICAgICAgICAgIlN0YWJsZVJlZiI6ICIxYmNlN2ZiMWY3MDJkYTRm N2E3NDljNmYxNDU3ZWNiMjBiZjc0ZmNhIiwKICAgICAgICAgICJQcmVyZXFz IjogWwogICAgICAgICAgICA0MTIsCiAgICAgICAgICAgIDQxNCwKICAgICAg ICAgICAgNDE1LAogICAgICAgICAgICAzMjYKICAgICAgICAgIF0sCiAgICAg ICAgICAiUGF0Y2hlcyI6IFsKICAgICAgICAgICAgInhzYTQxNi00LjE2LnBh dGNoIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAg ICJtYXN0ZXIiOiB7CiAgICAgICJSZWNpcGVzIjogewogICAgICAgICJ4ZW4i OiB7CiAgICAgICAgICAiU3RhYmxlUmVmIjogImNjNDc0N2JlOGJhMTU3YTNi MzEwOTIxZTllZTA3ZmI4NTQ1YWEyMDYiLAogICAgICAgICAgIlByZXJlcXMi OiBbCiAgICAgICAgICAgIDQxMiwKICAgICAgICAgICAgNDE0LAogICAgICAg ICAgICA0MTUsCiAgICAgICAgICAgIDMyNgogICAgICAgICAgXSwKICAgICAg ICAgICJQYXRjaGVzIjogWwogICAgICAgICAgICAieHNhNDE2LnBhdGNoIgog ICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfQ== --=separator Content-Type: application/octet-stream; name="xsa416.patch" Content-Disposition: attachment; filename="xsa416.patch" Content-Transfer-Encoding: base64 RnJvbSBjNzYxYTMyZDFjYzliNDBhYzk1NjAwMjY4YmE1ZjAwYmJlYzg4OTI1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3Nz IDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFR1ZSwgMTMgU2VwIDIwMjIgMDc6 MzU6MTAgKzAyMDAKU3ViamVjdDogdG9vbHMveGVuc3RvcmU6IGRvbid0IHVz ZSBjb25uLT5pbiBhcyBjb250ZXh0IGZvciB0ZW1wb3JhcnkKIGFsbG9jYXRp b25zCgpVc2luZyB0aGUgc3RydWN0IGJ1ZmZlcmVkIGRhdGEgcG9pbnRlciBv ZiB0aGUgY3VycmVudCBwcm9jZXNzZWQgcmVxdWVzdApmb3IgdGVtcG9yYXJ5 IGRhdGEgYWxsb2NhdGlvbnMgaGFzIGEgbWFqb3IgZHJhd2JhY2s6IHRoZSB1 c2VkIGFyZWEgKGFuZAp3aXRoIHRoYXQgdGhlIHRlbXBvcmFyeSBkYXRhKSBp cyBmcmVlZCBvbmx5IGFmdGVyIHRoZSByZXNwb25zZSBvZiB0aGUKcmVxdWVz dCBoYXMgYmVlbiB3cml0dGVuIHRvIHRoZSByaW5nIHBhZ2Ugb3IgaGFzIGJl ZW4gcmVhZCB2aWEgdGhlCnNvY2tldC4gVGhpcyBjYW4gaGFwcGVuIG11Y2gg bGF0ZXIgaW4gY2FzZSBhIGd1ZXN0IGlzbid0IHJlYWRpbmcgaXRzCnJlc3Bv bnNlcyBmYXN0IGVub3VnaC4KCkFzIHRoZSB0ZW1wb3JhcnkgZGF0YSBjYW4g YmUgc2FmZWx5IGZyZWVkIGFmdGVyIGNyZWF0aW5nIHRoZSByZXNwb25zZSwK YWRkIGEgdGVtcG9yYXJ5IGNvbnRleHQgZm9yIHRoYXQgcHVycG9zZSBhbmQg dXNlIHRoYXQgZm9yIGFsbG9jYXRpbmcKdGhlIHRlbXBvcmFyeSBtZW1vcnks IGFzIGl0IHdhcyBhbHJlYWR5IHRoZSBjYXNlIGJlZm9yZSBjb21taXQKY2Mw NjEyNDY0ODk2ICgieGVuc3RvcmU6IGFkZCBzbWFsbCBkZWZhdWx0IGRhdGEg YnVmZmVyIHRvIGludGVybmFsCnN0cnVjdCIpLgoKU29tZSBzdWItZnVuY3Rp b25zIG5lZWQgdG8gZ2FpbiB0aGUgImNvbnN0IiBhdHRyaWJ1dGUgZm9yIHRo ZSB0YWxsb2MKY29udGV4dC4KClRoaXMgaXMgWFNBLTQxNiAvIENWRS0yMDIy LTQyMzE5LgoKUmVwb3J0ZWQtYnk6IEp1bGllbiBHcmFsbCA8amdyYWxsQGFt YXpvbi5jb20+CkZpeGVzOiBjYzA2MTI0NjQ4OTYgKCJ4ZW5zdG9yZTogYWRk IHNtYWxsIGRlZmF1bHQgZGF0YSBidWZmZXIgdG8gaW50ZXJuYWwgc3RydWN0 IikKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9u LmNvbT4KCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRf Y29udHJvbC5jIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wu YwppbmRleCAyNjRiYjM5ZDdiMGUuLmQxYWFhMDBiZjQ0YSAxMDA2NDQKLS0t IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuYworKysgYi90 b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29udHJvbC5jCkBAIC0xNTUsNyAr MTU1LDcgQEAgYm9vbCBsdV9pc19wZW5kaW5nKHZvaWQpCiAKIHN0cnVjdCBj bWRfcyB7CiAJY2hhciAqY21kOwotCWludCAoKmZ1bmMpKHZvaWQgKiwgc3Ry dWN0IGNvbm5lY3Rpb24gKiwgY2hhciAqKiwgaW50KTsKKwlpbnQgKCpmdW5j KShjb25zdCB2b2lkICosIHN0cnVjdCBjb25uZWN0aW9uICosIGNoYXIgKios IGludCk7CiAJY2hhciAqcGFyczsKIAkvKgogCSAqIG1heF9wYXJzIGNhbiBi ZSB1c2VkIHRvIGxpbWl0IHRoZSBzaXplIG9mIHRoZSBwYXJhbWV0ZXIgdmVj dG9yLApAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0cnVjdCBjbWRfcyB7CiAJdW5z aWduZWQgaW50IG1heF9wYXJzOwogfTsKIAotc3RhdGljIGludCBkb19jb250 cm9sX2NoZWNrKHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s CitzdGF0aWMgaW50IGRvX2NvbnRyb2xfY2hlY2soY29uc3Qgdm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAkJCSAgICBjaGFyICoqdmVj LCBpbnQgbnVtKQogewogCWlmIChudW0pCkBAIC0xNzksNyArMTc5LDcgQEAg c3RhdGljIGludCBkb19jb250cm9sX2NoZWNrKHZvaWQgKmN0eCwgc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgZG9fY29udHJvbF9sb2codm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlv biAqY29ubiwKK3N0YXRpYyBpbnQgZG9fY29udHJvbF9sb2coY29uc3Qgdm9p ZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAkJCSAgY2hhciAq KnZlYywgaW50IG51bSkKIHsKIAlpZiAobnVtICE9IDEpCkBAIC0yODEsNyAr MjgxLDcgQEAgc3RhdGljIGludCBxdW90YV9nZXQoY29uc3Qgdm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAlyZXR1cm4gZG9tYWluX2dl dF9xdW90YShjdHgsIGNvbm4sIGF0b2kodmVjWzBdKSk7CiB9CiAKLXN0YXRp YyBpbnQgZG9fY29udHJvbF9xdW90YSh2b2lkICpjdHgsIHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLAorc3RhdGljIGludCBkb19jb250cm9sX3F1b3RhKGNv bnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCQkg ICAgY2hhciAqKnZlYywgaW50IG51bSkKIHsKIAlpZiAobnVtID09IDApCkBA IC0yOTMsNyArMjkzLDcgQEAgc3RhdGljIGludCBkb19jb250cm9sX3F1b3Rh KHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJu IHF1b3RhX2dldChjdHgsIGNvbm4sIHZlYywgbnVtKTsKIH0KIAotc3RhdGlj IGludCBkb19jb250cm9sX3F1b3RhX3Modm9pZCAqY3R4LCBzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwKK3N0YXRpYyBpbnQgZG9fY29udHJvbF9xdW90YV9z KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJ CQkgICAgICBjaGFyICoqdmVjLCBpbnQgbnVtKQogewogCWlmIChudW0gPT0g MCkKQEAgLTMwNiw3ICszMDYsNyBAQCBzdGF0aWMgaW50IGRvX2NvbnRyb2xf cXVvdGFfcyh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAog fQogCiAjaWZkZWYgX19NSU5JT1NfXwotc3RhdGljIGludCBkb19jb250cm9s X21lbXJlcG9ydCh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25u LAorc3RhdGljIGludCBkb19jb250cm9sX21lbXJlcG9ydChjb25zdCB2b2lk ICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCQkJCWNoYXIgKip2 ZWMsIGludCBudW0pCiB7CiAJaWYgKG51bSkKQEAgLTMxOCw3ICszMTgsNyBA QCBzdGF0aWMgaW50IGRvX2NvbnRyb2xfbWVtcmVwb3J0KHZvaWQgKmN0eCwg c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJuIDA7CiB9CiAjZWxz ZQotc3RhdGljIGludCBkb19jb250cm9sX2xvZ2ZpbGUodm9pZCAqY3R4LCBz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKK3N0YXRpYyBpbnQgZG9fY29udHJv bF9sb2dmaWxlKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sCiAJCQkgICAgICBjaGFyICoqdmVjLCBpbnQgbnVtKQogewogCWlm IChudW0gIT0gMSkKQEAgLTMzMyw3ICszMzMsNyBAQCBzdGF0aWMgaW50IGRv X2NvbnRyb2xfbG9nZmlsZSh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRvX2NvbnRy b2xfbWVtcmVwb3J0KHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sCitzdGF0aWMgaW50IGRvX2NvbnRyb2xfbWVtcmVwb3J0KGNvbnN0IHZv aWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCQkJY2hhciAq KnZlYywgaW50IG51bSkKIHsKIAlGSUxFICpmcDsKQEAgLTM3Myw3ICszNzMs NyBAQCBzdGF0aWMgaW50IGRvX2NvbnRyb2xfbWVtcmVwb3J0KHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiB9CiAjZW5kaWYKIAotc3Rh dGljIGludCBkb19jb250cm9sX3ByaW50KHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCitzdGF0aWMgaW50IGRvX2NvbnRyb2xfcHJpbnQo Y29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAkJ CSAgICBjaGFyICoqdmVjLCBpbnQgbnVtKQogewogCWlmIChudW0gIT0gMSkK QEAgLTg3NSw3ICs4NzUsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqbHVfc3Rh cnQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwK IAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGludCBkb19jb250cm9sX2x1 KHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMg aW50IGRvX2NvbnRyb2xfbHUoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwKIAkJCSBjaGFyICoqdmVjLCBpbnQgbnVtKQogewog CWNvbnN0IGNoYXIgKnJldCA9IE5VTEw7CkBAIC05MjIsNyArOTIyLDcgQEAg c3RhdGljIGludCBkb19jb250cm9sX2x1KHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCiB9CiAjZW5kaWYKIAotc3RhdGljIGludCBkb19j b250cm9sX2hlbHAodm9pZCAqLCBzdHJ1Y3QgY29ubmVjdGlvbiAqLCBjaGFy ICoqLCBpbnQpOworc3RhdGljIGludCBkb19jb250cm9sX2hlbHAoY29uc3Qg dm9pZCAqLCBzdHJ1Y3QgY29ubmVjdGlvbiAqLCBjaGFyICoqLCBpbnQpOwog CiBzdGF0aWMgc3RydWN0IGNtZF9zIGNtZHNbXSA9IHsKIAl7ICJjaGVjayIs IGRvX2NvbnRyb2xfY2hlY2ssICIiIH0sCkBAIC05NjEsNyArOTYxLDcgQEAg c3RhdGljIHN0cnVjdCBjbWRfcyBjbWRzW10gPSB7CiAJeyAiaGVscCIsIGRv X2NvbnRyb2xfaGVscCwgIiIgfSwKIH07CiAKLXN0YXRpYyBpbnQgZG9fY29u dHJvbF9oZWxwKHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s CitzdGF0aWMgaW50IGRvX2NvbnRyb2xfaGVscChjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCQkJICAgY2hhciAqKnZlYywg aW50IG51bSkKIHsKIAlpbnQgY21kOwpAQCAtOTg0LDcgKzk4NCw4IEBAIHN0 YXRpYyBpbnQgZG9fY29udHJvbF9oZWxwKHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJuIDA7CiB9CiAKLWludCBkb19jb250 cm9sKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pCitpbnQgZG9fY29udHJvbChjb25zdCB2b2lkICpjdHgsIHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLAorCSAgICAgICBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiB7CiAJdW5zaWduZWQgaW50IGNtZCwgbnVtLCBvZmY7 CiAJY2hhciAqKnZlYyA9IE5VTEw7CkBAIC0xMDA0LDExICsxMDA1LDExIEBA IGludCBkb19jb250cm9sKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJbnVtID0geHNfY291bnRfc3RyaW5n cyhpbi0+YnVmZmVyLCBpbi0+dXNlZCk7CiAJaWYgKGNtZHNbY21kXS5tYXhf cGFycykKIAkJbnVtID0gbWluKG51bSwgY21kc1tjbWRdLm1heF9wYXJzKTsK LQl2ZWMgPSB0YWxsb2NfYXJyYXkoaW4sIGNoYXIgKiwgbnVtKTsKKwl2ZWMg PSB0YWxsb2NfYXJyYXkoY3R4LCBjaGFyICosIG51bSk7CiAJaWYgKCF2ZWMp CiAJCXJldHVybiBFTk9NRU07CiAJaWYgKGdldF9zdHJpbmdzKGluLCB2ZWMs IG51bSkgPCBudW0pCiAJCXJldHVybiBFSU87CiAKLQlyZXR1cm4gY21kc1tj bWRdLmZ1bmMoaW4sIGNvbm4sIHZlYyArIDEsIG51bSAtIDEpOworCXJldHVy biBjbWRzW2NtZF0uZnVuYyhjdHgsIGNvbm4sIHZlYyArIDEsIG51bSAtIDEp OwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2Nv bnRyb2wuaCBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmgK aW5kZXggOThiNmZiY2VhMmIxLi5hOGNiNzY1NTliYTEgMTAwNjQ0Ci0tLSBh L3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmgKKysrIGIvdG9v bHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuaApAQCAtMTYsNyArMTYs OCBAQAogICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAqLwogCi1pbnQg ZG9fY29udHJvbChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKTsKK2ludCBkb19jb250cm9sKGNvbnN0IHZvaWQg KmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJICAgICAgIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbik7CiB2b2lkIGx1X3JlYWRfc3RhdGUodm9p ZCk7CiAKIHN0cnVjdCBjb25uZWN0aW9uICpsdV9nZXRfY29ubmVjdGlvbih2 b2lkKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9j b3JlLmMgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5jCmluZGV4 IGY3ZjFlMDBjNzE1Yi4uNjZiYmVhZjZiZmIwIDEwMDY0NAotLS0gYS90b29s cy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5jCisrKyBiL3Rvb2xzL3hlbnN0 b3JlL3hlbnN0b3JlZF9jb3JlLmMKQEAgLTEyNDQsMTEgKzEyNDQsMTMgQEAg c3RhdGljIHN0cnVjdCBub2RlICpnZXRfbm9kZV9jYW5vbmljYWxpemVkKHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLAogCXJldHVybiBnZXRfbm9kZShjb25u LCBjdHgsICpjYW5vbmljYWxfbmFtZSwgcGVybSk7CiB9CiAKLXN0YXRpYyBp bnQgc2VuZF9kaXJlY3Rvcnkoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0 cnVjdCBidWZmZXJlZF9kYXRhICppbikKK3N0YXRpYyBpbnQgc2VuZF9kaXJl Y3RvcnkoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwKKwkJCSAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXN0cnVj dCBub2RlICpub2RlOwogCi0Jbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6 ZWQoY29ubiwgaW4sIG9uZWFyZyhpbiksIE5VTEwsIFhTX1BFUk1fUkVBRCk7 CisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgY3R4LCBv bmVhcmcoaW4pLCBOVUxMLAorCQkJCSAgICAgIFhTX1BFUk1fUkVBRCk7CiAJ aWYgKCFub2RlKQogCQlyZXR1cm4gZXJybm87CiAKQEAgLTEyNTcsNyArMTI1 OSw3IEBAIHN0YXRpYyBpbnQgc2VuZF9kaXJlY3Rvcnkoc3RydWN0IGNvbm5l Y3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlyZXR1 cm4gMDsKIH0KIAotc3RhdGljIGludCBzZW5kX2RpcmVjdG9yeV9wYXJ0KHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLAorc3RhdGljIGludCBzZW5kX2RpcmVj dG9yeV9wYXJ0KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sCiAJCQkgICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQog ewogCXVuc2lnbmVkIGludCBvZmYsIGxlbiwgbWF4bGVuLCBnZW5sZW47CkBA IC0xMjY5LDcgKzEyNzEsOCBAQCBzdGF0aWMgaW50IHNlbmRfZGlyZWN0b3J5 X3BhcnQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCXJldHVybiBFSU5W QUw7CiAKIAkvKiBGaXJzdCBhcmcgaXMgbm9kZSBuYW1lLiAqLwotCW5vZGUg PSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGluLCBpbi0+YnVmZmVy LCBOVUxMLCBYU19QRVJNX1JFQUQpOworCW5vZGUgPSBnZXRfbm9kZV9jYW5v bmljYWxpemVkKGNvbm4sIGN0eCwgaW4tPmJ1ZmZlciwgTlVMTCwKKwkJCQkg ICAgICBYU19QRVJNX1JFQUQpOwogCWlmICghbm9kZSkKIAkJcmV0dXJuIGVy cm5vOwogCkBAIC0xMjk2LDcgKzEyOTksNyBAQCBzdGF0aWMgaW50IHNlbmRf ZGlyZWN0b3J5X3BhcnQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCQli cmVhazsKIAl9CiAKLQlkYXRhID0gdGFsbG9jX2FycmF5KGluLCBjaGFyLCBn ZW5sZW4gKyBsZW4gKyAxKTsKKwlkYXRhID0gdGFsbG9jX2FycmF5KGN0eCwg Y2hhciwgZ2VubGVuICsgbGVuICsgMSk7CiAJaWYgKCFkYXRhKQogCQlyZXR1 cm4gRU5PTUVNOwogCkBAIC0xMzEyLDExICsxMzE1LDEzIEBAIHN0YXRpYyBp bnQgc2VuZF9kaXJlY3RvcnlfcGFydChzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkb19yZWFkKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CitzdGF0aWMgaW50IGRvX3JlYWQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwKKwkJICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEg KmluKQogewogCXN0cnVjdCBub2RlICpub2RlOwogCi0Jbm9kZSA9IGdldF9u b2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4sIG9uZWFyZyhpbiksIE5VTEws IFhTX1BFUk1fUkVBRCk7CisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6 ZWQoY29ubiwgY3R4LCBvbmVhcmcoaW4pLCBOVUxMLAorCQkJCSAgICAgIFhT X1BFUk1fUkVBRCk7CiAJaWYgKCFub2RlKQogCQlyZXR1cm4gZXJybm87CiAK QEAgLTE1MDYsNyArMTUxMSw4IEBAIHN0YXRpYyBzdHJ1Y3Qgbm9kZSAqY3Jl YXRlX25vZGUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIGNvbnN0IHZvaWQg KmN0eCwKIH0KIAogLyogcGF0aCwgZGF0YS4uLiAqLwotc3RhdGljIGludCBk b193cml0ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZl cmVkX2RhdGEgKmluKQorc3RhdGljIGludCBkb193cml0ZShjb25zdCB2b2lk ICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkgICAgc3RydWN0 IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXVuc2lnbmVkIGludCBvZmZzZXQs IGRhdGFsZW47CiAJc3RydWN0IG5vZGUgKm5vZGU7CkBAIC0xNTIwLDEyICsx NTI2LDEyIEBAIHN0YXRpYyBpbnQgZG9fd3JpdGUoc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlvZmZzZXQg PSBzdHJsZW4odmVjWzBdKSArIDE7CiAJZGF0YWxlbiA9IGluLT51c2VkIC0g b2Zmc2V0OwogCi0Jbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29u biwgaW4sIHZlY1swXSwgJm5hbWUsIFhTX1BFUk1fV1JJVEUpOworCW5vZGUg PSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGN0eCwgdmVjWzBdLCAm bmFtZSwgWFNfUEVSTV9XUklURSk7CiAJaWYgKCFub2RlKSB7CiAJCS8qIE5v IHBlcm1pc3Npb25zLCBpbnZhbGlkIGlucHV0PyAqLwogCQlpZiAoZXJybm8g IT0gRU5PRU5UKQogCQkJcmV0dXJuIGVycm5vOwotCQlub2RlID0gY3JlYXRl X25vZGUoY29ubiwgaW4sIG5hbWUsIGluLT5idWZmZXIgKyBvZmZzZXQsCisJ CW5vZGUgPSBjcmVhdGVfbm9kZShjb25uLCBjdHgsIG5hbWUsIGluLT5idWZm ZXIgKyBvZmZzZXQsCiAJCQkJICAgZGF0YWxlbik7CiAJCWlmICghbm9kZSkK IAkJCXJldHVybiBlcnJubzsKQEAgLTE1MzYsMTggKzE1NDIsMTkgQEAgc3Rh dGljIGludCBkb193cml0ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCQkJcmV0dXJuIGVycm5vOwogCX0K IAotCWZpcmVfd2F0Y2hlcyhjb25uLCBpbiwgbmFtZSwgbm9kZSwgZmFsc2Us IE5VTEwpOworCWZpcmVfd2F0Y2hlcyhjb25uLCBjdHgsIG5hbWUsIG5vZGUs IGZhbHNlLCBOVUxMKTsKIAlzZW5kX2Fjayhjb25uLCBYU19XUklURSk7CiAK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkb19ta2RpcihzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQor c3RhdGljIGludCBkb19ta2Rpcihjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAorCQkgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEg KmluKQogewogCXN0cnVjdCBub2RlICpub2RlOwogCWNoYXIgKm5hbWU7CiAK LQlub2RlID0gZ2V0X25vZGVfY2Fub25pY2FsaXplZChjb25uLCBpbiwgb25l YXJnKGluKSwgJm5hbWUsCisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6 ZWQoY29ubiwgY3R4LCBvbmVhcmcoaW4pLCAmbmFtZSwKIAkJCQkgICAgICBY U19QRVJNX1dSSVRFKTsKIAogCS8qIElmIGl0IGFscmVhZHkgZXhpc3RzLCBm aW5lLiAqLwpAQCAtMTU1NywxMCArMTU2NCwxMCBAQCBzdGF0aWMgaW50IGRv X21rZGlyKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiAJCQlyZXR1cm4gZXJybm87CiAJCWlmICghbmFtZSkK IAkJCXJldHVybiBFTk9NRU07Ci0JCW5vZGUgPSBjcmVhdGVfbm9kZShjb25u LCBpbiwgbmFtZSwgTlVMTCwgMCk7CisJCW5vZGUgPSBjcmVhdGVfbm9kZShj b25uLCBjdHgsIG5hbWUsIE5VTEwsIDApOwogCQlpZiAoIW5vZGUpCiAJCQly ZXR1cm4gZXJybm87Ci0JCWZpcmVfd2F0Y2hlcyhjb25uLCBpbiwgbmFtZSwg bm9kZSwgZmFsc2UsIE5VTEwpOworCQlmaXJlX3dhdGNoZXMoY29ubiwgY3R4 LCBuYW1lLCBub2RlLCBmYWxzZSwgTlVMTCk7CiAJfQogCXNlbmRfYWNrKGNv bm4sIFhTX01LRElSKTsKIApAQCAtMTY1OCwyNCArMTY2NSwyNSBAQCBzdGF0 aWMgaW50IF9ybShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29uc3Qgdm9p ZCAqY3R4LCBzdHJ1Y3Qgbm9kZSAqbm9kZSwKIH0KIAogCi1zdGF0aWMgaW50 IGRvX3JtKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCitzdGF0aWMgaW50IGRvX3JtKGNvbnN0IHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7CiAJaW50IHJl dDsKIAljaGFyICpuYW1lOwogCWNoYXIgKnBhcmVudG5hbWU7CiAKLQlub2Rl ID0gZ2V0X25vZGVfY2Fub25pY2FsaXplZChjb25uLCBpbiwgb25lYXJnKGlu KSwgJm5hbWUsCisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29u biwgY3R4LCBvbmVhcmcoaW4pLCAmbmFtZSwKIAkJCQkgICAgICBYU19QRVJN X1dSSVRFKTsKIAlpZiAoIW5vZGUpIHsKIAkJLyogRGlkbid0IGV4aXN0IGFs cmVhZHk/ICBGaW5lLCBpZiBwYXJlbnQgZXhpc3RzLiAqLwogCQlpZiAoZXJy bm8gPT0gRU5PRU5UKSB7CiAJCQlpZiAoIW5hbWUpCiAJCQkJcmV0dXJuIEVO T01FTTsKLQkJCXBhcmVudG5hbWUgPSBnZXRfcGFyZW50KGluLCBuYW1lKTsK KwkJCXBhcmVudG5hbWUgPSBnZXRfcGFyZW50KGN0eCwgbmFtZSk7CiAJCQlp ZiAoIXBhcmVudG5hbWUpCiAJCQkJcmV0dXJuIGVycm5vOwotCQkJbm9kZSA9 IHJlYWRfbm9kZShjb25uLCBpbiwgcGFyZW50bmFtZSk7CisJCQlub2RlID0g cmVhZF9ub2RlKGNvbm4sIGN0eCwgcGFyZW50bmFtZSk7CiAJCQlpZiAobm9k ZSkgewogCQkJCXNlbmRfYWNrKGNvbm4sIFhTX1JNKTsKIAkJCQlyZXR1cm4g MDsKQEAgLTE2OTAsNyArMTY5OCw3IEBAIHN0YXRpYyBpbnQgZG9fcm0oc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICpp bikKIAlpZiAoc3RyZXEobmFtZSwgIi8iKSkKIAkJcmV0dXJuIEVJTlZBTDsK IAotCXJldCA9IF9ybShjb25uLCBpbiwgbm9kZSwgbmFtZSk7CisJcmV0ID0g X3JtKGNvbm4sIGN0eCwgbm9kZSwgbmFtZSk7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIApAQCAtMTcwMCwxMyArMTcwOCwxNSBAQCBzdGF0aWMgaW50 IGRvX3JtKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiB9CiAKIAotc3RhdGljIGludCBkb19nZXRfcGVybXMo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKK3N0YXRpYyBpbnQgZG9fZ2V0X3Blcm1zKGNvbnN0IHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCQlzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7CiAJY2hhciAq c3RyaW5nczsKIAl1bnNpZ25lZCBpbnQgbGVuOwogCi0Jbm9kZSA9IGdldF9u b2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4sIG9uZWFyZyhpbiksIE5VTEws IFhTX1BFUk1fUkVBRCk7CisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6 ZWQoY29ubiwgY3R4LCBvbmVhcmcoaW4pLCBOVUxMLAorCQkJCSAgICAgIFhT X1BFUk1fUkVBRCk7CiAJaWYgKCFub2RlKQogCQlyZXR1cm4gZXJybm87CiAK QEAgLTE3MTksNyArMTcyOSw4IEBAIHN0YXRpYyBpbnQgZG9fZ2V0X3Blcm1z KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0 YSAqaW4pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZG9fc2V0X3Bl cm1zKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pCitzdGF0aWMgaW50IGRvX3NldF9wZXJtcyhjb25zdCB2b2lk ICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkJc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKQogewogCXN0cnVjdCBub2RlX3Blcm1zIHBlcm1z LCBvbGRfcGVybXM7CiAJY2hhciAqbmFtZSwgKnBlcm1zdHI7CkBAIC0xNzM2 LDcgKzE3NDcsNyBAQCBzdGF0aWMgaW50IGRvX3NldF9wZXJtcyhzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQog CiAJcGVybXN0ciA9IGluLT5idWZmZXIgKyBzdHJsZW4oaW4tPmJ1ZmZlcikg KyAxOwogCi0JcGVybXMucCA9IHRhbGxvY19hcnJheShpbiwgc3RydWN0IHhz X3Blcm1pc3Npb25zLCBwZXJtcy5udW0pOworCXBlcm1zLnAgPSB0YWxsb2Nf YXJyYXkoY3R4LCBzdHJ1Y3QgeHNfcGVybWlzc2lvbnMsIHBlcm1zLm51bSk7 CiAJaWYgKCFwZXJtcy5wKQogCQlyZXR1cm4gRU5PTUVNOwogCWlmICgheHNf c3RyaW5nc190b19wZXJtcyhwZXJtcy5wLCBwZXJtcy5udW0sIHBlcm1zdHIp KQpAQCAtMTc1MSw3ICsxNzYyLDcgQEAgc3RhdGljIGludCBkb19zZXRfcGVy bXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbikKIAl9CiAKIAkvKiBXZSBtdXN0IG93biBub2RlIHRvIGRvIHRo aXMgKHRvb2xzIGNhbiBkbyB0aGlzIHRvbykuICovCi0Jbm9kZSA9IGdldF9u b2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4sIGluLT5idWZmZXIsICZuYW1l LAorCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGN0eCwg aW4tPmJ1ZmZlciwgJm5hbWUsCiAJCQkJICAgICAgWFNfUEVSTV9XUklURSB8 IFhTX1BFUk1fT1dORVIpOwogCWlmICghbm9kZSkKIAkJcmV0dXJuIGVycm5v OwpAQCAtMTc4Niw3ICsxNzk3LDcgQEAgc3RhdGljIGludCBkb19zZXRfcGVy bXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbikKIAkJcmV0dXJuIGVycm5vOwogCX0KIAotCWZpcmVfd2F0Y2hl cyhjb25uLCBpbiwgbmFtZSwgbm9kZSwgZmFsc2UsICZvbGRfcGVybXMpOwor CWZpcmVfd2F0Y2hlcyhjb25uLCBjdHgsIG5hbWUsIG5vZGUsIGZhbHNlLCAm b2xkX3Blcm1zKTsKIAlzZW5kX2Fjayhjb25uLCBYU19TRVRfUEVSTVMpOwog CiAJcmV0dXJuIDA7CkBAIC0xNzk0LDcgKzE4MDUsOCBAQCBzdGF0aWMgaW50 IGRvX3NldF9wZXJtcyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0 IGJ1ZmZlcmVkX2RhdGEgKmluKQogCiBzdGF0aWMgc3RydWN0IHsKIAljb25z dCBjaGFyICpzdHI7Ci0JaW50ICgqZnVuYykoc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CisJaW50ICgqZnVu YykoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwK KwkJICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CiAJdW5zaWduZWQg aW50IGZsYWdzOwogI2RlZmluZSBYU19GTEFHX05PVElECQkoMVUgPDwgMCkJ LyogSWdub3JlIHRyYW5zYWN0aW9uIGlkLiAqLwogI2RlZmluZSBYU19GTEFH X1BSSVYJCSgxVSA8PCAxKQkvKiBQcml2aWxlZ2VkIGRvbWFpbiBvbmx5LiAq LwpAQCAtMTg0Nyw2ICsxODU5LDcgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19t ZXNzYWdlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiAJc3RydWN0IHRyYW5zYWN0aW9uICp0cmFuczsKIAll bnVtIHhzZF9zb2NrbXNnX3R5cGUgdHlwZSA9IGluLT5oZHIubXNnLnR5cGU7 CiAJaW50IHJldDsKKwl2b2lkICpjdHg7CiAKIAkvKiBBdCBsZWFzdCBzZW5k X2Vycm9yKCkgYW5kIHNlbmRfcmVwbHkoKSBleHBlY3RzIGNvbm4tPmluID09 IGluICovCiAJYXNzZXJ0KGNvbm4tPmluID09IGluKTsKQEAgLTE4NzEsMTAg KzE4ODQsMTcgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19tZXNzYWdlKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiAJCXJldHVybjsKIAl9CiAKKwljdHggPSB0YWxsb2NfbmV3KE5VTEwpOwor CWlmICghY3R4KSB7CisJCXNlbmRfZXJyb3IoY29ubiwgRU5PTUVNKTsKKwkJ cmV0dXJuOworCX0KKwogCWFzc2VydChjb25uLT50cmFuc2FjdGlvbiA9PSBO VUxMKTsKIAljb25uLT50cmFuc2FjdGlvbiA9IHRyYW5zOwogCi0JcmV0ID0g d2lyZV9mdW5jc1t0eXBlXS5mdW5jKGNvbm4sIGluKTsKKwlyZXQgPSB3aXJl X2Z1bmNzW3R5cGVdLmZ1bmMoY3R4LCBjb25uLCBpbik7CisJdGFsbG9jX2Zy ZWUoY3R4KTsKIAlpZiAocmV0KQogCQlzZW5kX2Vycm9yKGNvbm4sIHJldCk7 CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21h aW4uYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21haW4uYwppbmRl eCA5ODNiMzQ4ZWU1OWMuLmI5ZmY0ZGVkODM2MCAxMDA2NDQKLS0tIGEvdG9v bHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5jCisrKyBiL3Rvb2xzL3hl bnN0b3JlL3hlbnN0b3JlZF9kb21haW4uYwpAQCAtMzMwLDcgKzMzMCw3IEBA IGJvb2wgZG9tYWluX2lzX3VucHJpdmlsZWdlZChzdHJ1Y3QgY29ubmVjdGlv biAqY29ubikKIAkgICAgICAgZG9taWRfaXNfdW5wcml2aWxlZ2VkKGNvbm4t PmRvbWFpbi0+ZG9taWQpOwogfQogCi1zdGF0aWMgY2hhciAqdGFsbG9jX2Rv bWFpbl9wYXRoKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBkb21pZCkK K3N0YXRpYyBjaGFyICp0YWxsb2NfZG9tYWluX3BhdGgoY29uc3Qgdm9pZCAq Y29udGV4dCwgdW5zaWduZWQgaW50IGRvbWlkKQogewogCXJldHVybiB0YWxs b2NfYXNwcmludGYoY29udGV4dCwgIi9sb2NhbC9kb21haW4vJXUiLCBkb21p ZCk7CiB9CkBAIC01NjYsNyArNTY2LDggQEAgc3RhdGljIHN0cnVjdCBkb21h aW4gKmludHJvZHVjZV9kb21haW4oY29uc3Qgdm9pZCAqY3R4LAogfQogCiAv KiBkb21pZCwgZ2ZuLCBldnRjaG4sIHBhdGggKi8KLWludCBkb19pbnRyb2R1 Y2Uoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbikKK2ludCBkb19pbnRyb2R1Y2UoY29uc3Qgdm9pZCAqY3R4LCBz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbikKIHsKIAlzdHJ1Y3QgZG9tYWluICpkb21haW47CiAJY2hhciAq dmVjWzNdOwpAQCAtNTg0LDcgKzU4NSw3IEBAIGludCBkb19pbnRyb2R1Y2Uo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKIAlpZiAocG9ydCA8PSAwKQogCQlyZXR1cm4gRUlOVkFMOwogCi0J ZG9tYWluID0gaW50cm9kdWNlX2RvbWFpbihpbiwgZG9taWQsIHBvcnQsIGZh bHNlKTsKKwlkb21haW4gPSBpbnRyb2R1Y2VfZG9tYWluKGN0eCwgZG9taWQs IHBvcnQsIGZhbHNlKTsKIAlpZiAoIWRvbWFpbikKIAkJcmV0dXJuIGVycm5v OwogCkBAIC02MDcsNyArNjA4LDggQEAgc3RhdGljIHN0cnVjdCBkb21haW4g KmZpbmRfY29ubmVjdGVkX2RvbWFpbih1bnNpZ25lZCBpbnQgZG9taWQpCiAJ cmV0dXJuIGRvbWFpbjsKIH0KIAotaW50IGRvX3NldF90YXJnZXQoc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikK K2ludCBkb19zZXRfdGFyZ2V0KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCisJCSAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KQogewogCWNoYXIgKnZlY1syXTsKIAl1bnNpZ25lZCBpbnQgZG9taWQsIHRk b21pZDsKQEAgLTY1MSw3ICs2NTMsOCBAQCBzdGF0aWMgc3RydWN0IGRvbWFp biAqb25lYXJnX2RvbWFpbihzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIH0K IAogLyogZG9taWQgKi8KLWludCBkb19yZWxlYXNlKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9f cmVsZWFzZShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpj b25uLAorCSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJ c3RydWN0IGRvbWFpbiAqZG9tYWluOwogCkBAIC02NjYsNyArNjY5LDggQEAg aW50IGRvX3JlbGVhc2Uoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbikKIAlyZXR1cm4gMDsKIH0KIAotaW50IGRv X3Jlc3VtZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZl cmVkX2RhdGEgKmluKQoraW50IGRvX3Jlc3VtZShjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCSAgICAgIHN0cnVjdCBidWZm ZXJlZF9kYXRhICppbikKIHsKIAlzdHJ1Y3QgZG9tYWluICpkb21haW47CiAK QEAgLTY4MSw3ICs2ODUsOCBAQCBpbnQgZG9fcmVzdW1lKHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJcmV0 dXJuIDA7CiB9CiAKLWludCBkb19nZXRfZG9tYWluX3BhdGgoc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKK2lu dCBkb19nZXRfZG9tYWluX3BhdGgoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwKKwkJICAgICAgIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbikKIHsKIAljaGFyICpwYXRoOwogCWNvbnN0IGNoYXIgKmRvbWlk X3N0ciA9IG9uZWFyZyhpbik7CkBAIC02ODksMTggKzY5NCwxNyBAQCBpbnQg ZG9fZ2V0X2RvbWFpbl9wYXRoKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJaWYgKCFkb21pZF9zdHIpCiAJ CXJldHVybiBFSU5WQUw7CiAKLQlwYXRoID0gdGFsbG9jX2RvbWFpbl9wYXRo KGNvbm4sIGF0b2koZG9taWRfc3RyKSk7CisJcGF0aCA9IHRhbGxvY19kb21h aW5fcGF0aChjdHgsIGF0b2koZG9taWRfc3RyKSk7CiAJaWYgKCFwYXRoKQog CQlyZXR1cm4gZXJybm87CiAKIAlzZW5kX3JlcGx5KGNvbm4sIFhTX0dFVF9E T01BSU5fUEFUSCwgcGF0aCwgc3RybGVuKHBhdGgpICsgMSk7CiAKLQl0YWxs b2NfZnJlZShwYXRoKTsKLQogCXJldHVybiAwOwogfQogCi1pbnQgZG9faXNf ZG9tYWluX2ludHJvZHVjZWQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0 cnVjdCBidWZmZXJlZF9kYXRhICppbikKK2ludCBkb19pc19kb21haW5faW50 cm9kdWNlZChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpj b25uLAorCQkJICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAlp bnQgcmVzdWx0OwogCXVuc2lnbmVkIGludCBkb21pZDsKQEAgLTcyMSw3ICs3 MjUsOCBAQCBpbnQgZG9faXNfZG9tYWluX2ludHJvZHVjZWQoc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIH0K IAogLyogQWxsb3cgZ3Vlc3QgdG8gcmVzZXQgYWxsIHdhdGNoZXMgKi8KLWlu dCBkb19yZXNldF93YXRjaGVzKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9fcmVzZXRfd2F0Y2hl cyhjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAor CQkgICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAljb25uX2Rl bGV0ZV9hbGxfd2F0Y2hlcyhjb25uKTsKIAljb25uX2RlbGV0ZV9hbGxfdHJh bnNhY3Rpb25zKGNvbm4pOwpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUv eGVuc3RvcmVkX2RvbWFpbi5oIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVk X2RvbWFpbi5oCmluZGV4IDViODZhOTJlMWI1Yi4uMjA5NDQyMTkwOTExIDEw MDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfZG9tYWluLmgK KysrIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5oCkBAIC0y NCwyNSArMjQsMzIgQEAgdm9pZCBoYW5kbGVfZXZlbnQodm9pZCk7CiB2b2lk IGNoZWNrX2RvbWFpbnModm9pZCk7CiAKIC8qIGRvbWlkLCBtZm4sIGV2ZW50 Y2huLCBwYXRoICovCi1pbnQgZG9faW50cm9kdWNlKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOworaW50IGRv X2ludHJvZHVjZShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAorCQkgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKIAogLyog ZG9taWQgKi8KLWludCBkb19pc19kb21haW5faW50cm9kdWNlZChzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsK K2ludCBkb19pc19kb21haW5faW50cm9kdWNlZChjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkJICAgIHN0cnVjdCBidWZm ZXJlZF9kYXRhICppbik7CiAKIC8qIGRvbWlkICovCi1pbnQgZG9fcmVsZWFz ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKTsKK2ludCBkb19yZWxlYXNlKGNvbnN0IHZvaWQgKmN0eCwgc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJICAgICAgIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbik7CiAKIC8qIGRvbWlkICovCi1pbnQgZG9fcmVzdW1lKHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pOworaW50IGRvX3Jlc3VtZShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAorCSAgICAgIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbik7CiAKIC8qIGRvbWlkLCB0YXJnZXQgKi8KLWludCBkb19zZXRfdGFy Z2V0KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pOworaW50IGRvX3NldF90YXJnZXQoY29uc3Qgdm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pOwogCiAvKiBkb21pZCAqLwotaW50IGRvX2dldF9kb21h aW5fcGF0aChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZl cmVkX2RhdGEgKmluKTsKK2ludCBkb19nZXRfZG9tYWluX3BhdGgoY29uc3Qg dm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICAgICAg IHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CiAKIC8qIEFsbG93IGd1ZXN0 IHRvIHJlc2V0IGFsbCB3YXRjaGVzICovCi1pbnQgZG9fcmVzZXRfd2F0Y2hl cyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKTsKK2ludCBkb19yZXNldF93YXRjaGVzKGNvbnN0IHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgICAgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKTsKIAogdm9pZCBkb21haW5faW5pdChpbnQgZXZ0 ZmQpOwogdm9pZCBkb20wX2luaXQodm9pZCk7CmRpZmYgLS1naXQgYS90b29s cy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYyBiL3Rvb2xzL3hl bnN0b3JlL3hlbnN0b3JlZF90cmFuc2FjdGlvbi5jCmluZGV4IDI4Nzc0ODEz ZGU4My4uM2UzZWI0NzMyNmNjIDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9y ZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYworKysgYi90b29scy94ZW5zdG9y ZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYwpAQCAtNDgxLDcgKzQ4MSw4IEBA IHN0cnVjdCB0cmFuc2FjdGlvbiAqdHJhbnNhY3Rpb25fbG9va3VwKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCB1aW50MzJfdCBpZCkKIAlyZXR1cm4gRVJS X1BUUigtRU5PRU5UKTsKIH0KIAotaW50IGRvX3RyYW5zYWN0aW9uX3N0YXJ0 KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0 YSAqaW4pCitpbnQgZG9fdHJhbnNhY3Rpb25fc3RhcnQoY29uc3Qgdm9pZCAq Y3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJCSBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IHRyYW5zYWN0aW9uICp0cmFu cywgKmV4aXN0czsKIAljaGFyIGlkX3N0clsyMF07CkBAIC00OTQsOCArNDk1 LDggQEAgaW50IGRvX3RyYW5zYWN0aW9uX3N0YXJ0KHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJICAgIGNv bm4tPnRyYW5zYWN0aW9uX3N0YXJ0ZWQgPiBxdW90YV9tYXhfdHJhbnNhY3Rp b24pCiAJCXJldHVybiBFTk9TUEM7CiAKLQkvKiBBdHRhY2ggdHJhbnNhY3Rp b24gdG8gaW5wdXQgZm9yIGF1dG9mcmVlIHVudGlsIGl0J3MgY29tcGxldGUg Ki8KLQl0cmFucyA9IHRhbGxvY196ZXJvKGluLCBzdHJ1Y3QgdHJhbnNhY3Rp b24pOworCS8qIEF0dGFjaCB0cmFuc2FjdGlvbiB0byBjdHggZm9yIGF1dG9m cmVlIHVudGlsIGl0J3MgY29tcGxldGUgKi8KKwl0cmFucyA9IHRhbGxvY196 ZXJvKGN0eCwgc3RydWN0IHRyYW5zYWN0aW9uKTsKIAlpZiAoIXRyYW5zKQog CQlyZXR1cm4gRU5PTUVNOwogCkBAIC01NDQsNyArNTQ1LDggQEAgc3RhdGlj IGludCB0cmFuc2FjdGlvbl9maXhfZG9tYWlucyhzdHJ1Y3QgdHJhbnNhY3Rp b24gKnRyYW5zLCBib29sIHVwZGF0ZSkKIAlyZXR1cm4gMDsKIH0KIAotaW50 IGRvX3RyYW5zYWN0aW9uX2VuZChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwg c3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX3RyYW5zYWN0aW9u X2VuZChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25u LAorCQkgICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCWNv bnN0IGNoYXIgKmFyZyA9IG9uZWFyZyhpbik7CiAJc3RydWN0IHRyYW5zYWN0 aW9uICp0cmFuczsKQEAgLTU2Miw4ICs1NjQsOCBAQCBpbnQgZG9fdHJhbnNh Y3Rpb25fZW5kKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCiAJaWYgKCFjb25uLT50cmFuc2FjdGlvbl9zdGFy dGVkKQogCQljb25uLT50YV9zdGFydF90aW1lID0gMDsKIAotCS8qIEF0dGFj aCB0cmFuc2FjdGlvbiB0byBpbiBmb3IgYXV0by1jbGVhbnVwICovCi0JdGFs bG9jX3N0ZWFsKGluLCB0cmFucyk7CisJLyogQXR0YWNoIHRyYW5zYWN0aW9u IHRvIGN0eCBmb3IgYXV0by1jbGVhbnVwICovCisJdGFsbG9jX3N0ZWFsKGN0 eCwgdHJhbnMpOwogCiAJaWYgKHN0cmVxKGFyZywgIlQiKSkgewogCQlpZiAo dHJhbnMtPmZhaWwpCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5z dG9yZWRfdHJhbnNhY3Rpb24uaCBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3Jl ZF90cmFuc2FjdGlvbi5oCmluZGV4IGUzY2JkNmIyMzA5NS4uMzlkN2Y4MWM1 MTI3IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJh bnNhY3Rpb24uaAorKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJh bnNhY3Rpb24uaApAQCAtMjksOCArMjksMTAgQEAgc3RydWN0IHRyYW5zYWN0 aW9uOwogCiBleHRlcm4gdWludDY0X3QgZ2VuZXJhdGlvbjsKIAotaW50IGRv X3RyYW5zYWN0aW9uX3N0YXJ0KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqbm9kZSk7Ci1pbnQgZG9fdHJhbnNhY3Rp b25fZW5kKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pOworaW50IGRvX3RyYW5zYWN0aW9uX3N0YXJ0KGNvbnN0 IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCQkgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKm5vZGUpOworaW50IGRvX3RyYW5zYWN0aW9u X2VuZChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25u LAorCQkgICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKIAogc3Ry dWN0IHRyYW5zYWN0aW9uICp0cmFuc2FjdGlvbl9sb29rdXAoc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sIHVpbnQzMl90IGlkKTsKIApkaWZmIC0tZ2l0IGEv dG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3dhdGNoLmMgYi90b29scy94ZW5z dG9yZS94ZW5zdG9yZWRfd2F0Y2guYwppbmRleCA4NTM2MmJjY2UzMTQuLjMx NmMwOGI3Zjc1NCAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3RvcmUveGVuc3Rv cmVkX3dhdGNoLmMKKysrIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3dh dGNoLmMKQEAgLTI0Myw3ICsyNDMsNyBAQCBzdGF0aWMgc3RydWN0IHdhdGNo ICphZGRfd2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIGNoYXIgKnBh dGgsIGNoYXIgKnRva2VuLAogCXJldHVybiBOVUxMOwogfQogCi1pbnQgZG9f d2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbikKK2ludCBkb193YXRjaChjb25zdCB2b2lkICpjdHgsIHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pCiB7CiAJc3RydWN0IHdhdGNoICp3YXRjaDsKIAljaGFyICp2ZWNbMl07 CkBAIC0yNTIsNyArMjUyLDcgQEAgaW50IGRvX3dhdGNoKHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJaWYg KGdldF9zdHJpbmdzKGluLCB2ZWMsIEFSUkFZX1NJWkUodmVjKSkgIT0gQVJS QVlfU0laRSh2ZWMpKQogCQlyZXR1cm4gRUlOVkFMOwogCi0JZXJybm8gPSBj aGVja193YXRjaF9wYXRoKGNvbm4sIGluLCAmKHZlY1swXSksICZyZWxhdGl2 ZSk7CisJZXJybm8gPSBjaGVja193YXRjaF9wYXRoKGNvbm4sIGN0eCwgJih2 ZWNbMF0pLCAmcmVsYXRpdmUpOwogCWlmIChlcnJubykKIAkJcmV0dXJuIGVy cm5vOwogCkBAIC0yODMsNyArMjgzLDggQEAgaW50IGRvX3dhdGNoKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiAJcmV0dXJuIDA7CiB9CiAKLWludCBkb191bndhdGNoKHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQg ZG9fdW53YXRjaChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAorCSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7 CiAJc3RydWN0IHdhdGNoICp3YXRjaDsKIAljaGFyICpub2RlLCAqdmVjWzJd OwpAQCAtMjkxLDcgKzI5Miw3IEBAIGludCBkb191bndhdGNoKHN0cnVjdCBj b25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJ aWYgKGdldF9zdHJpbmdzKGluLCB2ZWMsIEFSUkFZX1NJWkUodmVjKSkgIT0g QVJSQVlfU0laRSh2ZWMpKQogCQlyZXR1cm4gRUlOVkFMOwogCi0Jbm9kZSA9 IGNhbm9uaWNhbGl6ZShjb25uLCBpbiwgdmVjWzBdKTsKKwlub2RlID0gY2Fu b25pY2FsaXplKGNvbm4sIGN0eCwgdmVjWzBdKTsKIAlpZiAoIW5vZGUpCiAJ CXJldHVybiBFTk9NRU07CiAJbGlzdF9mb3JfZWFjaF9lbnRyeSh3YXRjaCwg JmNvbm4tPndhdGNoZXMsIGxpc3QpIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3hl bnN0b3JlL3hlbnN0b3JlZF93YXRjaC5oIGIvdG9vbHMveGVuc3RvcmUveGVu c3RvcmVkX3dhdGNoLmgKaW5kZXggMGU2OTNmMDgzOWNkLi4wOTE4OTBlZGNh OTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRj aC5oCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRjaC5oCkBA IC0yMSw4ICsyMSwxMCBAQAogCiAjaW5jbHVkZSAieGVuc3RvcmVkX2NvcmUu aCIKIAotaW50IGRvX3dhdGNoKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwotaW50IGRvX3Vud2F0Y2goc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICpp bik7CitpbnQgZG9fd2F0Y2goY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwKKwkgICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICpp bik7CitpbnQgZG9fdW53YXRjaChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAorCSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0 YSAqaW4pOwogCiAvKiBGaXJlIGFsbCB3YXRjaGVzOiAhZXhhY3QgbWVhbnMg YWxsIHRoZSBjaGlsZHJlbiBhcmUgYWZmZWN0ZWQgKGllLiBybSkuICovCiB2 b2lkIGZpcmVfd2F0Y2hlcyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29u c3Qgdm9pZCAqdG1wLCBjb25zdCBjaGFyICpuYW1lLAo= --=separator Content-Type: application/octet-stream; name="xsa416-4.13.patch" Content-Disposition: attachment; filename="xsa416-4.13.patch" Content-Transfer-Encoding: base64 RnJvbSAxYTU4ZmZlZjk5M2ZlODZmZThhN2MxMzQ5ODgxNjUwZTliMGZlOGE3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3Nz IDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFR1ZSwgMTMgU2VwIDIwMjIgMDc6 MzU6MTAgKzAyMDAKU3ViamVjdDogdG9vbHMveGVuc3RvcmU6IGRvbid0IHVz ZSBjb25uLT5pbiBhcyBjb250ZXh0IGZvciB0ZW1wb3JhcnkKIGFsbG9jYXRp b25zCgpVc2luZyB0aGUgc3RydWN0IGJ1ZmZlcmVkIGRhdGEgcG9pbnRlciBv ZiB0aGUgY3VycmVudCBwcm9jZXNzZWQgcmVxdWVzdApmb3IgdGVtcG9yYXJ5 IGRhdGEgYWxsb2NhdGlvbnMgaGFzIGEgbWFqb3IgZHJhd2JhY2s6IHRoZSB1 c2VkIGFyZWEgKGFuZAp3aXRoIHRoYXQgdGhlIHRlbXBvcmFyeSBkYXRhKSBp cyBmcmVlZCBvbmx5IGFmdGVyIHRoZSByZXNwb25zZSBvZiB0aGUKcmVxdWVz dCBoYXMgYmVlbiB3cml0dGVuIHRvIHRoZSByaW5nIHBhZ2Ugb3IgaGFzIGJl ZW4gcmVhZCB2aWEgdGhlCnNvY2tldC4gVGhpcyBjYW4gaGFwcGVuIG11Y2gg bGF0ZXIgaW4gY2FzZSBhIGd1ZXN0IGlzbid0IHJlYWRpbmcgaXRzCnJlc3Bv bnNlcyBmYXN0IGVub3VnaC4KCkFzIHRoZSB0ZW1wb3JhcnkgZGF0YSBjYW4g YmUgc2FmZWx5IGZyZWVkIGFmdGVyIGNyZWF0aW5nIHRoZSByZXNwb25zZSwK YWRkIGEgdGVtcG9yYXJ5IGNvbnRleHQgZm9yIHRoYXQgcHVycG9zZSBhbmQg dXNlIHRoYXQgZm9yIGFsbG9jYXRpbmcKdGhlIHRlbXBvcmFyeSBtZW1vcnks IGFzIGl0IHdhcyBhbHJlYWR5IHRoZSBjYXNlIGJlZm9yZSBjb21taXQKY2Mw NjEyNDY0ODk2ICgieGVuc3RvcmU6IGFkZCBzbWFsbCBkZWZhdWx0IGRhdGEg YnVmZmVyIHRvIGludGVybmFsCnN0cnVjdCIpLgoKU29tZSBzdWItZnVuY3Rp b25zIG5lZWQgdG8gZ2FpbiB0aGUgImNvbnN0IiBhdHRyaWJ1dGUgZm9yIHRo ZSB0YWxsb2MKY29udGV4dC4KClRoaXMgaXMgWFNBLTQxNiAvIENWRS0yMDIy LTQyMzE5LgoKUmVwb3J0ZWQtYnk6IEp1bGllbiBHcmFsbCA8amdyYWxsQGFt YXpvbi5jb20+CkZpeGVzOiBjYzA2MTI0NjQ4OTYgKCJ4ZW5zdG9yZTogYWRk IHNtYWxsIGRlZmF1bHQgZGF0YSBidWZmZXIgdG8gaW50ZXJuYWwgc3RydWN0 IikKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9u LmNvbT4KCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRf Y29udHJvbC5jIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wu YwppbmRleCA0NTRmZTlkNWFiMTguLjM1ODVkN2M2OTUwZCAxMDA2NDQKLS0t IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuYworKysgYi90 b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29udHJvbC5jCkBAIC0zMCwxMSAr MzAsMTEgQEAKIAogc3RydWN0IGNtZF9zIHsKIAljaGFyICpjbWQ7Ci0JaW50 ICgqZnVuYykodm9pZCAqLCBzdHJ1Y3QgY29ubmVjdGlvbiAqLCBjaGFyICoq LCBpbnQpOworCWludCAoKmZ1bmMpKGNvbnN0IHZvaWQgKiwgc3RydWN0IGNv bm5lY3Rpb24gKiwgY2hhciAqKiwgaW50KTsKIAljaGFyICpwYXJzOwogfTsK IAotc3RhdGljIGludCBkb19jb250cm9sX2NoZWNrKHZvaWQgKmN0eCwgc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMgaW50IGRvX2NvbnRyb2xf Y2hlY2soY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwKIAkJCSAgICBjaGFyICoqdmVjLCBpbnQgbnVtKQogewogCWlmIChudW0p CkBAIC00Niw3ICs0Niw3IEBAIHN0YXRpYyBpbnQgZG9fY29udHJvbF9jaGVj ayh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IGRvX2NvbnRyb2xfbG9nKHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMgaW50IGRvX2Nv bnRyb2xfbG9nKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sCiAJCQkgIGNoYXIgKip2ZWMsIGludCBudW0pCiB7CiAJaWYgKG51 bSAhPSAxKQpAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgaW50IGRvX2NvbnRy b2xfbG9nKHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZG9fY29udHJvbF9sb2dmaWxl KHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMg aW50IGRvX2NvbnRyb2xfbG9nZmlsZShjb25zdCB2b2lkICpjdHgsIHN0cnVj dCBjb25uZWN0aW9uICpjb25uLAogCQkJICAgICAgY2hhciAqKnZlYywgaW50 IG51bSkKIHsKIAlpZiAobnVtICE9IDEpCkBAIC0xNjIsNyArMTYyLDcgQEAg c3RhdGljIGludCBxdW90YV9nZXQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwKIAlyZXR1cm4gZG9tYWluX2dldF9xdW90YShj dHgsIGNvbm4sIGF0b2kodmVjWzBdKSk7CiB9CiAKLXN0YXRpYyBpbnQgZG9f Y29udHJvbF9xdW90YSh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpj b25uLAorc3RhdGljIGludCBkb19jb250cm9sX3F1b3RhKGNvbnN0IHZvaWQg KmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCQkgICAgY2hhciAq KnZlYywgaW50IG51bSkKIHsKIAlpZiAobnVtID09IDApCkBAIC0xNzQsNyAr MTc0LDcgQEAgc3RhdGljIGludCBkb19jb250cm9sX3F1b3RhKHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJuIHF1b3RhX2dl dChjdHgsIGNvbm4sIHZlYywgbnVtKTsKIH0KIAotc3RhdGljIGludCBkb19j b250cm9sX3F1b3RhX3Modm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwKK3N0YXRpYyBpbnQgZG9fY29udHJvbF9xdW90YV9zKGNvbnN0IHZv aWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCQkgICAgICBj aGFyICoqdmVjLCBpbnQgbnVtKQogewogCWlmIChudW0gPT0gMCkKQEAgLTE4 Niw3ICsxODYsNyBAQCBzdGF0aWMgaW50IGRvX2NvbnRyb2xfcXVvdGFfcyh2 b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCXJldHVybiBF SU5WQUw7CiB9CiAKLXN0YXRpYyBpbnQgZG9fY29udHJvbF9tZW1yZXBvcnQo dm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKK3N0YXRpYyBp bnQgZG9fY29udHJvbF9tZW1yZXBvcnQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwKIAkJCQljaGFyICoqdmVjLCBpbnQgbnVt KQogewogCUZJTEUgKmZwOwpAQCAtMjI1LDcgKzIyNSw3IEBAIHN0YXRpYyBp bnQgZG9fY29udHJvbF9tZW1yZXBvcnQodm9pZCAqY3R4LCBzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBk b19jb250cm9sX3ByaW50KHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sCitzdGF0aWMgaW50IGRvX2NvbnRyb2xfcHJpbnQoY29uc3Qgdm9p ZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAkJCSAgICBjaGFy ICoqdmVjLCBpbnQgbnVtKQogewogCWlmIChudW0gIT0gMSkKQEAgLTIzNyw3 ICsyMzcsNyBAQCBzdGF0aWMgaW50IGRvX2NvbnRyb2xfcHJpbnQodm9pZCAq Y3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIGludCBkb19jb250cm9sX2hlbHAodm9pZCAqLCBzdHJ1Y3Qg Y29ubmVjdGlvbiAqLCBjaGFyICoqLCBpbnQpOworc3RhdGljIGludCBkb19j b250cm9sX2hlbHAoY29uc3Qgdm9pZCAqLCBzdHJ1Y3QgY29ubmVjdGlvbiAq LCBjaGFyICoqLCBpbnQpOwogCiBzdGF0aWMgc3RydWN0IGNtZF9zIGNtZHNb XSA9IHsKIAl7ICJjaGVjayIsIGRvX2NvbnRyb2xfY2hlY2ssICIiIH0sCkBA IC0yNTAsNyArMjUwLDcgQEAgc3RhdGljIHN0cnVjdCBjbWRfcyBjbWRzW10g PSB7CiAJeyAiaGVscCIsIGRvX2NvbnRyb2xfaGVscCwgIiIgfSwKIH07CiAK LXN0YXRpYyBpbnQgZG9fY29udHJvbF9oZWxwKHZvaWQgKmN0eCwgc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMgaW50IGRvX2NvbnRyb2xfaGVs cChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAog CQkJICAgY2hhciAqKnZlYywgaW50IG51bSkKIHsKIAlpbnQgY21kLCBsZW4g PSAwOwpAQCAtMjg2LDcgKzI4Niw4IEBAIHN0YXRpYyBpbnQgZG9fY29udHJv bF9oZWxwKHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJ cmV0dXJuIDA7CiB9CiAKLWludCBkb19jb250cm9sKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9f Y29udHJvbChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpj b25uLAorCSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJ aW50IG51bTsKIAlpbnQgY21kOwpAQCAtMjk4LDcgKzI5OSw3IEBAIGludCBk b19jb250cm9sKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCiAJbnVtID0geHNfY291bnRfc3RyaW5ncyhpbi0+ YnVmZmVyLCBpbi0+dXNlZCk7CiAJaWYgKG51bSA8IDEpCiAJCXJldHVybiBF SU5WQUw7Ci0JdmVjID0gdGFsbG9jX2FycmF5KGluLCBjaGFyICosIG51bSk7 CisJdmVjID0gdGFsbG9jX2FycmF5KGN0eCwgY2hhciAqLCBudW0pOwogCWlm ICghdmVjKQogCQlyZXR1cm4gRU5PTUVNOwogCWlmIChnZXRfc3RyaW5ncyhp biwgdmVjLCBudW0pICE9IG51bSkKQEAgLTMwNiw3ICszMDcsNyBAQCBpbnQg ZG9fY29udHJvbChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKQogCiAJZm9yIChjbWQgPSAwOyBjbWQgPCBBUlJB WV9TSVpFKGNtZHMpOyBjbWQrKykKIAkJaWYgKHN0cmVxKHZlY1swXSwgY21k c1tjbWRdLmNtZCkpCi0JCQlyZXR1cm4gY21kc1tjbWRdLmZ1bmMoaW4sIGNv bm4sIHZlYyArIDEsIG51bSAtIDEpOworCQkJcmV0dXJuIGNtZHNbY21kXS5m dW5jKGN0eCwgY29ubiwgdmVjICsgMSwgbnVtIC0gMSk7CiAKIAlyZXR1cm4g RUlOVkFMOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3Rv cmVkX2NvbnRyb2wuaCBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250 cm9sLmgKaW5kZXggMjA3ZTBhNmZhMzUyLi5mYWE5NTU5NjhkYjEgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmgKKysr IGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuaApAQCAtMTYs NCArMTYsNSBAQAogICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAqLwog Ci1pbnQgZG9fY29udHJvbChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKK2ludCBkb19jb250cm9sKGNvbnN0 IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJICAgICAg IHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CmRpZmYgLS1naXQgYS90b29s cy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5jIGIvdG9vbHMveGVuc3RvcmUv eGVuc3RvcmVkX2NvcmUuYwppbmRleCAyYzBmOGZkOTliYmQuLmQ2YmJiNTMy ZmIxOCAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2Nv cmUuYworKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5jCkBA IC0xMTQ1LDExICsxMTQ1LDEzIEBAIHN0YXRpYyBzdHJ1Y3Qgbm9kZSAqZ2V0 X25vZGVfY2Fub25pY2FsaXplZChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwK IAlyZXR1cm4gZ2V0X25vZGUoY29ubiwgY3R4LCAqY2Fub25pY2FsX25hbWUs IHBlcm0pOwogfQogCi1zdGF0aWMgaW50IHNlbmRfZGlyZWN0b3J5KHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CitzdGF0aWMgaW50IHNlbmRfZGlyZWN0b3J5KGNvbnN0IHZvaWQgKmN0eCwg c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCQkgIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbikKIHsKIAlzdHJ1Y3Qgbm9kZSAqbm9kZTsKIAotCW5vZGUg PSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGluLCBvbmVhcmcoaW4p LCBOVUxMLCBYU19QRVJNX1JFQUQpOworCW5vZGUgPSBnZXRfbm9kZV9jYW5v bmljYWxpemVkKGNvbm4sIGN0eCwgb25lYXJnKGluKSwgTlVMTCwKKwkJCQkg ICAgICBYU19QRVJNX1JFQUQpOwogCWlmICghbm9kZSkKIAkJcmV0dXJuIGVy cm5vOwogCkBAIC0xMTU4LDcgKzExNjAsNyBAQCBzdGF0aWMgaW50IHNlbmRf ZGlyZWN0b3J5KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg c2VuZF9kaXJlY3RvcnlfcGFydChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwK K3N0YXRpYyBpbnQgc2VuZF9kaXJlY3RvcnlfcGFydChjb25zdCB2b2lkICpj dHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCQkJICAgICAgIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbikKIHsKIAl1bnNpZ25lZCBpbnQgb2ZmLCBs ZW4sIG1heGxlbiwgZ2VubGVuOwpAQCAtMTE3MCw3ICsxMTcyLDggQEAgc3Rh dGljIGludCBzZW5kX2RpcmVjdG9yeV9wYXJ0KHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAogCQlyZXR1cm4gRUlOVkFMOwogCiAJLyogRmlyc3QgYXJnIGlz IG5vZGUgbmFtZS4gKi8KLQlub2RlID0gZ2V0X25vZGVfY2Fub25pY2FsaXpl ZChjb25uLCBpbiwgaW4tPmJ1ZmZlciwgTlVMTCwgWFNfUEVSTV9SRUFEKTsK Kwlub2RlID0gZ2V0X25vZGVfY2Fub25pY2FsaXplZChjb25uLCBjdHgsIGlu LT5idWZmZXIsIE5VTEwsCisJCQkJICAgICAgWFNfUEVSTV9SRUFEKTsKIAlp ZiAoIW5vZGUpCiAJCXJldHVybiBlcnJubzsKIApAQCAtMTE5Nyw3ICsxMjAw LDcgQEAgc3RhdGljIGludCBzZW5kX2RpcmVjdG9yeV9wYXJ0KHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAogCQkJYnJlYWs7CiAJfQogCi0JZGF0YSA9IHRh bGxvY19hcnJheShpbiwgY2hhciwgZ2VubGVuICsgbGVuICsgMSk7CisJZGF0 YSA9IHRhbGxvY19hcnJheShjdHgsIGNoYXIsIGdlbmxlbiArIGxlbiArIDEp OwogCWlmICghZGF0YSkKIAkJcmV0dXJuIEVOT01FTTsKIApAQCAtMTIxMywx MSArMTIxNiwxMyBAQCBzdGF0aWMgaW50IHNlbmRfZGlyZWN0b3J5X3BhcnQo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBpbnQgZG9fcmVhZChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQorc3RhdGljIGludCBkb19yZWFkKGNv bnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAg IHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAlzdHJ1Y3Qgbm9kZSAq bm9kZTsKIAotCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4s IGluLCBvbmVhcmcoaW4pLCBOVUxMLCBYU19QRVJNX1JFQUQpOworCW5vZGUg PSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGN0eCwgb25lYXJnKGlu KSwgTlVMTCwKKwkJCQkgICAgICBYU19QRVJNX1JFQUQpOwogCWlmICghbm9k ZSkKIAkJcmV0dXJuIGVycm5vOwogCkBAIC0xMzk3LDcgKzE0MDIsOCBAQCBz dGF0aWMgc3RydWN0IG5vZGUgKmNyZWF0ZV9ub2RlKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBjb25zdCB2b2lkICpjdHgsCiB9CiAKIC8qIHBhdGgsIGRh dGEuLi4gKi8KLXN0YXRpYyBpbnQgZG9fd3JpdGUoc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKK3N0YXRpYyBp bnQgZG9fd3JpdGUoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlv biAqY29ubiwKKwkJICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsK IAl1bnNpZ25lZCBpbnQgb2Zmc2V0LCBkYXRhbGVuOwogCXN0cnVjdCBub2Rl ICpub2RlOwpAQCAtMTQxMSwxMiArMTQxNywxMiBAQCBzdGF0aWMgaW50IGRv X3dyaXRlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiAJb2Zmc2V0ID0gc3RybGVuKHZlY1swXSkgKyAxOwog CWRhdGFsZW4gPSBpbi0+dXNlZCAtIG9mZnNldDsKIAotCW5vZGUgPSBnZXRf bm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGluLCB2ZWNbMF0sICZuYW1lLCBY U19QRVJNX1dSSVRFKTsKKwlub2RlID0gZ2V0X25vZGVfY2Fub25pY2FsaXpl ZChjb25uLCBjdHgsIHZlY1swXSwgJm5hbWUsIFhTX1BFUk1fV1JJVEUpOwog CWlmICghbm9kZSkgewogCQkvKiBObyBwZXJtaXNzaW9ucywgaW52YWxpZCBp bnB1dD8gKi8KIAkJaWYgKGVycm5vICE9IEVOT0VOVCkKIAkJCXJldHVybiBl cnJubzsKLQkJbm9kZSA9IGNyZWF0ZV9ub2RlKGNvbm4sIGluLCBuYW1lLCBp bi0+YnVmZmVyICsgb2Zmc2V0LAorCQlub2RlID0gY3JlYXRlX25vZGUoY29u biwgY3R4LCBuYW1lLCBpbi0+YnVmZmVyICsgb2Zmc2V0LAogCQkJCSAgIGRh dGFsZW4pOwogCQlpZiAoIW5vZGUpCiAJCQlyZXR1cm4gZXJybm87CkBAIC0x NDI3LDE4ICsxNDMzLDE5IEBAIHN0YXRpYyBpbnQgZG9fd3JpdGUoc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikK IAkJCXJldHVybiBlcnJubzsKIAl9CiAKLQlmaXJlX3dhdGNoZXMoY29ubiwg aW4sIG5hbWUsIG5vZGUsIGZhbHNlLCBOVUxMKTsKKwlmaXJlX3dhdGNoZXMo Y29ubiwgY3R4LCBuYW1lLCBub2RlLCBmYWxzZSwgTlVMTCk7CiAJc2VuZF9h Y2soY29ubiwgWFNfV1JJVEUpOwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyBpbnQgZG9fbWtkaXIoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbikKK3N0YXRpYyBpbnQgZG9fbWtkaXIoY29u c3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICAg IHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAlzdHJ1Y3Qgbm9kZSAq bm9kZTsKIAljaGFyICpuYW1lOwogCi0Jbm9kZSA9IGdldF9ub2RlX2Nhbm9u aWNhbGl6ZWQoY29ubiwgaW4sIG9uZWFyZyhpbiksICZuYW1lLAorCW5vZGUg PSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGN0eCwgb25lYXJnKGlu KSwgJm5hbWUsCiAJCQkJICAgICAgWFNfUEVSTV9XUklURSk7CiAKIAkvKiBJ ZiBpdCBhbHJlYWR5IGV4aXN0cywgZmluZS4gKi8KQEAgLTE0NDYsMTAgKzE0 NTMsMTAgQEAgc3RhdGljIGludCBkb19ta2RpcihzdHJ1Y3QgY29ubmVjdGlv biAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCQkvKiBObyBw ZXJtaXNzaW9ucz8gKi8KIAkJaWYgKGVycm5vICE9IEVOT0VOVCkKIAkJCXJl dHVybiBlcnJubzsKLQkJbm9kZSA9IGNyZWF0ZV9ub2RlKGNvbm4sIGluLCBu YW1lLCBOVUxMLCAwKTsKKwkJbm9kZSA9IGNyZWF0ZV9ub2RlKGNvbm4sIGN0 eCwgbmFtZSwgTlVMTCwgMCk7CiAJCWlmICghbm9kZSkKIAkJCXJldHVybiBl cnJubzsKLQkJZmlyZV93YXRjaGVzKGNvbm4sIGluLCBuYW1lLCBub2RlLCBm YWxzZSwgTlVMTCk7CisJCWZpcmVfd2F0Y2hlcyhjb25uLCBjdHgsIG5hbWUs IG5vZGUsIGZhbHNlLCBOVUxMKTsKIAl9CiAJc2VuZF9hY2soY29ubiwgWFNf TUtESVIpOwogCkBAIC0xNTQ3LDIyICsxNTU0LDIzIEBAIHN0YXRpYyBpbnQg X3JtKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBub2RlICpub2RlLAogfQogCiAKLXN0YXRpYyBpbnQgZG9fcm0o c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKK3N0YXRpYyBpbnQgZG9fcm0oY29uc3Qgdm9pZCAqY3R4LCBzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKIHsKIAlzdHJ1Y3Qgbm9kZSAqbm9kZTsKIAlpbnQgcmV0OwogCWNo YXIgKm5hbWU7CiAJY2hhciAqcGFyZW50bmFtZTsKIAotCW5vZGUgPSBnZXRf bm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGluLCBvbmVhcmcoaW4pLCAmbmFt ZSwKKwlub2RlID0gZ2V0X25vZGVfY2Fub25pY2FsaXplZChjb25uLCBjdHgs IG9uZWFyZyhpbiksICZuYW1lLAogCQkJCSAgICAgIFhTX1BFUk1fV1JJVEUp OwogCWlmICghbm9kZSkgewogCQkvKiBEaWRuJ3QgZXhpc3QgYWxyZWFkeT8g IEZpbmUsIGlmIHBhcmVudCBleGlzdHMuICovCiAJCWlmIChlcnJubyA9PSBF Tk9FTlQpIHsKLQkJCXBhcmVudG5hbWUgPSBnZXRfcGFyZW50KGluLCBuYW1l KTsKKwkJCXBhcmVudG5hbWUgPSBnZXRfcGFyZW50KGN0eCwgbmFtZSk7CiAJ CQlpZiAoIXBhcmVudG5hbWUpCiAJCQkJcmV0dXJuIGVycm5vOwotCQkJbm9k ZSA9IHJlYWRfbm9kZShjb25uLCBpbiwgcGFyZW50bmFtZSk7CisJCQlub2Rl ID0gcmVhZF9ub2RlKGNvbm4sIGN0eCwgcGFyZW50bmFtZSk7CiAJCQlpZiAo bm9kZSkgewogCQkJCXNlbmRfYWNrKGNvbm4sIFhTX1JNKTsKIAkJCQlyZXR1 cm4gMDsKQEAgLTE1NzcsNyArMTU4NSw3IEBAIHN0YXRpYyBpbnQgZG9fcm0o c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKIAlpZiAoc3RyZXEobmFtZSwgIi8iKSkKIAkJcmV0dXJuIEVJTlZB TDsKIAotCXJldCA9IF9ybShjb25uLCBpbiwgbm9kZSwgbmFtZSk7CisJcmV0 ID0gX3JtKGNvbm4sIGN0eCwgbm9kZSwgbmFtZSk7CiAJaWYgKHJldCkKIAkJ cmV0dXJuIHJldDsKIApAQCAtMTU4NywxMyArMTU5NSwxNSBAQCBzdGF0aWMg aW50IGRvX3JtKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCiB9CiAKIAotc3RhdGljIGludCBkb19nZXRfcGVy bXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbikKK3N0YXRpYyBpbnQgZG9fZ2V0X3Blcm1zKGNvbnN0IHZvaWQg KmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCQlzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7CiAJY2hh ciAqc3RyaW5nczsKIAl1bnNpZ25lZCBpbnQgbGVuOwogCi0Jbm9kZSA9IGdl dF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4sIG9uZWFyZyhpbiksIE5V TEwsIFhTX1BFUk1fUkVBRCk7CisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNh bGl6ZWQoY29ubiwgY3R4LCBvbmVhcmcoaW4pLCBOVUxMLAorCQkJCSAgICAg IFhTX1BFUk1fUkVBRCk7CiAJaWYgKCFub2RlKQogCQlyZXR1cm4gZXJybm87 CiAKQEAgLTE2MDYsNyArMTYxNiw4IEBAIHN0YXRpYyBpbnQgZG9fZ2V0X3Bl cm1zKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZG9fc2V0 X3Blcm1zKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCitzdGF0aWMgaW50IGRvX3NldF9wZXJtcyhjb25zdCB2 b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkJc3RydWN0 IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXN0cnVjdCBub2RlX3Blcm1zIHBl cm1zLCBvbGRfcGVybXM7CiAJY2hhciAqbmFtZSwgKnBlcm1zdHI7CkBAIC0x NjIzLDcgKzE2MzQsNyBAQCBzdGF0aWMgaW50IGRvX3NldF9wZXJtcyhzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KQogCiAJcGVybXN0ciA9IGluLT5idWZmZXIgKyBzdHJsZW4oaW4tPmJ1ZmZl cikgKyAxOwogCi0JcGVybXMucCA9IHRhbGxvY19hcnJheShpbiwgc3RydWN0 IHhzX3Blcm1pc3Npb25zLCBwZXJtcy5udW0pOworCXBlcm1zLnAgPSB0YWxs b2NfYXJyYXkoY3R4LCBzdHJ1Y3QgeHNfcGVybWlzc2lvbnMsIHBlcm1zLm51 bSk7CiAJaWYgKCFwZXJtcy5wKQogCQlyZXR1cm4gRU5PTUVNOwogCWlmICgh eHNfc3RyaW5nc190b19wZXJtcyhwZXJtcy5wLCBwZXJtcy5udW0sIHBlcm1z dHIpKQpAQCAtMTYzOCw3ICsxNjQ5LDcgQEAgc3RhdGljIGludCBkb19zZXRf cGVybXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbikKIAl9CiAKIAkvKiBXZSBtdXN0IG93biBub2RlIHRvIGRv IHRoaXMgKHRvb2xzIGNhbiBkbyB0aGlzIHRvbykuICovCi0Jbm9kZSA9IGdl dF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4sIGluLT5idWZmZXIsICZu YW1lLAorCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGN0 eCwgaW4tPmJ1ZmZlciwgJm5hbWUsCiAJCQkJICAgICAgWFNfUEVSTV9XUklU RSB8IFhTX1BFUk1fT1dORVIpOwogCWlmICghbm9kZSkKIAkJcmV0dXJuIGVy cm5vOwpAQCAtMTY3Myw3ICsxNjg0LDcgQEAgc3RhdGljIGludCBkb19zZXRf cGVybXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbikKIAkJcmV0dXJuIGVycm5vOwogCX0KIAotCWZpcmVfd2F0 Y2hlcyhjb25uLCBpbiwgbmFtZSwgbm9kZSwgZmFsc2UsICZvbGRfcGVybXMp OworCWZpcmVfd2F0Y2hlcyhjb25uLCBjdHgsIG5hbWUsIG5vZGUsIGZhbHNl LCAmb2xkX3Blcm1zKTsKIAlzZW5kX2Fjayhjb25uLCBYU19TRVRfUEVSTVMp OwogCiAJcmV0dXJuIDA7CkBAIC0xNjgxLDcgKzE2OTIsOCBAQCBzdGF0aWMg aW50IGRvX3NldF9wZXJtcyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCiBzdGF0aWMgc3RydWN0IHsKIAlj b25zdCBjaGFyICpzdHI7Ci0JaW50ICgqZnVuYykoc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CisJaW50ICgq ZnVuYykoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwKKwkJICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CiAJdW5zaWdu ZWQgaW50IGZsYWdzOwogI2RlZmluZSBYU19GTEFHX05PVElECQkoMVUgPDwg MCkJLyogSWdub3JlIHRyYW5zYWN0aW9uIGlkLiAqLwogI2RlZmluZSBYU19G TEFHX1BSSVYJCSgxVSA8PCAxKQkvKiBQcml2aWxlZ2VkIGRvbWFpbiBvbmx5 LiAqLwpAQCAtMTc1NCw2ICsxNzY2LDcgQEAgc3RhdGljIHZvaWQgcHJvY2Vz c19tZXNzYWdlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCiAJc3RydWN0IHRyYW5zYWN0aW9uICp0cmFuczsK IAllbnVtIHhzZF9zb2NrbXNnX3R5cGUgdHlwZSA9IGluLT5oZHIubXNnLnR5 cGU7CiAJaW50IHJldDsKKwl2b2lkICpjdHg7CiAKIAlpZiAoKHVuc2lnbmVk IGludCl0eXBlID49IFhTX1RZUEVfQ09VTlQgfHwgIXdpcmVfZnVuY3NbdHlw ZV0uZnVuYykgewogCQllcHJpbnRmKCJDbGllbnQgdW5rbm93biBvcGVyYXRp b24gJWkiLCB0eXBlKTsKQEAgLTE3NzQsMTAgKzE3ODcsMTcgQEAgc3RhdGlj IHZvaWQgcHJvY2Vzc19tZXNzYWdlKHN0cnVjdCBjb25uZWN0aW9uICpjb25u LCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJCXJldHVybjsKIAl9CiAK KwljdHggPSB0YWxsb2NfbmV3KE5VTEwpOworCWlmICghY3R4KSB7CisJCXNl bmRfZXJyb3IoY29ubiwgRU5PTUVNKTsKKwkJcmV0dXJuOworCX0KKwogCWFz c2VydChjb25uLT50cmFuc2FjdGlvbiA9PSBOVUxMKTsKIAljb25uLT50cmFu c2FjdGlvbiA9IHRyYW5zOwogCi0JcmV0ID0gd2lyZV9mdW5jc1t0eXBlXS5m dW5jKGNvbm4sIGluKTsKKwlyZXQgPSB3aXJlX2Z1bmNzW3R5cGVdLmZ1bmMo Y3R4LCBjb25uLCBpbik7CisJdGFsbG9jX2ZyZWUoY3R4KTsKIAlpZiAocmV0 KQogCQlzZW5kX2Vycm9yKGNvbm4sIHJldCk7CiAKZGlmZiAtLWdpdCBhL3Rv b2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21haW4uYyBiL3Rvb2xzL3hlbnN0 b3JlL3hlbnN0b3JlZF9kb21haW4uYwppbmRleCBmNDU4MzE0YzhlMDEuLjA0 YmRmNTE3OTIyNyAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3RvcmUveGVuc3Rv cmVkX2RvbWFpbi5jCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9k b21haW4uYwpAQCAtMzM3LDcgKzMzNyw3IEBAIGJvb2wgZG9tYWluX2Nhbl93 cml0ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubikKIAlyZXR1cm4gKChpbnRm LT5yc3BfcHJvZCAtIGludGYtPnJzcF9jb25zKSAhPSBYRU5TVE9SRV9SSU5H X1NJWkUpOwogfQogCi1zdGF0aWMgY2hhciAqdGFsbG9jX2RvbWFpbl9wYXRo KHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBkb21pZCkKK3N0YXRpYyBj aGFyICp0YWxsb2NfZG9tYWluX3BhdGgoY29uc3Qgdm9pZCAqY29udGV4dCwg dW5zaWduZWQgaW50IGRvbWlkKQogewogCXJldHVybiB0YWxsb2NfYXNwcmlu dGYoY29udGV4dCwgIi9sb2NhbC9kb21haW4vJXUiLCBkb21pZCk7CiB9CkBA IC00NzksNyArNDc5LDggQEAgc3RhdGljIHZvaWQgZG9tYWluX2Nvbm5fcmVz ZXQoc3RydWN0IGRvbWFpbiAqZG9tYWluKQogfQogCiAvKiBkb21pZCwgbWZu LCBldnRjaG4sIHBhdGggKi8KLWludCBkb19pbnRyb2R1Y2Uoc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKK2lu dCBkb19pbnRyb2R1Y2UoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwKKwkJIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsK IAlzdHJ1Y3QgZG9tYWluICpkb21haW47CiAJY2hhciAqdmVjWzNdOwpAQCAt NTYzLDcgKzU2NCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZG9tYWluICpmaW5kX2Nv bm5lY3RlZF9kb21haW4odW5zaWduZWQgaW50IGRvbWlkKQogCXJldHVybiBk b21haW47CiB9CiAKLWludCBkb19zZXRfdGFyZ2V0KHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9f c2V0X3RhcmdldChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAorCQkgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAlj aGFyICp2ZWNbMl07CiAJdW5zaWduZWQgaW50IGRvbWlkLCB0ZG9taWQ7CkBA IC02MTAsNyArNjEyLDggQEAgc3RhdGljIHN0cnVjdCBkb21haW4gKm9uZWFy Z19kb21haW4oc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiB9CiAKIC8qIGRv bWlkICovCi1pbnQgZG9fcmVsZWFzZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX3JlbGVhc2Uo Y29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkg ICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXN0cnVjdCBk b21haW4gKmRvbWFpbjsKIApAQCAtNjI1LDcgKzYyOCw4IEBAIGludCBkb19y ZWxlYXNlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiAJcmV0dXJuIDA7CiB9CiAKLWludCBkb19yZXN1bWUo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKK2ludCBkb19yZXN1bWUoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwKKwkgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0 YSAqaW4pCiB7CiAJc3RydWN0IGRvbWFpbiAqZG9tYWluOwogCkBAIC02NDAs NyArNjQ0LDggQEAgaW50IGRvX3Jlc3VtZShzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCXJldHVybiAwOwog fQogCi1pbnQgZG9fZ2V0X2RvbWFpbl9wYXRoKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9fZ2V0 X2RvbWFpbl9wYXRoKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sCisJCSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiB7CiAJY2hhciAqcGF0aDsKIAljb25zdCBjaGFyICpkb21pZF9zdHIgPSBv bmVhcmcoaW4pOwpAQCAtNjQ4LDE4ICs2NTMsMTcgQEAgaW50IGRvX2dldF9k b21haW5fcGF0aChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKQogCWlmICghZG9taWRfc3RyKQogCQlyZXR1cm4g RUlOVkFMOwogCi0JcGF0aCA9IHRhbGxvY19kb21haW5fcGF0aChjb25uLCBh dG9pKGRvbWlkX3N0cikpOworCXBhdGggPSB0YWxsb2NfZG9tYWluX3BhdGgo Y3R4LCBhdG9pKGRvbWlkX3N0cikpOwogCWlmICghcGF0aCkKIAkJcmV0dXJu IGVycm5vOwogCiAJc2VuZF9yZXBseShjb25uLCBYU19HRVRfRE9NQUlOX1BB VEgsIHBhdGgsIHN0cmxlbihwYXRoKSArIDEpOwogCi0JdGFsbG9jX2ZyZWUo cGF0aCk7Ci0KIAlyZXR1cm4gMDsKIH0KIAotaW50IGRvX2lzX2RvbWFpbl9p bnRyb2R1Y2VkKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9faXNfZG9tYWluX2ludHJvZHVjZWQo Y29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJ CSAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJaW50IHJlc3Vs dDsKIAl1bnNpZ25lZCBpbnQgZG9taWQ7CkBAIC02ODAsNyArNjg0LDggQEAg aW50IGRvX2lzX2RvbWFpbl9pbnRyb2R1Y2VkKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB9CiAKIC8qIEFs bG93IGd1ZXN0IHRvIHJlc2V0IGFsbCB3YXRjaGVzICovCi1pbnQgZG9fcmVz ZXRfd2F0Y2hlcyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX3Jlc2V0X3dhdGNoZXMoY29uc3Qg dm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICAgICBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJY29ubl9kZWxldGVfYWxs X3dhdGNoZXMoY29ubik7CiAJY29ubl9kZWxldGVfYWxsX3RyYW5zYWN0aW9u cyhjb25uKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3Jl ZF9kb21haW4uaCBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21haW4u aAppbmRleCBlMDEzYTk5OTFjYTguLjczMmViOGZhNzVlMSAxMDA2NDQKLS0t IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5oCisrKyBiL3Rv b2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21haW4uaApAQCAtMjIsMjUgKzIy LDMyIEBACiB2b2lkIGhhbmRsZV9ldmVudCh2b2lkKTsKIAogLyogZG9taWQs IG1mbiwgZXZlbnRjaG4sIHBhdGggKi8KLWludCBkb19pbnRyb2R1Y2Uoc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICpp bik7CitpbnQgZG9faW50cm9kdWNlKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sCisJCSBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pOwogCiAvKiBkb21pZCAqLwotaW50IGRvX2lzX2RvbWFpbl9pbnRyb2R1 Y2VkKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pOworaW50IGRvX2lzX2RvbWFpbl9pbnRyb2R1Y2VkKGNvbnN0 IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCQkgICAg c3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKIAogLyogZG9taWQgKi8KLWlu dCBkb19yZWxlYXNlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qg YnVmZmVyZWRfZGF0YSAqaW4pOworaW50IGRvX3JlbGVhc2UoY29uc3Qgdm9p ZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkgICAgICAgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKIAogLyogZG9taWQgKi8KLWludCBk b19yZXN1bWUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZm ZXJlZF9kYXRhICppbik7CitpbnQgZG9fcmVzdW1lKGNvbnN0IHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJICAgICAgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKTsKIAogLyogZG9taWQsIHRhcmdldCAqLwotaW50 IGRvX3NldF90YXJnZXQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbik7CitpbnQgZG9fc2V0X3RhcmdldChjb25z dCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkgIHN0 cnVjdCBidWZmZXJlZF9kYXRhICppbik7CiAKIC8qIGRvbWlkICovCi1pbnQg ZG9fZ2V0X2RvbWFpbl9wYXRoKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOworaW50IGRvX2dldF9kb21haW5f cGF0aChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25u LAorCQkgICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKIAogLyog QWxsb3cgZ3Vlc3QgdG8gcmVzZXQgYWxsIHdhdGNoZXMgKi8KLWludCBkb19y ZXNldF93YXRjaGVzKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qg YnVmZmVyZWRfZGF0YSAqaW4pOworaW50IGRvX3Jlc2V0X3dhdGNoZXMoY29u c3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICAg ICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwogCiB2b2lkIGRvbWFpbl9p bml0KHZvaWQpOwogCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5z dG9yZWRfdHJhbnNhY3Rpb24uYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3Jl ZF90cmFuc2FjdGlvbi5jCmluZGV4IDZlMjkxMThjODAwZC4uY2Q1OTI4NDVl N2NhIDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJh bnNhY3Rpb24uYworKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJh bnNhY3Rpb24uYwpAQCAtNDg3LDcgKzQ4Nyw4IEBAIHN0cnVjdCB0cmFuc2Fj dGlvbiAqdHJhbnNhY3Rpb25fbG9va3VwKHN0cnVjdCBjb25uZWN0aW9uICpj b25uLCB1aW50MzJfdCBpZCkKIAlyZXR1cm4gRVJSX1BUUigtRU5PRU5UKTsK IH0KIAotaW50IGRvX3RyYW5zYWN0aW9uX3N0YXJ0KHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9f dHJhbnNhY3Rpb25fc3RhcnQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwKKwkJCSBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiB7CiAJc3RydWN0IHRyYW5zYWN0aW9uICp0cmFucywgKmV4aXN0czsKIAlj aGFyIGlkX3N0clsyMF07CkBAIC01MDAsOCArNTAxLDggQEAgaW50IGRvX3Ry YW5zYWN0aW9uX3N0YXJ0KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJICAgIGNvbm4tPnRyYW5zYWN0aW9u X3N0YXJ0ZWQgPiBxdW90YV9tYXhfdHJhbnNhY3Rpb24pCiAJCXJldHVybiBF Tk9TUEM7CiAKLQkvKiBBdHRhY2ggdHJhbnNhY3Rpb24gdG8gaW5wdXQgZm9y IGF1dG9mcmVlIHVudGlsIGl0J3MgY29tcGxldGUgKi8KLQl0cmFucyA9IHRh bGxvY196ZXJvKGluLCBzdHJ1Y3QgdHJhbnNhY3Rpb24pOworCS8qIEF0dGFj aCB0cmFuc2FjdGlvbiB0byBjdHggZm9yIGF1dG9mcmVlIHVudGlsIGl0J3Mg Y29tcGxldGUgKi8KKwl0cmFucyA9IHRhbGxvY196ZXJvKGN0eCwgc3RydWN0 IHRyYW5zYWN0aW9uKTsKIAlpZiAoIXRyYW5zKQogCQlyZXR1cm4gRU5PTUVN OwogCkBAIC01NDgsNyArNTQ5LDggQEAgc3RhdGljIGludCB0cmFuc2FjdGlv bl9maXhfZG9tYWlucyhzdHJ1Y3QgdHJhbnNhY3Rpb24gKnRyYW5zLCBib29s IHVwZGF0ZSkKIAlyZXR1cm4gMDsKIH0KIAotaW50IGRvX3RyYW5zYWN0aW9u X2VuZChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVk X2RhdGEgKmluKQoraW50IGRvX3RyYW5zYWN0aW9uX2VuZChjb25zdCB2b2lk ICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkgICAgICAgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCWNvbnN0IGNoYXIgKmFyZyA9 IG9uZWFyZyhpbik7CiAJc3RydWN0IHRyYW5zYWN0aW9uICp0cmFuczsKQEAg LTU2NCw4ICs1NjYsOCBAQCBpbnQgZG9fdHJhbnNhY3Rpb25fZW5kKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiAJbGlzdF9kZWwoJnRyYW5zLT5saXN0KTsKIAljb25uLT50cmFuc2FjdGlv bl9zdGFydGVkLS07CiAKLQkvKiBBdHRhY2ggdHJhbnNhY3Rpb24gdG8gaW4g Zm9yIGF1dG8tY2xlYW51cCAqLwotCXRhbGxvY19zdGVhbChpbiwgdHJhbnMp OworCS8qIEF0dGFjaCB0cmFuc2FjdGlvbiB0byBjdHggZm9yIGF1dG8tY2xl YW51cCAqLworCXRhbGxvY19zdGVhbChjdHgsIHRyYW5zKTsKIAogCWlmIChz dHJlcShhcmcsICJUIikpIHsKIAkJaWYgKHRyYW5zLT5mYWlsKQpkaWZmIC0t Z2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0aW9uLmgg Yi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uaAppbmRl eCBlM2NiZDZiMjMwOTUuLjM5ZDdmODFjNTEyNyAxMDA2NDQKLS0tIGEvdG9v bHMveGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0aW9uLmgKKysrIGIvdG9v bHMveGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0aW9uLmgKQEAgLTI5LDgg KzI5LDEwIEBAIHN0cnVjdCB0cmFuc2FjdGlvbjsKIAogZXh0ZXJuIHVpbnQ2 NF90IGdlbmVyYXRpb247CiAKLWludCBkb190cmFuc2FjdGlvbl9zdGFydChz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEg Km5vZGUpOwotaW50IGRvX3RyYW5zYWN0aW9uX2VuZChzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKK2ludCBk b190cmFuc2FjdGlvbl9zdGFydChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAorCQkJIHN0cnVjdCBidWZmZXJlZF9kYXRhICpu b2RlKTsKK2ludCBkb190cmFuc2FjdGlvbl9lbmQoY29uc3Qgdm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICAgICAgIHN0cnVjdCBi dWZmZXJlZF9kYXRhICppbik7CiAKIHN0cnVjdCB0cmFuc2FjdGlvbiAqdHJh bnNhY3Rpb25fbG9va3VwKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCB1aW50 MzJfdCBpZCk7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0 b3JlZF93YXRjaC5jIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3dhdGNo LmMKaW5kZXggMTlkMGZiMDFiMWM0Li4xMzYyN2NlOTcyNjYgMTAwNjQ0Ci0t LSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRjaC5jCisrKyBiL3Rv b2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRjaC5jCkBAIC0xODQsNyArMTg0 LDcgQEAgc3RhdGljIGludCBkZXN0cm95X3dhdGNoKHZvaWQgKl93YXRjaCkK IAlyZXR1cm4gMDsKIH0KIAotaW50IGRvX3dhdGNoKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9f d2F0Y2goY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXN0cnVjdCB3YXRj aCAqd2F0Y2g7CiAJY2hhciAqdmVjWzJdOwpAQCAtMjAwLDcgKzIwMCw3IEBA IGludCBkb193YXRjaChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0 IGJ1ZmZlcmVkX2RhdGEgKmluKQogCQkvKiBjaGVjayBpZiB2YWxpZCBldmVu dCAqLwogCX0gZWxzZSB7CiAJCXJlbGF0aXZlID0gIXN0cnN0YXJ0cyh2ZWNb MF0sICIvIik7Ci0JCXZlY1swXSA9IGNhbm9uaWNhbGl6ZShjb25uLCBpbiwg dmVjWzBdKTsKKwkJdmVjWzBdID0gY2Fub25pY2FsaXplKGNvbm4sIGN0eCwg dmVjWzBdKTsKIAkJaWYgKCF2ZWNbMF0pCiAJCQlyZXR1cm4gRU5PTUVNOwog CQlpZiAoIWlzX3ZhbGlkX25vZGVuYW1lKHZlY1swXSkpCkBAIC0yNTAsNyAr MjUwLDggQEAgaW50IGRvX3dhdGNoKHN0cnVjdCBjb25uZWN0aW9uICpjb25u LCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJcmV0dXJuIDA7CiB9CiAK LWludCBkb191bndhdGNoKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9fdW53YXRjaChjb25zdCB2 b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCSAgICAgICBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IHdhdGNoICp3 YXRjaDsKIAljaGFyICpub2RlLCAqdmVjWzJdOwpAQCAtMjU4LDcgKzI1OSw3 IEBAIGludCBkb191bndhdGNoKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJaWYgKGdldF9zdHJpbmdzKGlu LCB2ZWMsIEFSUkFZX1NJWkUodmVjKSkgIT0gQVJSQVlfU0laRSh2ZWMpKQog CQlyZXR1cm4gRUlOVkFMOwogCi0Jbm9kZSA9IGNhbm9uaWNhbGl6ZShjb25u LCBpbiwgdmVjWzBdKTsKKwlub2RlID0gY2Fub25pY2FsaXplKGNvbm4sIGN0 eCwgdmVjWzBdKTsKIAlpZiAoIW5vZGUpCiAJCXJldHVybiBFTk9NRU07CiAJ bGlzdF9mb3JfZWFjaF9lbnRyeSh3YXRjaCwgJmNvbm4tPndhdGNoZXMsIGxp c3QpIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93 YXRjaC5oIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3dhdGNoLmgKaW5k ZXggMDMwOTQzNzRmMzc5Li40MDQ1NWRmZjVkMmIgMTAwNjQ0Ci0tLSBhL3Rv b2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRjaC5oCisrKyBiL3Rvb2xzL3hl bnN0b3JlL3hlbnN0b3JlZF93YXRjaC5oCkBAIC0yMSw4ICsyMSwxMCBAQAog CiAjaW5jbHVkZSAieGVuc3RvcmVkX2NvcmUuaCIKIAotaW50IGRvX3dhdGNo KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0 YSAqaW4pOwotaW50IGRvX3Vud2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CitpbnQgZG9fd2F0Y2go Y29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkg ICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CitpbnQgZG9fdW53YXRj aChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAor CSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwogCiAvKiBGaXJl IGFsbCB3YXRjaGVzOiAhZXhhY3QgbWVhbnMgYWxsIHRoZSBjaGlsZHJlbiBh cmUgYWZmZWN0ZWQgKGllLiBybSkuICovCiB2b2lkIGZpcmVfd2F0Y2hlcyhz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29uc3Qgdm9pZCAqdG1wLCBjb25z dCBjaGFyICpuYW1lLAo= --=separator Content-Type: application/octet-stream; name="xsa416-4.14.patch" Content-Disposition: attachment; filename="xsa416-4.14.patch" Content-Transfer-Encoding: base64 RnJvbSAzZmMxNDc4YWQ0NWEzM2RlMDU4ZGJhOTI1NWE3NjcyZjgwYTZjYmRk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3Nz IDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFR1ZSwgMTMgU2VwIDIwMjIgMDc6 MzU6MTAgKzAyMDAKU3ViamVjdDogdG9vbHMveGVuc3RvcmU6IGRvbid0IHVz ZSBjb25uLT5pbiBhcyBjb250ZXh0IGZvciB0ZW1wb3JhcnkKIGFsbG9jYXRp b25zCgpVc2luZyB0aGUgc3RydWN0IGJ1ZmZlcmVkIGRhdGEgcG9pbnRlciBv ZiB0aGUgY3VycmVudCBwcm9jZXNzZWQgcmVxdWVzdApmb3IgdGVtcG9yYXJ5 IGRhdGEgYWxsb2NhdGlvbnMgaGFzIGEgbWFqb3IgZHJhd2JhY2s6IHRoZSB1 c2VkIGFyZWEgKGFuZAp3aXRoIHRoYXQgdGhlIHRlbXBvcmFyeSBkYXRhKSBp cyBmcmVlZCBvbmx5IGFmdGVyIHRoZSByZXNwb25zZSBvZiB0aGUKcmVxdWVz dCBoYXMgYmVlbiB3cml0dGVuIHRvIHRoZSByaW5nIHBhZ2Ugb3IgaGFzIGJl ZW4gcmVhZCB2aWEgdGhlCnNvY2tldC4gVGhpcyBjYW4gaGFwcGVuIG11Y2gg bGF0ZXIgaW4gY2FzZSBhIGd1ZXN0IGlzbid0IHJlYWRpbmcgaXRzCnJlc3Bv bnNlcyBmYXN0IGVub3VnaC4KCkFzIHRoZSB0ZW1wb3JhcnkgZGF0YSBjYW4g YmUgc2FmZWx5IGZyZWVkIGFmdGVyIGNyZWF0aW5nIHRoZSByZXNwb25zZSwK YWRkIGEgdGVtcG9yYXJ5IGNvbnRleHQgZm9yIHRoYXQgcHVycG9zZSBhbmQg dXNlIHRoYXQgZm9yIGFsbG9jYXRpbmcKdGhlIHRlbXBvcmFyeSBtZW1vcnks IGFzIGl0IHdhcyBhbHJlYWR5IHRoZSBjYXNlIGJlZm9yZSBjb21taXQKY2Mw NjEyNDY0ODk2ICgieGVuc3RvcmU6IGFkZCBzbWFsbCBkZWZhdWx0IGRhdGEg YnVmZmVyIHRvIGludGVybmFsCnN0cnVjdCIpLgoKU29tZSBzdWItZnVuY3Rp b25zIG5lZWQgdG8gZ2FpbiB0aGUgImNvbnN0IiBhdHRyaWJ1dGUgZm9yIHRo ZSB0YWxsb2MKY29udGV4dC4KClRoaXMgaXMgWFNBLTQxNiAvIENWRS0yMDIy LTQyMzE5LgoKUmVwb3J0ZWQtYnk6IEp1bGllbiBHcmFsbCA8amdyYWxsQGFt YXpvbi5jb20+CkZpeGVzOiBjYzA2MTI0NjQ4OTYgKCJ4ZW5zdG9yZTogYWRk IHNtYWxsIGRlZmF1bHQgZGF0YSBidWZmZXIgdG8gaW50ZXJuYWwgc3RydWN0 IikKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9u LmNvbT4KCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRf Y29udHJvbC5jIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wu YwppbmRleCAwMjI3YTU1NjU2NTcuLjA1ZTM4ZTU3NmEzZCAxMDA2NDQKLS0t IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuYworKysgYi90 b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29udHJvbC5jCkBAIC0zMCwxMSAr MzAsMTEgQEAKIAogc3RydWN0IGNtZF9zIHsKIAljaGFyICpjbWQ7Ci0JaW50 ICgqZnVuYykodm9pZCAqLCBzdHJ1Y3QgY29ubmVjdGlvbiAqLCBjaGFyICoq LCBpbnQpOworCWludCAoKmZ1bmMpKGNvbnN0IHZvaWQgKiwgc3RydWN0IGNv bm5lY3Rpb24gKiwgY2hhciAqKiwgaW50KTsKIAljaGFyICpwYXJzOwogfTsK IAotc3RhdGljIGludCBkb19jb250cm9sX2NoZWNrKHZvaWQgKmN0eCwgc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMgaW50IGRvX2NvbnRyb2xf Y2hlY2soY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwKIAkJCSAgICBjaGFyICoqdmVjLCBpbnQgbnVtKQogewogCWlmIChudW0p CkBAIC00Niw3ICs0Niw3IEBAIHN0YXRpYyBpbnQgZG9fY29udHJvbF9jaGVj ayh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IGRvX2NvbnRyb2xfbG9nKHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMgaW50IGRvX2Nv bnRyb2xfbG9nKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sCiAJCQkgIGNoYXIgKip2ZWMsIGludCBudW0pCiB7CiAJaWYgKG51 bSAhPSAxKQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0YXRpYyBpbnQgcXVvdGFf Z2V0KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s CiAJcmV0dXJuIGRvbWFpbl9nZXRfcXVvdGEoY3R4LCBjb25uLCBhdG9pKHZl Y1swXSkpOwogfQogCi1zdGF0aWMgaW50IGRvX2NvbnRyb2xfcXVvdGEodm9p ZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKK3N0YXRpYyBpbnQg ZG9fY29udHJvbF9xdW90YShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLAogCQkJICAgIGNoYXIgKip2ZWMsIGludCBudW0pCiB7 CiAJaWYgKG51bSA9PSAwKQpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyBp bnQgZG9fY29udHJvbF9xdW90YSh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLAogCXJldHVybiBxdW90YV9nZXQoY3R4LCBjb25uLCB2ZWMs IG51bSk7CiB9CiAKLXN0YXRpYyBpbnQgZG9fY29udHJvbF9xdW90YV9zKHZv aWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMgaW50 IGRvX2NvbnRyb2xfcXVvdGFfcyhjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAogCQkJICAgICAgY2hhciAqKnZlYywgaW50IG51 bSkKIHsKIAlpZiAobnVtID09IDApCkBAIC0xNzIsNyArMTcyLDcgQEAgc3Rh dGljIGludCBkb19jb250cm9sX3F1b3RhX3Modm9pZCAqY3R4LCBzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwKIH0KIAogI2lmZGVmIF9fTUlOSU9TX18KLXN0 YXRpYyBpbnQgZG9fY29udHJvbF9tZW1yZXBvcnQodm9pZCAqY3R4LCBzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwKK3N0YXRpYyBpbnQgZG9fY29udHJvbF9t ZW1yZXBvcnQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwKIAkJCQljaGFyICoqdmVjLCBpbnQgbnVtKQogewogCWlmIChudW0p CkBAIC0xODQsNyArMTg0LDcgQEAgc3RhdGljIGludCBkb19jb250cm9sX21l bXJlcG9ydCh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAog CXJldHVybiAwOwogfQogI2Vsc2UKLXN0YXRpYyBpbnQgZG9fY29udHJvbF9s b2dmaWxlKHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCitz dGF0aWMgaW50IGRvX2NvbnRyb2xfbG9nZmlsZShjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCQkJICAgICAgY2hhciAqKnZl YywgaW50IG51bSkKIHsKIAlpZiAobnVtICE9IDEpCkBAIC0xOTksNyArMTk5 LDcgQEAgc3RhdGljIGludCBkb19jb250cm9sX2xvZ2ZpbGUodm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBkb19jb250cm9sX21lbXJlcG9ydCh2b2lkICpjdHgsIHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLAorc3RhdGljIGludCBkb19jb250cm9s X21lbXJlcG9ydChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAogCQkJCWNoYXIgKip2ZWMsIGludCBudW0pCiB7CiAJRklMRSAq ZnA7CkBAIC0yMzksNyArMjM5LDcgQEAgc3RhdGljIGludCBkb19jb250cm9s X21lbXJlcG9ydCh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25u LAogfQogI2VuZGlmCiAKLXN0YXRpYyBpbnQgZG9fY29udHJvbF9wcmludCh2 b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorc3RhdGljIGlu dCBkb19jb250cm9sX3ByaW50KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCiAJCQkgICAgY2hhciAqKnZlYywgaW50IG51bSkK IHsKIAlpZiAobnVtICE9IDEpCkBAIC0yNTEsNyArMjUxLDcgQEAgc3RhdGlj IGludCBkb19jb250cm9sX3ByaW50KHZvaWQgKmN0eCwgc3RydWN0IGNvbm5l Y3Rpb24gKmNvbm4sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZG9f Y29udHJvbF9oZWxwKHZvaWQgKiwgc3RydWN0IGNvbm5lY3Rpb24gKiwgY2hh ciAqKiwgaW50KTsKK3N0YXRpYyBpbnQgZG9fY29udHJvbF9oZWxwKGNvbnN0 IHZvaWQgKiwgc3RydWN0IGNvbm5lY3Rpb24gKiwgY2hhciAqKiwgaW50KTsK IAogc3RhdGljIHN0cnVjdCBjbWRfcyBjbWRzW10gPSB7CiAJeyAiY2hlY2si LCBkb19jb250cm9sX2NoZWNrLCAiIiB9LApAQCAtMjY4LDcgKzI2OCw3IEBA IHN0YXRpYyBzdHJ1Y3QgY21kX3MgY21kc1tdID0gewogCXsgImhlbHAiLCBk b19jb250cm9sX2hlbHAsICIiIH0sCiB9OwogCi1zdGF0aWMgaW50IGRvX2Nv bnRyb2xfaGVscCh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25u LAorc3RhdGljIGludCBkb19jb250cm9sX2hlbHAoY29uc3Qgdm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAkJCSAgIGNoYXIgKip2ZWMs IGludCBudW0pCiB7CiAJaW50IGNtZCwgbGVuID0gMDsKQEAgLTMwNCw3ICsz MDQsOCBAQCBzdGF0aWMgaW50IGRvX2NvbnRyb2xfaGVscCh2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCXJldHVybiAwOwogfQogCi1p bnQgZG9fY29udHJvbChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0 IGJ1ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX2NvbnRyb2woY29uc3Qgdm9p ZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkgICAgICAgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCWludCBudW07CiAJaW50IGNt ZDsKQEAgLTMxNiw3ICszMTcsNyBAQCBpbnQgZG9fY29udHJvbChzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQog CW51bSA9IHhzX2NvdW50X3N0cmluZ3MoaW4tPmJ1ZmZlciwgaW4tPnVzZWQp OwogCWlmIChudW0gPCAxKQogCQlyZXR1cm4gRUlOVkFMOwotCXZlYyA9IHRh bGxvY19hcnJheShpbiwgY2hhciAqLCBudW0pOworCXZlYyA9IHRhbGxvY19h cnJheShjdHgsIGNoYXIgKiwgbnVtKTsKIAlpZiAoIXZlYykKIAkJcmV0dXJu IEVOT01FTTsKIAlpZiAoZ2V0X3N0cmluZ3MoaW4sIHZlYywgbnVtKSAhPSBu dW0pCkBAIC0zMjQsNyArMzI1LDcgQEAgaW50IGRvX2NvbnRyb2woc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikK IAogCWZvciAoY21kID0gMDsgY21kIDwgQVJSQVlfU0laRShjbWRzKTsgY21k KyspCiAJCWlmIChzdHJlcSh2ZWNbMF0sIGNtZHNbY21kXS5jbWQpKQotCQkJ cmV0dXJuIGNtZHNbY21kXS5mdW5jKGluLCBjb25uLCB2ZWMgKyAxLCBudW0g LSAxKTsKKwkJCXJldHVybiBjbWRzW2NtZF0uZnVuYyhjdHgsIGNvbm4sIHZl YyArIDEsIG51bSAtIDEpOwogCiAJcmV0dXJuIEVJTlZBTDsKIH0KZGlmZiAt LWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmggYi90 b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29udHJvbC5oCmluZGV4IDIwN2Uw YTZmYTM1Mi4uZmFhOTU1OTY4ZGIxIDEwMDY0NAotLS0gYS90b29scy94ZW5z dG9yZS94ZW5zdG9yZWRfY29udHJvbC5oCisrKyBiL3Rvb2xzL3hlbnN0b3Jl L3hlbnN0b3JlZF9jb250cm9sLmgKQEAgLTE2LDQgKzE2LDUgQEAKICAgICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogKi8KIAotaW50IGRvX2NvbnRyb2wo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbik7CitpbnQgZG9fY29udHJvbChjb25zdCB2b2lkICpjdHgsIHN0cnVj dCBjb25uZWN0aW9uICpjb25uLAorCSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pOwpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3Rv cmVkX2NvcmUuYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmMK aW5kZXggNmVkMWFlMjYxNDcwLi4yODcyNGVmMTBhNGIgMTAwNjQ0Ci0tLSBh L3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmMKKysrIGIvdG9vbHMv eGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuYwpAQCAtMTE0NywxMSArMTE0Nywx MyBAQCBzdGF0aWMgc3RydWN0IG5vZGUgKmdldF9ub2RlX2Nhbm9uaWNhbGl6 ZWQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJuIGdldF9ub2Rl KGNvbm4sIGN0eCwgKmNhbm9uaWNhbF9uYW1lLCBwZXJtKTsKIH0KIAotc3Rh dGljIGludCBzZW5kX2RpcmVjdG9yeShzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQorc3RhdGljIGludCBzZW5k X2RpcmVjdG9yeShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAorCQkJICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJ c3RydWN0IG5vZGUgKm5vZGU7CiAKLQlub2RlID0gZ2V0X25vZGVfY2Fub25p Y2FsaXplZChjb25uLCBpbiwgb25lYXJnKGluKSwgTlVMTCwgWFNfUEVSTV9S RUFEKTsKKwlub2RlID0gZ2V0X25vZGVfY2Fub25pY2FsaXplZChjb25uLCBj dHgsIG9uZWFyZyhpbiksIE5VTEwsCisJCQkJICAgICAgWFNfUEVSTV9SRUFE KTsKIAlpZiAoIW5vZGUpCiAJCXJldHVybiBlcnJubzsKIApAQCAtMTE2MCw3 ICsxMTYyLDcgQEAgc3RhdGljIGludCBzZW5kX2RpcmVjdG9yeShzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNlbmRfZGlyZWN0b3J5X3Bh cnQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMgaW50IHNlbmRf ZGlyZWN0b3J5X3BhcnQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwKIAkJCSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pCiB7CiAJdW5zaWduZWQgaW50IG9mZiwgbGVuLCBtYXhsZW4sIGdlbmxl bjsKQEAgLTExNzIsNyArMTE3NCw4IEBAIHN0YXRpYyBpbnQgc2VuZF9kaXJl Y3RvcnlfcGFydChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAkJcmV0dXJu IEVJTlZBTDsKIAogCS8qIEZpcnN0IGFyZyBpcyBub2RlIG5hbWUuICovCi0J bm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4sIGluLT5i dWZmZXIsIE5VTEwsIFhTX1BFUk1fUkVBRCk7CisJbm9kZSA9IGdldF9ub2Rl X2Nhbm9uaWNhbGl6ZWQoY29ubiwgY3R4LCBpbi0+YnVmZmVyLCBOVUxMLAor CQkJCSAgICAgIFhTX1BFUk1fUkVBRCk7CiAJaWYgKCFub2RlKQogCQlyZXR1 cm4gZXJybm87CiAKQEAgLTExOTksNyArMTIwMiw3IEBAIHN0YXRpYyBpbnQg c2VuZF9kaXJlY3RvcnlfcGFydChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwK IAkJCWJyZWFrOwogCX0KIAotCWRhdGEgPSB0YWxsb2NfYXJyYXkoaW4sIGNo YXIsIGdlbmxlbiArIGxlbiArIDEpOworCWRhdGEgPSB0YWxsb2NfYXJyYXko Y3R4LCBjaGFyLCBnZW5sZW4gKyBsZW4gKyAxKTsKIAlpZiAoIWRhdGEpCiAJ CXJldHVybiBFTk9NRU07CiAKQEAgLTEyMTUsMTEgKzEyMTgsMTMgQEAgc3Rh dGljIGludCBzZW5kX2RpcmVjdG9yeV9wYXJ0KHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRvX3JlYWQo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKK3N0YXRpYyBpbnQgZG9fcmVhZChjb25zdCB2b2lkICpjdHgsIHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkgICBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pCiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7CiAKLQlub2RlID0g Z2V0X25vZGVfY2Fub25pY2FsaXplZChjb25uLCBpbiwgb25lYXJnKGluKSwg TlVMTCwgWFNfUEVSTV9SRUFEKTsKKwlub2RlID0gZ2V0X25vZGVfY2Fub25p Y2FsaXplZChjb25uLCBjdHgsIG9uZWFyZyhpbiksIE5VTEwsCisJCQkJICAg ICAgWFNfUEVSTV9SRUFEKTsKIAlpZiAoIW5vZGUpCiAJCXJldHVybiBlcnJu bzsKIApAQCAtMTM5OSw3ICsxNDA0LDggQEAgc3RhdGljIHN0cnVjdCBub2Rl ICpjcmVhdGVfbm9kZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29uc3Qg dm9pZCAqY3R4LAogfQogCiAvKiBwYXRoLCBkYXRhLi4uICovCi1zdGF0aWMg aW50IGRvX3dyaXRlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qg YnVmZmVyZWRfZGF0YSAqaW4pCitzdGF0aWMgaW50IGRvX3dyaXRlKGNvbnN0 IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgICBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJdW5zaWduZWQgaW50IG9m ZnNldCwgZGF0YWxlbjsKIAlzdHJ1Y3Qgbm9kZSAqbm9kZTsKQEAgLTE0MTMs MTIgKzE0MTksMTIgQEAgc3RhdGljIGludCBkb193cml0ZShzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCW9m ZnNldCA9IHN0cmxlbih2ZWNbMF0pICsgMTsKIAlkYXRhbGVuID0gaW4tPnVz ZWQgLSBvZmZzZXQ7CiAKLQlub2RlID0gZ2V0X25vZGVfY2Fub25pY2FsaXpl ZChjb25uLCBpbiwgdmVjWzBdLCAmbmFtZSwgWFNfUEVSTV9XUklURSk7CisJ bm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgY3R4LCB2ZWNb MF0sICZuYW1lLCBYU19QRVJNX1dSSVRFKTsKIAlpZiAoIW5vZGUpIHsKIAkJ LyogTm8gcGVybWlzc2lvbnMsIGludmFsaWQgaW5wdXQ/ICovCiAJCWlmIChl cnJubyAhPSBFTk9FTlQpCiAJCQlyZXR1cm4gZXJybm87Ci0JCW5vZGUgPSBj cmVhdGVfbm9kZShjb25uLCBpbiwgbmFtZSwgaW4tPmJ1ZmZlciArIG9mZnNl dCwKKwkJbm9kZSA9IGNyZWF0ZV9ub2RlKGNvbm4sIGN0eCwgbmFtZSwgaW4t PmJ1ZmZlciArIG9mZnNldCwKIAkJCQkgICBkYXRhbGVuKTsKIAkJaWYgKCFu b2RlKQogCQkJcmV0dXJuIGVycm5vOwpAQCAtMTQyOSwxOCArMTQzNSwxOSBA QCBzdGF0aWMgaW50IGRvX3dyaXRlKHN0cnVjdCBjb25uZWN0aW9uICpjb25u LCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJCQlyZXR1cm4gZXJybm87 CiAJfQogCi0JZmlyZV93YXRjaGVzKGNvbm4sIGluLCBuYW1lLCBub2RlLCBm YWxzZSwgTlVMTCk7CisJZmlyZV93YXRjaGVzKGNvbm4sIGN0eCwgbmFtZSwg bm9kZSwgZmFsc2UsIE5VTEwpOwogCXNlbmRfYWNrKGNvbm4sIFhTX1dSSVRF KTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRvX21rZGlyKHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pCitzdGF0aWMgaW50IGRvX21rZGlyKGNvbnN0IHZvaWQgKmN0eCwgc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgICBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pCiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7CiAJY2hhciAqbmFt ZTsKIAotCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGlu LCBvbmVhcmcoaW4pLCAmbmFtZSwKKwlub2RlID0gZ2V0X25vZGVfY2Fub25p Y2FsaXplZChjb25uLCBjdHgsIG9uZWFyZyhpbiksICZuYW1lLAogCQkJCSAg ICAgIFhTX1BFUk1fV1JJVEUpOwogCiAJLyogSWYgaXQgYWxyZWFkeSBleGlz dHMsIGZpbmUuICovCkBAIC0xNDQ4LDEwICsxNDU1LDEwIEBAIHN0YXRpYyBp bnQgZG9fbWtkaXIoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBi dWZmZXJlZF9kYXRhICppbikKIAkJLyogTm8gcGVybWlzc2lvbnM/ICovCiAJ CWlmIChlcnJubyAhPSBFTk9FTlQpCiAJCQlyZXR1cm4gZXJybm87Ci0JCW5v ZGUgPSBjcmVhdGVfbm9kZShjb25uLCBpbiwgbmFtZSwgTlVMTCwgMCk7CisJ CW5vZGUgPSBjcmVhdGVfbm9kZShjb25uLCBjdHgsIG5hbWUsIE5VTEwsIDAp OwogCQlpZiAoIW5vZGUpCiAJCQlyZXR1cm4gZXJybm87Ci0JCWZpcmVfd2F0 Y2hlcyhjb25uLCBpbiwgbmFtZSwgbm9kZSwgZmFsc2UsIE5VTEwpOworCQlm aXJlX3dhdGNoZXMoY29ubiwgY3R4LCBuYW1lLCBub2RlLCBmYWxzZSwgTlVM TCk7CiAJfQogCXNlbmRfYWNrKGNvbm4sIFhTX01LRElSKTsKIApAQCAtMTU0 OSwyMiArMTU1NiwyMyBAQCBzdGF0aWMgaW50IF9ybShzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwgY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3Qgbm9kZSAqbm9k ZSwKIH0KIAogCi1zdGF0aWMgaW50IGRvX3JtKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitzdGF0aWMgaW50 IGRvX3JtKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sCisJCSBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0 IG5vZGUgKm5vZGU7CiAJaW50IHJldDsKIAljaGFyICpuYW1lOwogCWNoYXIg KnBhcmVudG5hbWU7CiAKLQlub2RlID0gZ2V0X25vZGVfY2Fub25pY2FsaXpl ZChjb25uLCBpbiwgb25lYXJnKGluKSwgJm5hbWUsCisJbm9kZSA9IGdldF9u b2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgY3R4LCBvbmVhcmcoaW4pLCAmbmFt ZSwKIAkJCQkgICAgICBYU19QRVJNX1dSSVRFKTsKIAlpZiAoIW5vZGUpIHsK IAkJLyogRGlkbid0IGV4aXN0IGFscmVhZHk/ICBGaW5lLCBpZiBwYXJlbnQg ZXhpc3RzLiAqLwogCQlpZiAoZXJybm8gPT0gRU5PRU5UKSB7Ci0JCQlwYXJl bnRuYW1lID0gZ2V0X3BhcmVudChpbiwgbmFtZSk7CisJCQlwYXJlbnRuYW1l ID0gZ2V0X3BhcmVudChjdHgsIG5hbWUpOwogCQkJaWYgKCFwYXJlbnRuYW1l KQogCQkJCXJldHVybiBlcnJubzsKLQkJCW5vZGUgPSByZWFkX25vZGUoY29u biwgaW4sIHBhcmVudG5hbWUpOworCQkJbm9kZSA9IHJlYWRfbm9kZShjb25u LCBjdHgsIHBhcmVudG5hbWUpOwogCQkJaWYgKG5vZGUpIHsKIAkJCQlzZW5k X2Fjayhjb25uLCBYU19STSk7CiAJCQkJcmV0dXJuIDA7CkBAIC0xNTc5LDcg KzE1ODcsNyBAQCBzdGF0aWMgaW50IGRvX3JtKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJaWYgKHN0cmVx KG5hbWUsICIvIikpCiAJCXJldHVybiBFSU5WQUw7CiAKLQlyZXQgPSBfcm0o Y29ubiwgaW4sIG5vZGUsIG5hbWUpOworCXJldCA9IF9ybShjb25uLCBjdHgs IG5vZGUsIG5hbWUpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAg LTE1ODksMTMgKzE1OTcsMTUgQEAgc3RhdGljIGludCBkb19ybShzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQog fQogCiAKLXN0YXRpYyBpbnQgZG9fZ2V0X3Blcm1zKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitzdGF0aWMg aW50IGRvX2dldF9wZXJtcyhjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLAorCQkJc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQog ewogCXN0cnVjdCBub2RlICpub2RlOwogCWNoYXIgKnN0cmluZ3M7CiAJdW5z aWduZWQgaW50IGxlbjsKIAotCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxp emVkKGNvbm4sIGluLCBvbmVhcmcoaW4pLCBOVUxMLCBYU19QRVJNX1JFQUQp OworCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGN0eCwg b25lYXJnKGluKSwgTlVMTCwKKwkJCQkgICAgICBYU19QRVJNX1JFQUQpOwog CWlmICghbm9kZSkKIAkJcmV0dXJuIGVycm5vOwogCkBAIC0xNjA4LDcgKzE2 MTgsOCBAQCBzdGF0aWMgaW50IGRvX2dldF9wZXJtcyhzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IGRvX3NldF9wZXJtcyhzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQorc3Rh dGljIGludCBkb19zZXRfcGVybXMoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwKKwkJCXN0cnVjdCBidWZmZXJlZF9kYXRhICpp bikKIHsKIAlzdHJ1Y3Qgbm9kZV9wZXJtcyBwZXJtcywgb2xkX3Blcm1zOwog CWNoYXIgKm5hbWUsICpwZXJtc3RyOwpAQCAtMTYyNSw3ICsxNjM2LDcgQEAg c3RhdGljIGludCBkb19zZXRfcGVybXMoc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAogCXBlcm1zdHIgPSBp bi0+YnVmZmVyICsgc3RybGVuKGluLT5idWZmZXIpICsgMTsKIAotCXBlcm1z LnAgPSB0YWxsb2NfYXJyYXkoaW4sIHN0cnVjdCB4c19wZXJtaXNzaW9ucywg cGVybXMubnVtKTsKKwlwZXJtcy5wID0gdGFsbG9jX2FycmF5KGN0eCwgc3Ry dWN0IHhzX3Blcm1pc3Npb25zLCBwZXJtcy5udW0pOwogCWlmICghcGVybXMu cCkKIAkJcmV0dXJuIEVOT01FTTsKIAlpZiAoIXhzX3N0cmluZ3NfdG9fcGVy bXMocGVybXMucCwgcGVybXMubnVtLCBwZXJtc3RyKSkKQEAgLTE2NDAsNyAr MTY1MSw3IEBAIHN0YXRpYyBpbnQgZG9fc2V0X3Blcm1zKHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJfQog CiAJLyogV2UgbXVzdCBvd24gbm9kZSB0byBkbyB0aGlzICh0b29scyBjYW4g ZG8gdGhpcyB0b28pLiAqLwotCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxp emVkKGNvbm4sIGluLCBpbi0+YnVmZmVyLCAmbmFtZSwKKwlub2RlID0gZ2V0 X25vZGVfY2Fub25pY2FsaXplZChjb25uLCBjdHgsIGluLT5idWZmZXIsICZu YW1lLAogCQkJCSAgICAgIFhTX1BFUk1fV1JJVEUgfCBYU19QRVJNX09XTkVS KTsKIAlpZiAoIW5vZGUpCiAJCXJldHVybiBlcnJubzsKQEAgLTE2NzUsNyAr MTY4Niw3IEBAIHN0YXRpYyBpbnQgZG9fc2V0X3Blcm1zKHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJCXJl dHVybiBlcnJubzsKIAl9CiAKLQlmaXJlX3dhdGNoZXMoY29ubiwgaW4sIG5h bWUsIG5vZGUsIGZhbHNlLCAmb2xkX3Blcm1zKTsKKwlmaXJlX3dhdGNoZXMo Y29ubiwgY3R4LCBuYW1lLCBub2RlLCBmYWxzZSwgJm9sZF9wZXJtcyk7CiAJ c2VuZF9hY2soY29ubiwgWFNfU0VUX1BFUk1TKTsKIAogCXJldHVybiAwOwpA QCAtMTY4Myw3ICsxNjk0LDggQEAgc3RhdGljIGludCBkb19zZXRfcGVybXMo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKIAogc3RhdGljIHN0cnVjdCB7CiAJY29uc3QgY2hhciAqc3RyOwot CWludCAoKmZ1bmMpKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qg YnVmZmVyZWRfZGF0YSAqaW4pOworCWludCAoKmZ1bmMpKGNvbnN0IHZvaWQg KmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgICBzdHJ1Y3Qg YnVmZmVyZWRfZGF0YSAqaW4pOwogCXVuc2lnbmVkIGludCBmbGFnczsKICNk ZWZpbmUgWFNfRkxBR19OT1RJRAkJKDFVIDw8IDApCS8qIElnbm9yZSB0cmFu c2FjdGlvbiBpZC4gKi8KICNkZWZpbmUgWFNfRkxBR19QUklWCQkoMVUgPDwg MSkJLyogUHJpdmlsZWdlZCBkb21haW4gb25seS4gKi8KQEAgLTE3NTYsNiAr MTc2OCw3IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfbWVzc2FnZShzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQog CXN0cnVjdCB0cmFuc2FjdGlvbiAqdHJhbnM7CiAJZW51bSB4c2Rfc29ja21z Z190eXBlIHR5cGUgPSBpbi0+aGRyLm1zZy50eXBlOwogCWludCByZXQ7CisJ dm9pZCAqY3R4OwogCiAJaWYgKCh1bnNpZ25lZCBpbnQpdHlwZSA+PSBYU19U WVBFX0NPVU5UIHx8ICF3aXJlX2Z1bmNzW3R5cGVdLmZ1bmMpIHsKIAkJZXBy aW50ZigiQ2xpZW50IHVua25vd24gb3BlcmF0aW9uICVpIiwgdHlwZSk7CkBA IC0xNzc2LDEwICsxNzg5LDE3IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfbWVz c2FnZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVk X2RhdGEgKmluKQogCQlyZXR1cm47CiAJfQogCisJY3R4ID0gdGFsbG9jX25l dyhOVUxMKTsKKwlpZiAoIWN0eCkgeworCQlzZW5kX2Vycm9yKGNvbm4sIEVO T01FTSk7CisJCXJldHVybjsKKwl9CisKIAlhc3NlcnQoY29ubi0+dHJhbnNh Y3Rpb24gPT0gTlVMTCk7CiAJY29ubi0+dHJhbnNhY3Rpb24gPSB0cmFuczsK IAotCXJldCA9IHdpcmVfZnVuY3NbdHlwZV0uZnVuYyhjb25uLCBpbik7CisJ cmV0ID0gd2lyZV9mdW5jc1t0eXBlXS5mdW5jKGN0eCwgY29ubiwgaW4pOwor CXRhbGxvY19mcmVlKGN0eCk7CiAJaWYgKHJldCkKIAkJc2VuZF9lcnJvcihj b25uLCByZXQpOwogCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5z dG9yZWRfZG9tYWluLmMgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfZG9t YWluLmMKaW5kZXggZGQzYWUxNWVhNGZkLi4yYmRkOGU1ODlkOGEgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21haW4uYworKysg Yi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfZG9tYWluLmMKQEAgLTMzMyw3 ICszMzMsNyBAQCBib29sIGRvbWFpbl9jYW5fd3JpdGUoc3RydWN0IGNvbm5l Y3Rpb24gKmNvbm4pCiAJcmV0dXJuICgoaW50Zi0+cnNwX3Byb2QgLSBpbnRm LT5yc3BfY29ucykgIT0gWEVOU1RPUkVfUklOR19TSVpFKTsKIH0KIAotc3Rh dGljIGNoYXIgKnRhbGxvY19kb21haW5fcGF0aCh2b2lkICpjb250ZXh0LCB1 bnNpZ25lZCBpbnQgZG9taWQpCitzdGF0aWMgY2hhciAqdGFsbG9jX2RvbWFp bl9wYXRoKGNvbnN0IHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBkb21p ZCkKIHsKIAlyZXR1cm4gdGFsbG9jX2FzcHJpbnRmKGNvbnRleHQsICIvbG9j YWwvZG9tYWluLyV1IiwgZG9taWQpOwogfQpAQCAtNDc1LDcgKzQ3NSw4IEBA IHN0YXRpYyB2b2lkIGRvbWFpbl9jb25uX3Jlc2V0KHN0cnVjdCBkb21haW4g KmRvbWFpbikKIH0KIAogLyogZG9taWQsIGdmbiwgZXZ0Y2huLCBwYXRoICov Ci1pbnQgZG9faW50cm9kdWNlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9faW50cm9kdWNlKGNv bnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IGRvbWFpbiAq ZG9tYWluOwogCWNoYXIgKnZlY1szXTsKQEAgLTU1Niw3ICs1NTcsOCBAQCBz dGF0aWMgc3RydWN0IGRvbWFpbiAqZmluZF9jb25uZWN0ZWRfZG9tYWluKHVu c2lnbmVkIGludCBkb21pZCkKIAlyZXR1cm4gZG9tYWluOwogfQogCi1pbnQg ZG9fc2V0X3RhcmdldChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0 IGJ1ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX3NldF90YXJnZXQoY29uc3Qg dm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJY2hhciAqdmVjWzJdOwogCXVu c2lnbmVkIGludCBkb21pZCwgdGRvbWlkOwpAQCAtNjAzLDcgKzYwNSw4IEBA IHN0YXRpYyBzdHJ1Y3QgZG9tYWluICpvbmVhcmdfZG9tYWluKHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAogfQogCiAvKiBkb21pZCAqLwotaW50IGRvX3Jl bGVhc2Uoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbikKK2ludCBkb19yZWxlYXNlKGNvbnN0IHZvaWQgKmN0eCwg c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJICAgICAgIHN0cnVjdCBidWZm ZXJlZF9kYXRhICppbikKIHsKIAlzdHJ1Y3QgZG9tYWluICpkb21haW47CiAK QEAgLTYxOCw3ICs2MjEsOCBAQCBpbnQgZG9fcmVsZWFzZShzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCXJl dHVybiAwOwogfQogCi1pbnQgZG9fcmVzdW1lKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9fcmVz dW1lKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s CisJICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXN0cnVj dCBkb21haW4gKmRvbWFpbjsKIApAQCAtNjMzLDcgKzYzNyw4IEBAIGludCBk b19yZXN1bWUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZm ZXJlZF9kYXRhICppbikKIAlyZXR1cm4gMDsKIH0KIAotaW50IGRvX2dldF9k b21haW5fcGF0aChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX2dldF9kb21haW5fcGF0aChjb25z dCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkgICAg ICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCWNoYXIgKnBhdGg7 CiAJY29uc3QgY2hhciAqZG9taWRfc3RyID0gb25lYXJnKGluKTsKQEAgLTY0 MSwxOCArNjQ2LDE3IEBAIGludCBkb19nZXRfZG9tYWluX3BhdGgoc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikK IAlpZiAoIWRvbWlkX3N0cikKIAkJcmV0dXJuIEVJTlZBTDsKIAotCXBhdGgg PSB0YWxsb2NfZG9tYWluX3BhdGgoY29ubiwgYXRvaShkb21pZF9zdHIpKTsK KwlwYXRoID0gdGFsbG9jX2RvbWFpbl9wYXRoKGN0eCwgYXRvaShkb21pZF9z dHIpKTsKIAlpZiAoIXBhdGgpCiAJCXJldHVybiBlcnJubzsKIAogCXNlbmRf cmVwbHkoY29ubiwgWFNfR0VUX0RPTUFJTl9QQVRILCBwYXRoLCBzdHJsZW4o cGF0aCkgKyAxKTsKIAotCXRhbGxvY19mcmVlKHBhdGgpOwotCiAJcmV0dXJu IDA7CiB9CiAKLWludCBkb19pc19kb21haW5faW50cm9kdWNlZChzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQor aW50IGRvX2lzX2RvbWFpbl9pbnRyb2R1Y2VkKGNvbnN0IHZvaWQgKmN0eCwg c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCQkgICAgc3RydWN0IGJ1ZmZl cmVkX2RhdGEgKmluKQogewogCWludCByZXN1bHQ7CiAJdW5zaWduZWQgaW50 IGRvbWlkOwpAQCAtNjczLDcgKzY3Nyw4IEBAIGludCBkb19pc19kb21haW5f aW50cm9kdWNlZChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKQogfQogCiAvKiBBbGxvdyBndWVzdCB0byByZXNl dCBhbGwgd2F0Y2hlcyAqLwotaW50IGRvX3Jlc2V0X3dhdGNoZXMoc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikK K2ludCBkb19yZXNldF93YXRjaGVzKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgICAgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKQogewogCWNvbm5fZGVsZXRlX2FsbF93YXRjaGVzKGNvbm4pOwog CWNvbm5fZGVsZXRlX2FsbF90cmFuc2FjdGlvbnMoY29ubik7CmRpZmYgLS1n aXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfZG9tYWluLmggYi90b29s cy94ZW5zdG9yZS94ZW5zdG9yZWRfZG9tYWluLmgKaW5kZXggZTAxM2E5OTkx Y2E4Li43MzJlYjhmYTc1ZTEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3Jl L3hlbnN0b3JlZF9kb21haW4uaAorKysgYi90b29scy94ZW5zdG9yZS94ZW5z dG9yZWRfZG9tYWluLmgKQEAgLTIyLDI1ICsyMiwzMiBAQAogdm9pZCBoYW5k bGVfZXZlbnQodm9pZCk7CiAKIC8qIGRvbWlkLCBtZm4sIGV2ZW50Y2huLCBw YXRoICovCi1pbnQgZG9faW50cm9kdWNlKHN0cnVjdCBjb25uZWN0aW9uICpj b25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOworaW50IGRvX2ludHJv ZHVjZShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25u LAorCQkgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKIAogLyogZG9taWQg Ki8KLWludCBkb19pc19kb21haW5faW50cm9kdWNlZChzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKK2ludCBk b19pc19kb21haW5faW50cm9kdWNlZChjb25zdCB2b2lkICpjdHgsIHN0cnVj dCBjb25uZWN0aW9uICpjb25uLAorCQkJICAgIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbik7CiAKIC8qIGRvbWlkICovCi1pbnQgZG9fcmVsZWFzZShzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KTsKK2ludCBkb19yZWxlYXNlKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCisJICAgICAgIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbik7CiAKIC8qIGRvbWlkICovCi1pbnQgZG9fcmVzdW1lKHN0cnVjdCBj b25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwor aW50IGRvX3Jlc3VtZShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLAorCSAgICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7 CiAKIC8qIGRvbWlkLCB0YXJnZXQgKi8KLWludCBkb19zZXRfdGFyZ2V0KHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pOworaW50IGRvX3NldF90YXJnZXQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICBzdHJ1Y3QgYnVmZmVyZWRfZGF0 YSAqaW4pOwogCiAvKiBkb21pZCAqLwotaW50IGRvX2dldF9kb21haW5fcGF0 aChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKTsKK2ludCBkb19nZXRfZG9tYWluX3BhdGgoY29uc3Qgdm9pZCAq Y3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICAgICAgIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbik7CiAKIC8qIEFsbG93IGd1ZXN0IHRvIHJl c2V0IGFsbCB3YXRjaGVzICovCi1pbnQgZG9fcmVzZXRfd2F0Y2hlcyhzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KTsKK2ludCBkb19yZXNldF93YXRjaGVzKGNvbnN0IHZvaWQgKmN0eCwgc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgICAgc3RydWN0IGJ1ZmZlcmVk X2RhdGEgKmluKTsKIAogdm9pZCBkb21haW5faW5pdCh2b2lkKTsKIApkaWZm IC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0aW9u LmMgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYwpp bmRleCA2ZTI5MTE4YzgwMGQuLmNkNTkyODQ1ZTdjYSAxMDA2NDQKLS0tIGEv dG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0aW9uLmMKKysrIGIv dG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0aW9uLmMKQEAgLTQ4 Nyw3ICs0ODcsOCBAQCBzdHJ1Y3QgdHJhbnNhY3Rpb24gKnRyYW5zYWN0aW9u X2xvb2t1cChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgdWludDMyX3QgaWQp CiAJcmV0dXJuIEVSUl9QVFIoLUVOT0VOVCk7CiB9CiAKLWludCBkb190cmFu c2FjdGlvbl9zdGFydChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0 IGJ1ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX3RyYW5zYWN0aW9uX3N0YXJ0 KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJ CQkgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXN0cnVjdCB0cmFu c2FjdGlvbiAqdHJhbnMsICpleGlzdHM7CiAJY2hhciBpZF9zdHJbMjBdOwpA QCAtNTAwLDggKzUwMSw4IEBAIGludCBkb190cmFuc2FjdGlvbl9zdGFydChz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEg KmluKQogCSAgICBjb25uLT50cmFuc2FjdGlvbl9zdGFydGVkID4gcXVvdGFf bWF4X3RyYW5zYWN0aW9uKQogCQlyZXR1cm4gRU5PU1BDOwogCi0JLyogQXR0 YWNoIHRyYW5zYWN0aW9uIHRvIGlucHV0IGZvciBhdXRvZnJlZSB1bnRpbCBp dCdzIGNvbXBsZXRlICovCi0JdHJhbnMgPSB0YWxsb2NfemVybyhpbiwgc3Ry dWN0IHRyYW5zYWN0aW9uKTsKKwkvKiBBdHRhY2ggdHJhbnNhY3Rpb24gdG8g Y3R4IGZvciBhdXRvZnJlZSB1bnRpbCBpdCdzIGNvbXBsZXRlICovCisJdHJh bnMgPSB0YWxsb2NfemVybyhjdHgsIHN0cnVjdCB0cmFuc2FjdGlvbik7CiAJ aWYgKCF0cmFucykKIAkJcmV0dXJuIEVOT01FTTsKIApAQCAtNTQ4LDcgKzU0 OSw4IEBAIHN0YXRpYyBpbnQgdHJhbnNhY3Rpb25fZml4X2RvbWFpbnMoc3Ry dWN0IHRyYW5zYWN0aW9uICp0cmFucywgYm9vbCB1cGRhdGUpCiAJcmV0dXJu IDA7CiB9CiAKLWludCBkb190cmFuc2FjdGlvbl9lbmQoc3RydWN0IGNvbm5l Y3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKK2ludCBk b190cmFuc2FjdGlvbl9lbmQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwKKwkJICAgICAgIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKIHsKIAljb25zdCBjaGFyICphcmcgPSBvbmVhcmcoaW4pOwogCXN0 cnVjdCB0cmFuc2FjdGlvbiAqdHJhbnM7CkBAIC01NjQsOCArNTY2LDggQEAg aW50IGRvX3RyYW5zYWN0aW9uX2VuZChzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCWxpc3RfZGVsKCZ0cmFu cy0+bGlzdCk7CiAJY29ubi0+dHJhbnNhY3Rpb25fc3RhcnRlZC0tOwogCi0J LyogQXR0YWNoIHRyYW5zYWN0aW9uIHRvIGluIGZvciBhdXRvLWNsZWFudXAg Ki8KLQl0YWxsb2Nfc3RlYWwoaW4sIHRyYW5zKTsKKwkvKiBBdHRhY2ggdHJh bnNhY3Rpb24gdG8gY3R4IGZvciBhdXRvLWNsZWFudXAgKi8KKwl0YWxsb2Nf c3RlYWwoY3R4LCB0cmFucyk7CiAKIAlpZiAoc3RyZXEoYXJnLCAiVCIpKSB7 CiAJCWlmICh0cmFucy0+ZmFpbCkKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0 b3JlL3hlbnN0b3JlZF90cmFuc2FjdGlvbi5oIGIvdG9vbHMveGVuc3RvcmUv eGVuc3RvcmVkX3RyYW5zYWN0aW9uLmgKaW5kZXggZTNjYmQ2YjIzMDk1Li4z OWQ3ZjgxYzUxMjcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0 b3JlZF90cmFuc2FjdGlvbi5oCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0 b3JlZF90cmFuc2FjdGlvbi5oCkBAIC0yOSw4ICsyOSwxMCBAQCBzdHJ1Y3Qg dHJhbnNhY3Rpb247CiAKIGV4dGVybiB1aW50NjRfdCBnZW5lcmF0aW9uOwog Ci1pbnQgZG9fdHJhbnNhY3Rpb25fc3RhcnQoc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICpub2RlKTsKLWludCBkb190 cmFuc2FjdGlvbl9lbmQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbik7CitpbnQgZG9fdHJhbnNhY3Rpb25fc3Rh cnQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwK KwkJCSBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqbm9kZSk7CitpbnQgZG9fdHJh bnNhY3Rpb25fZW5kKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sCisJCSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p OwogCiBzdHJ1Y3QgdHJhbnNhY3Rpb24gKnRyYW5zYWN0aW9uX2xvb2t1cChz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgdWludDMyX3QgaWQpOwogCmRpZmYg LS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfd2F0Y2guYyBiL3Rv b2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRjaC5jCmluZGV4IDE5ZDBmYjAx YjFjNC4uMTM2MjdjZTk3MjY2IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9y ZS94ZW5zdG9yZWRfd2F0Y2guYworKysgYi90b29scy94ZW5zdG9yZS94ZW5z dG9yZWRfd2F0Y2guYwpAQCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRpYyBpbnQg ZGVzdHJveV93YXRjaCh2b2lkICpfd2F0Y2gpCiAJcmV0dXJuIDA7CiB9CiAK LWludCBkb193YXRjaChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0 IGJ1ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX3dhdGNoKGNvbnN0IHZvaWQg KmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbikKIHsKIAlzdHJ1Y3Qgd2F0Y2ggKndhdGNoOwogCWNoYXIg KnZlY1syXTsKQEAgLTIwMCw3ICsyMDAsNyBAQCBpbnQgZG9fd2F0Y2goc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICpp bikKIAkJLyogY2hlY2sgaWYgdmFsaWQgZXZlbnQgKi8KIAl9IGVsc2Ugewog CQlyZWxhdGl2ZSA9ICFzdHJzdGFydHModmVjWzBdLCAiLyIpOwotCQl2ZWNb MF0gPSBjYW5vbmljYWxpemUoY29ubiwgaW4sIHZlY1swXSk7CisJCXZlY1sw XSA9IGNhbm9uaWNhbGl6ZShjb25uLCBjdHgsIHZlY1swXSk7CiAJCWlmICgh dmVjWzBdKQogCQkJcmV0dXJuIEVOT01FTTsKIAkJaWYgKCFpc192YWxpZF9u b2RlbmFtZSh2ZWNbMF0pKQpAQCAtMjUwLDcgKzI1MCw4IEBAIGludCBkb193 YXRjaChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVk X2RhdGEgKmluKQogCXJldHVybiAwOwogfQogCi1pbnQgZG9fdW53YXRjaChz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEg KmluKQoraW50IGRvX3Vud2F0Y2goY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwKKwkgICAgICAgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKQogewogCXN0cnVjdCB3YXRjaCAqd2F0Y2g7CiAJY2hhciAqbm9k ZSwgKnZlY1syXTsKQEAgLTI1OCw3ICsyNTksNyBAQCBpbnQgZG9fdW53YXRj aChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKQogCWlmIChnZXRfc3RyaW5ncyhpbiwgdmVjLCBBUlJBWV9TSVpF KHZlYykpICE9IEFSUkFZX1NJWkUodmVjKSkKIAkJcmV0dXJuIEVJTlZBTDsK IAotCW5vZGUgPSBjYW5vbmljYWxpemUoY29ubiwgaW4sIHZlY1swXSk7CisJ bm9kZSA9IGNhbm9uaWNhbGl6ZShjb25uLCBjdHgsIHZlY1swXSk7CiAJaWYg KCFub2RlKQogCQlyZXR1cm4gRU5PTUVNOwogCWxpc3RfZm9yX2VhY2hfZW50 cnkod2F0Y2gsICZjb25uLT53YXRjaGVzLCBsaXN0KSB7CmRpZmYgLS1naXQg YS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfd2F0Y2guaCBiL3Rvb2xzL3hl bnN0b3JlL3hlbnN0b3JlZF93YXRjaC5oCmluZGV4IDAzMDk0Mzc0ZjM3OS4u NDA0NTVkZmY1ZDJiIDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5z dG9yZWRfd2F0Y2guaAorKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRf d2F0Y2guaApAQCAtMjEsOCArMjEsMTAgQEAKIAogI2luY2x1ZGUgInhlbnN0 b3JlZF9jb3JlLmgiCiAKLWludCBkb193YXRjaChzdHJ1Y3QgY29ubmVjdGlv biAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKLWludCBkb191 bndhdGNoKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pOworaW50IGRvX3dhdGNoKGNvbnN0IHZvaWQgKmN0eCwg c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJICAgICBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pOworaW50IGRvX3Vud2F0Y2goY29uc3Qgdm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkgICAgICAgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKTsKIAogLyogRmlyZSBhbGwgd2F0Y2hlczogIWV4 YWN0IG1lYW5zIGFsbCB0aGUgY2hpbGRyZW4gYXJlIGFmZmVjdGVkIChpZS4g cm0pLiAqLwogdm9pZCBmaXJlX3dhdGNoZXMoc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sIGNvbnN0IHZvaWQgKnRtcCwgY29uc3QgY2hhciAqbmFtZSwK --=separator Content-Type: application/octet-stream; name="xsa416-4.15.patch" Content-Disposition: attachment; filename="xsa416-4.15.patch" Content-Transfer-Encoding: base64 RnJvbSBkYTg1ZGQyODExMTkzOTAyMTYwODFiY2UxNDYzZjNkOWIxMGJhMWM3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3Nz IDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFR1ZSwgMTMgU2VwIDIwMjIgMDc6 MzU6MTAgKzAyMDAKU3ViamVjdDogdG9vbHMveGVuc3RvcmU6IGRvbid0IHVz ZSBjb25uLT5pbiBhcyBjb250ZXh0IGZvciB0ZW1wb3JhcnkKIGFsbG9jYXRp b25zCgpVc2luZyB0aGUgc3RydWN0IGJ1ZmZlcmVkIGRhdGEgcG9pbnRlciBv ZiB0aGUgY3VycmVudCBwcm9jZXNzZWQgcmVxdWVzdApmb3IgdGVtcG9yYXJ5 IGRhdGEgYWxsb2NhdGlvbnMgaGFzIGEgbWFqb3IgZHJhd2JhY2s6IHRoZSB1 c2VkIGFyZWEgKGFuZAp3aXRoIHRoYXQgdGhlIHRlbXBvcmFyeSBkYXRhKSBp cyBmcmVlZCBvbmx5IGFmdGVyIHRoZSByZXNwb25zZSBvZiB0aGUKcmVxdWVz dCBoYXMgYmVlbiB3cml0dGVuIHRvIHRoZSByaW5nIHBhZ2Ugb3IgaGFzIGJl ZW4gcmVhZCB2aWEgdGhlCnNvY2tldC4gVGhpcyBjYW4gaGFwcGVuIG11Y2gg bGF0ZXIgaW4gY2FzZSBhIGd1ZXN0IGlzbid0IHJlYWRpbmcgaXRzCnJlc3Bv bnNlcyBmYXN0IGVub3VnaC4KCkFzIHRoZSB0ZW1wb3JhcnkgZGF0YSBjYW4g YmUgc2FmZWx5IGZyZWVkIGFmdGVyIGNyZWF0aW5nIHRoZSByZXNwb25zZSwK YWRkIGEgdGVtcG9yYXJ5IGNvbnRleHQgZm9yIHRoYXQgcHVycG9zZSBhbmQg dXNlIHRoYXQgZm9yIGFsbG9jYXRpbmcKdGhlIHRlbXBvcmFyeSBtZW1vcnks IGFzIGl0IHdhcyBhbHJlYWR5IHRoZSBjYXNlIGJlZm9yZSBjb21taXQKY2Mw NjEyNDY0ODk2ICgieGVuc3RvcmU6IGFkZCBzbWFsbCBkZWZhdWx0IGRhdGEg YnVmZmVyIHRvIGludGVybmFsCnN0cnVjdCIpLgoKU29tZSBzdWItZnVuY3Rp b25zIG5lZWQgdG8gZ2FpbiB0aGUgImNvbnN0IiBhdHRyaWJ1dGUgZm9yIHRo ZSB0YWxsb2MKY29udGV4dC4KClRoaXMgaXMgWFNBLTQxNiAvIENWRS0yMDIy LTQyMzE5LgoKUmVwb3J0ZWQtYnk6IEp1bGllbiBHcmFsbCA8amdyYWxsQGFt YXpvbi5jb20+CkZpeGVzOiBjYzA2MTI0NjQ4OTYgKCJ4ZW5zdG9yZTogYWRk IHNtYWxsIGRlZmF1bHQgZGF0YSBidWZmZXIgdG8gaW50ZXJuYWwgc3RydWN0 IikKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9u LmNvbT4KCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRf Y29udHJvbC5jIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wu YwppbmRleCA5ODAyNzlmYTUzZmYuLjk1YTYwYmY1Nzg1OCAxMDA2NDQKLS0t IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuYworKysgYi90 b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29udHJvbC5jCkBAIC0xMDcsNyAr MTA3LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmx1X2JlZ2luKHN0cnVjdCBj b25uZWN0aW9uICpjb25uKQogCiBzdHJ1Y3QgY21kX3MgewogCWNoYXIgKmNt ZDsKLQlpbnQgKCpmdW5jKSh2b2lkICosIHN0cnVjdCBjb25uZWN0aW9uICos IGNoYXIgKiosIGludCk7CisJaW50ICgqZnVuYykoY29uc3Qgdm9pZCAqLCBz dHJ1Y3QgY29ubmVjdGlvbiAqLCBjaGFyICoqLCBpbnQpOwogCWNoYXIgKnBh cnM7CiAJLyoKIAkgKiBtYXhfcGFycyBjYW4gYmUgdXNlZCB0byBsaW1pdCB0 aGUgc2l6ZSBvZiB0aGUgcGFyYW1ldGVyIHZlY3RvciwKQEAgLTExOSw3ICsx MTksNyBAQCBzdHJ1Y3QgY21kX3MgewogCXVuc2lnbmVkIGludCBtYXhfcGFy czsKIH07CiAKLXN0YXRpYyBpbnQgZG9fY29udHJvbF9jaGVjayh2b2lkICpj dHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorc3RhdGljIGludCBkb19j b250cm9sX2NoZWNrKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sCiAJCQkgICAgY2hhciAqKnZlYywgaW50IG51bSkKIHsKIAlp ZiAobnVtKQpAQCAtMTMxLDcgKzEzMSw3IEBAIHN0YXRpYyBpbnQgZG9fY29u dHJvbF9jaGVjayh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25u LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRvX2NvbnRyb2xfbG9n KHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMg aW50IGRvX2NvbnRyb2xfbG9nKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCiAJCQkgIGNoYXIgKip2ZWMsIGludCBudW0pCiB7 CiAJaWYgKG51bSAhPSAxKQpAQCAtMjMzLDcgKzIzMyw3IEBAIHN0YXRpYyBp bnQgcXVvdGFfZ2V0KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sCiAJcmV0dXJuIGRvbWFpbl9nZXRfcXVvdGEoY3R4LCBjb25u LCBhdG9pKHZlY1swXSkpOwogfQogCi1zdGF0aWMgaW50IGRvX2NvbnRyb2xf cXVvdGEodm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKK3N0 YXRpYyBpbnQgZG9fY29udHJvbF9xdW90YShjb25zdCB2b2lkICpjdHgsIHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLAogCQkJICAgIGNoYXIgKip2ZWMsIGlu dCBudW0pCiB7CiAJaWYgKG51bSA9PSAwKQpAQCAtMjQ1LDcgKzI0NSw3IEBA IHN0YXRpYyBpbnQgZG9fY29udHJvbF9xdW90YSh2b2lkICpjdHgsIHN0cnVj dCBjb25uZWN0aW9uICpjb25uLAogCXJldHVybiBxdW90YV9nZXQoY3R4LCBj b25uLCB2ZWMsIG51bSk7CiB9CiAKLXN0YXRpYyBpbnQgZG9fY29udHJvbF9x dW90YV9zKHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCitz dGF0aWMgaW50IGRvX2NvbnRyb2xfcXVvdGFfcyhjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCQkJICAgICAgY2hhciAqKnZl YywgaW50IG51bSkKIHsKIAlpZiAobnVtID09IDApCkBAIC0yNTgsNyArMjU4 LDcgQEAgc3RhdGljIGludCBkb19jb250cm9sX3F1b3RhX3Modm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIH0KIAogI2lmZGVmIF9fTUlO SU9TX18KLXN0YXRpYyBpbnQgZG9fY29udHJvbF9tZW1yZXBvcnQodm9pZCAq Y3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKK3N0YXRpYyBpbnQgZG9f Y29udHJvbF9tZW1yZXBvcnQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwKIAkJCQljaGFyICoqdmVjLCBpbnQgbnVtKQogewog CWlmIChudW0pCkBAIC0yNzAsNyArMjcwLDcgQEAgc3RhdGljIGludCBkb19j b250cm9sX21lbXJlcG9ydCh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAogCXJldHVybiAwOwogfQogI2Vsc2UKLXN0YXRpYyBpbnQgZG9f Y29udHJvbF9sb2dmaWxlKHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sCitzdGF0aWMgaW50IGRvX2NvbnRyb2xfbG9nZmlsZShjb25zdCB2 b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCQkJICAgICAg Y2hhciAqKnZlYywgaW50IG51bSkKIHsKIAlpZiAobnVtICE9IDEpCkBAIC0y ODUsNyArMjg1LDcgQEAgc3RhdGljIGludCBkb19jb250cm9sX2xvZ2ZpbGUo dm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAlyZXR1cm4g MDsKIH0KIAotc3RhdGljIGludCBkb19jb250cm9sX21lbXJlcG9ydCh2b2lk ICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorc3RhdGljIGludCBk b19jb250cm9sX21lbXJlcG9ydChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAogCQkJCWNoYXIgKip2ZWMsIGludCBudW0pCiB7 CiAJRklMRSAqZnA7CkBAIC0zMjUsNyArMzI1LDcgQEAgc3RhdGljIGludCBk b19jb250cm9sX21lbXJlcG9ydCh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLAogfQogI2VuZGlmCiAKLXN0YXRpYyBpbnQgZG9fY29udHJv bF9wcmludCh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAor c3RhdGljIGludCBkb19jb250cm9sX3ByaW50KGNvbnN0IHZvaWQgKmN0eCwg c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCQkgICAgY2hhciAqKnZlYywg aW50IG51bSkKIHsKIAlpZiAobnVtICE9IDEpCkBAIC04MDIsNyArODAyLDcg QEAgc3RhdGljIGNvbnN0IGNoYXIgKmx1X3N0YXJ0KGNvbnN0IHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJuIE5VTEw7CiB9 CiAKLXN0YXRpYyBpbnQgZG9fY29udHJvbF9sdSh2b2lkICpjdHgsIHN0cnVj dCBjb25uZWN0aW9uICpjb25uLAorc3RhdGljIGludCBkb19jb250cm9sX2x1 KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJ CQkgY2hhciAqKnZlYywgaW50IG51bSkKIHsKIAljb25zdCBjaGFyICpyZXQg PSBOVUxMOwpAQCAtODUyLDcgKzg1Miw3IEBAIHN0YXRpYyBpbnQgZG9fY29u dHJvbF9sdSh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAog fQogI2VuZGlmCiAKLXN0YXRpYyBpbnQgZG9fY29udHJvbF9oZWxwKHZvaWQg Kiwgc3RydWN0IGNvbm5lY3Rpb24gKiwgY2hhciAqKiwgaW50KTsKK3N0YXRp YyBpbnQgZG9fY29udHJvbF9oZWxwKGNvbnN0IHZvaWQgKiwgc3RydWN0IGNv bm5lY3Rpb24gKiwgY2hhciAqKiwgaW50KTsKIAogc3RhdGljIHN0cnVjdCBj bWRfcyBjbWRzW10gPSB7CiAJeyAiY2hlY2siLCBkb19jb250cm9sX2NoZWNr LCAiIiB9LApAQCAtODkxLDcgKzg5MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY21k X3MgY21kc1tdID0gewogCXsgImhlbHAiLCBkb19jb250cm9sX2hlbHAsICIi IH0sCiB9OwogCi1zdGF0aWMgaW50IGRvX2NvbnRyb2xfaGVscCh2b2lkICpj dHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorc3RhdGljIGludCBkb19j b250cm9sX2hlbHAoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlv biAqY29ubiwKIAkJCSAgIGNoYXIgKip2ZWMsIGludCBudW0pCiB7CiAJaW50 IGNtZCwgbGVuID0gMDsKQEAgLTkyNyw3ICs5MjcsOCBAQCBzdGF0aWMgaW50 IGRvX2NvbnRyb2xfaGVscCh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAogCXJldHVybiAwOwogfQogCi1pbnQgZG9fY29udHJvbChzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KQoraW50IGRvX2NvbnRyb2woY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwKKwkgICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEg KmluKQogewogCXVuc2lnbmVkIGludCBjbWQsIG51bSwgb2ZmOwogCWNoYXIg Kip2ZWMgPSBOVUxMOwpAQCAtOTQ3LDExICs5NDgsMTEgQEAgaW50IGRvX2Nv bnRyb2woc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbikKIAludW0gPSB4c19jb3VudF9zdHJpbmdzKGluLT5idWZm ZXIsIGluLT51c2VkKTsKIAlpZiAoY21kc1tjbWRdLm1heF9wYXJzKQogCQlu dW0gPSBtaW4obnVtLCBjbWRzW2NtZF0ubWF4X3BhcnMpOwotCXZlYyA9IHRh bGxvY19hcnJheShpbiwgY2hhciAqLCBudW0pOworCXZlYyA9IHRhbGxvY19h cnJheShjdHgsIGNoYXIgKiwgbnVtKTsKIAlpZiAoIXZlYykKIAkJcmV0dXJu IEVOT01FTTsKIAlpZiAoZ2V0X3N0cmluZ3MoaW4sIHZlYywgbnVtKSA8IG51 bSkKIAkJcmV0dXJuIEVJTzsKIAotCXJldHVybiBjbWRzW2NtZF0uZnVuYyhp biwgY29ubiwgdmVjICsgMSwgbnVtIC0gMSk7CisJcmV0dXJuIGNtZHNbY21k XS5mdW5jKGN0eCwgY29ubiwgdmVjICsgMSwgbnVtIC0gMSk7CiB9CmRpZmYg LS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29udHJvbC5oIGIv dG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuaAppbmRleCBhYWM2 MWYwNTkwOGYuLjY0MzBjMzc2OTM2MSAxMDA2NDQKLS0tIGEvdG9vbHMveGVu c3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuaAorKysgYi90b29scy94ZW5zdG9y ZS94ZW5zdG9yZWRfY29udHJvbC5oCkBAIC0xNiw1ICsxNiw2IEBACiAgICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKLWludCBkb19jb250cm9s KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0 YSAqaW4pOworaW50IGRvX2NvbnRyb2woY29uc3Qgdm9pZCAqY3R4LCBzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkgICAgICAgc3RydWN0IGJ1ZmZlcmVk X2RhdGEgKmluKTsKIHZvaWQgbHVfcmVhZF9zdGF0ZSh2b2lkKTsKZGlmZiAt LWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmMgYi90b29s cy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5jCmluZGV4IGYyN2Q1YzAxMDFi Yy4uODA2ZjI0YmJhYjhiIDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94 ZW5zdG9yZWRfY29yZS5jCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3Jl ZF9jb3JlLmMKQEAgLTEyMTQsMTEgKzEyMTQsMTMgQEAgc3RhdGljIHN0cnVj dCBub2RlICpnZXRfbm9kZV9jYW5vbmljYWxpemVkKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLAogCXJldHVybiBnZXRfbm9kZShjb25uLCBjdHgsICpjYW5v bmljYWxfbmFtZSwgcGVybSk7CiB9CiAKLXN0YXRpYyBpbnQgc2VuZF9kaXJl Y3Rvcnkoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbikKK3N0YXRpYyBpbnQgc2VuZF9kaXJlY3RvcnkoY29uc3Qg dm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJCSAgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXN0cnVjdCBub2RlICpub2Rl OwogCi0Jbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4s IG9uZWFyZyhpbiksIE5VTEwsIFhTX1BFUk1fUkVBRCk7CisJbm9kZSA9IGdl dF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgY3R4LCBvbmVhcmcoaW4pLCBO VUxMLAorCQkJCSAgICAgIFhTX1BFUk1fUkVBRCk7CiAJaWYgKCFub2RlKQog CQlyZXR1cm4gZXJybm87CiAKQEAgLTEyMjcsNyArMTIyOSw3IEBAIHN0YXRp YyBpbnQgc2VuZF9kaXJlY3Rvcnkoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s IHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBzZW5kX2RpcmVjdG9yeV9wYXJ0KHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLAorc3RhdGljIGludCBzZW5kX2RpcmVjdG9yeV9wYXJ0KGNv bnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCQkg ICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXVuc2lnbmVk IGludCBvZmYsIGxlbiwgbWF4bGVuLCBnZW5sZW47CkBAIC0xMjM5LDcgKzEy NDEsOCBAQCBzdGF0aWMgaW50IHNlbmRfZGlyZWN0b3J5X3BhcnQoc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sCiAJCXJldHVybiBFSU5WQUw7CiAKIAkvKiBG aXJzdCBhcmcgaXMgbm9kZSBuYW1lLiAqLwotCW5vZGUgPSBnZXRfbm9kZV9j YW5vbmljYWxpemVkKGNvbm4sIGluLCBpbi0+YnVmZmVyLCBOVUxMLCBYU19Q RVJNX1JFQUQpOworCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNv bm4sIGN0eCwgaW4tPmJ1ZmZlciwgTlVMTCwKKwkJCQkgICAgICBYU19QRVJN X1JFQUQpOwogCWlmICghbm9kZSkKIAkJcmV0dXJuIGVycm5vOwogCkBAIC0x MjY2LDcgKzEyNjksNyBAQCBzdGF0aWMgaW50IHNlbmRfZGlyZWN0b3J5X3Bh cnQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCQlicmVhazsKIAl9CiAK LQlkYXRhID0gdGFsbG9jX2FycmF5KGluLCBjaGFyLCBnZW5sZW4gKyBsZW4g KyAxKTsKKwlkYXRhID0gdGFsbG9jX2FycmF5KGN0eCwgY2hhciwgZ2VubGVu ICsgbGVuICsgMSk7CiAJaWYgKCFkYXRhKQogCQlyZXR1cm4gRU5PTUVNOwog CkBAIC0xMjgyLDExICsxMjg1LDEzIEBAIHN0YXRpYyBpbnQgc2VuZF9kaXJl Y3RvcnlfcGFydChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAlyZXR1cm4g MDsKIH0KIAotc3RhdGljIGludCBkb19yZWFkKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitzdGF0aWMgaW50 IGRvX3JlYWQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwKKwkJICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXN0 cnVjdCBub2RlICpub2RlOwogCi0Jbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNh bGl6ZWQoY29ubiwgaW4sIG9uZWFyZyhpbiksIE5VTEwsIFhTX1BFUk1fUkVB RCk7CisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgY3R4 LCBvbmVhcmcoaW4pLCBOVUxMLAorCQkJCSAgICAgIFhTX1BFUk1fUkVBRCk7 CiAJaWYgKCFub2RlKQogCQlyZXR1cm4gZXJybm87CiAKQEAgLTE0NzYsNyAr MTQ4MSw4IEBAIHN0YXRpYyBzdHJ1Y3Qgbm9kZSAqY3JlYXRlX25vZGUoc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sIGNvbnN0IHZvaWQgKmN0eCwKIH0KIAog LyogcGF0aCwgZGF0YS4uLiAqLwotc3RhdGljIGludCBkb193cml0ZShzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KQorc3RhdGljIGludCBkb193cml0ZShjb25zdCB2b2lkICpjdHgsIHN0cnVj dCBjb25uZWN0aW9uICpjb25uLAorCQkgICAgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKQogewogCXVuc2lnbmVkIGludCBvZmZzZXQsIGRhdGFsZW47CiAJ c3RydWN0IG5vZGUgKm5vZGU7CkBAIC0xNDkwLDEyICsxNDk2LDEyIEBAIHN0 YXRpYyBpbnQgZG9fd3JpdGUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0 cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlvZmZzZXQgPSBzdHJsZW4odmVj WzBdKSArIDE7CiAJZGF0YWxlbiA9IGluLT51c2VkIC0gb2Zmc2V0OwogCi0J bm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4sIHZlY1sw XSwgJm5hbWUsIFhTX1BFUk1fV1JJVEUpOworCW5vZGUgPSBnZXRfbm9kZV9j YW5vbmljYWxpemVkKGNvbm4sIGN0eCwgdmVjWzBdLCAmbmFtZSwgWFNfUEVS TV9XUklURSk7CiAJaWYgKCFub2RlKSB7CiAJCS8qIE5vIHBlcm1pc3Npb25z LCBpbnZhbGlkIGlucHV0PyAqLwogCQlpZiAoZXJybm8gIT0gRU5PRU5UKQog CQkJcmV0dXJuIGVycm5vOwotCQlub2RlID0gY3JlYXRlX25vZGUoY29ubiwg aW4sIG5hbWUsIGluLT5idWZmZXIgKyBvZmZzZXQsCisJCW5vZGUgPSBjcmVh dGVfbm9kZShjb25uLCBjdHgsIG5hbWUsIGluLT5idWZmZXIgKyBvZmZzZXQs CiAJCQkJICAgZGF0YWxlbik7CiAJCWlmICghbm9kZSkKIAkJCXJldHVybiBl cnJubzsKQEAgLTE1MDYsMTggKzE1MTIsMTkgQEAgc3RhdGljIGludCBkb193 cml0ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVk X2RhdGEgKmluKQogCQkJcmV0dXJuIGVycm5vOwogCX0KIAotCWZpcmVfd2F0 Y2hlcyhjb25uLCBpbiwgbmFtZSwgbm9kZSwgZmFsc2UsIE5VTEwpOworCWZp cmVfd2F0Y2hlcyhjb25uLCBjdHgsIG5hbWUsIG5vZGUsIGZhbHNlLCBOVUxM KTsKIAlzZW5kX2Fjayhjb25uLCBYU19XUklURSk7CiAKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIGludCBkb19ta2RpcihzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQorc3RhdGljIGludCBk b19ta2Rpcihjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpj b25uLAorCQkgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXN0 cnVjdCBub2RlICpub2RlOwogCWNoYXIgKm5hbWU7CiAKLQlub2RlID0gZ2V0 X25vZGVfY2Fub25pY2FsaXplZChjb25uLCBpbiwgb25lYXJnKGluKSwgJm5h bWUsCisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgY3R4 LCBvbmVhcmcoaW4pLCAmbmFtZSwKIAkJCQkgICAgICBYU19QRVJNX1dSSVRF KTsKIAogCS8qIElmIGl0IGFscmVhZHkgZXhpc3RzLCBmaW5lLiAqLwpAQCAt MTUyNywxMCArMTUzNCwxMCBAQCBzdGF0aWMgaW50IGRvX21rZGlyKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiAJCQlyZXR1cm4gZXJybm87CiAJCWlmICghbmFtZSkKIAkJCXJldHVybiBF Tk9NRU07Ci0JCW5vZGUgPSBjcmVhdGVfbm9kZShjb25uLCBpbiwgbmFtZSwg TlVMTCwgMCk7CisJCW5vZGUgPSBjcmVhdGVfbm9kZShjb25uLCBjdHgsIG5h bWUsIE5VTEwsIDApOwogCQlpZiAoIW5vZGUpCiAJCQlyZXR1cm4gZXJybm87 Ci0JCWZpcmVfd2F0Y2hlcyhjb25uLCBpbiwgbmFtZSwgbm9kZSwgZmFsc2Us IE5VTEwpOworCQlmaXJlX3dhdGNoZXMoY29ubiwgY3R4LCBuYW1lLCBub2Rl LCBmYWxzZSwgTlVMTCk7CiAJfQogCXNlbmRfYWNrKGNvbm4sIFhTX01LRElS KTsKIApAQCAtMTYyOCwyNCArMTYzNSwyNSBAQCBzdGF0aWMgaW50IF9ybShz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29uc3Qgdm9pZCAqY3R4LCBzdHJ1 Y3Qgbm9kZSAqbm9kZSwKIH0KIAogCi1zdGF0aWMgaW50IGRvX3JtKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CitzdGF0aWMgaW50IGRvX3JtKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCisJCSBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7CiAJaW50IHJldDsKIAljaGFyICpu YW1lOwogCWNoYXIgKnBhcmVudG5hbWU7CiAKLQlub2RlID0gZ2V0X25vZGVf Y2Fub25pY2FsaXplZChjb25uLCBpbiwgb25lYXJnKGluKSwgJm5hbWUsCisJ bm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgY3R4LCBvbmVh cmcoaW4pLCAmbmFtZSwKIAkJCQkgICAgICBYU19QRVJNX1dSSVRFKTsKIAlp ZiAoIW5vZGUpIHsKIAkJLyogRGlkbid0IGV4aXN0IGFscmVhZHk/ICBGaW5l LCBpZiBwYXJlbnQgZXhpc3RzLiAqLwogCQlpZiAoZXJybm8gPT0gRU5PRU5U KSB7CiAJCQlpZiAoIW5hbWUpCiAJCQkJcmV0dXJuIEVOT01FTTsKLQkJCXBh cmVudG5hbWUgPSBnZXRfcGFyZW50KGluLCBuYW1lKTsKKwkJCXBhcmVudG5h bWUgPSBnZXRfcGFyZW50KGN0eCwgbmFtZSk7CiAJCQlpZiAoIXBhcmVudG5h bWUpCiAJCQkJcmV0dXJuIGVycm5vOwotCQkJbm9kZSA9IHJlYWRfbm9kZShj b25uLCBpbiwgcGFyZW50bmFtZSk7CisJCQlub2RlID0gcmVhZF9ub2RlKGNv bm4sIGN0eCwgcGFyZW50bmFtZSk7CiAJCQlpZiAobm9kZSkgewogCQkJCXNl bmRfYWNrKGNvbm4sIFhTX1JNKTsKIAkJCQlyZXR1cm4gMDsKQEAgLTE2NjAs NyArMTY2OCw3IEBAIHN0YXRpYyBpbnQgZG9fcm0oc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlpZiAoc3Ry ZXEobmFtZSwgIi8iKSkKIAkJcmV0dXJuIEVJTlZBTDsKIAotCXJldCA9IF9y bShjb25uLCBpbiwgbm9kZSwgbmFtZSk7CisJcmV0ID0gX3JtKGNvbm4sIGN0 eCwgbm9kZSwgbmFtZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApA QCAtMTY3MCwxMyArMTY3OCwxNSBAQCBzdGF0aWMgaW50IGRvX3JtKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiB9CiAKIAotc3RhdGljIGludCBkb19nZXRfcGVybXMoc3RydWN0IGNvbm5l Y3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKK3N0YXRp YyBpbnQgZG9fZ2V0X3Blcm1zKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCisJCQlzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7CiAJY2hhciAqc3RyaW5nczsKIAl1 bnNpZ25lZCBpbnQgbGVuOwogCi0Jbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNh bGl6ZWQoY29ubiwgaW4sIG9uZWFyZyhpbiksIE5VTEwsIFhTX1BFUk1fUkVB RCk7CisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgY3R4 LCBvbmVhcmcoaW4pLCBOVUxMLAorCQkJCSAgICAgIFhTX1BFUk1fUkVBRCk7 CiAJaWYgKCFub2RlKQogCQlyZXR1cm4gZXJybm87CiAKQEAgLTE2ODksNyAr MTY5OSw4IEBAIHN0YXRpYyBpbnQgZG9fZ2V0X3Blcm1zKHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJcmV0 dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZG9fc2V0X3Blcm1zKHN0cnVjdCBj b25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitz dGF0aWMgaW50IGRvX3NldF9wZXJtcyhjb25zdCB2b2lkICpjdHgsIHN0cnVj dCBjb25uZWN0aW9uICpjb25uLAorCQkJc3RydWN0IGJ1ZmZlcmVkX2RhdGEg KmluKQogewogCXN0cnVjdCBub2RlX3Blcm1zIHBlcm1zLCBvbGRfcGVybXM7 CiAJY2hhciAqbmFtZSwgKnBlcm1zdHI7CkBAIC0xNzA2LDcgKzE3MTcsNyBA QCBzdGF0aWMgaW50IGRvX3NldF9wZXJtcyhzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCiAJcGVybXN0ciA9 IGluLT5idWZmZXIgKyBzdHJsZW4oaW4tPmJ1ZmZlcikgKyAxOwogCi0JcGVy bXMucCA9IHRhbGxvY19hcnJheShpbiwgc3RydWN0IHhzX3Blcm1pc3Npb25z LCBwZXJtcy5udW0pOworCXBlcm1zLnAgPSB0YWxsb2NfYXJyYXkoY3R4LCBz dHJ1Y3QgeHNfcGVybWlzc2lvbnMsIHBlcm1zLm51bSk7CiAJaWYgKCFwZXJt cy5wKQogCQlyZXR1cm4gRU5PTUVNOwogCWlmICgheHNfc3RyaW5nc190b19w ZXJtcyhwZXJtcy5wLCBwZXJtcy5udW0sIHBlcm1zdHIpKQpAQCAtMTcyMSw3 ICsxNzMyLDcgQEAgc3RhdGljIGludCBkb19zZXRfcGVybXMoc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAl9 CiAKIAkvKiBXZSBtdXN0IG93biBub2RlIHRvIGRvIHRoaXMgKHRvb2xzIGNh biBkbyB0aGlzIHRvbykuICovCi0Jbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNh bGl6ZWQoY29ubiwgaW4sIGluLT5idWZmZXIsICZuYW1lLAorCW5vZGUgPSBn ZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGN0eCwgaW4tPmJ1ZmZlciwg Jm5hbWUsCiAJCQkJICAgICAgWFNfUEVSTV9XUklURSB8IFhTX1BFUk1fT1dO RVIpOwogCWlmICghbm9kZSkKIAkJcmV0dXJuIGVycm5vOwpAQCAtMTc1Niw3 ICsxNzY3LDcgQEAgc3RhdGljIGludCBkb19zZXRfcGVybXMoc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAkJ cmV0dXJuIGVycm5vOwogCX0KIAotCWZpcmVfd2F0Y2hlcyhjb25uLCBpbiwg bmFtZSwgbm9kZSwgZmFsc2UsICZvbGRfcGVybXMpOworCWZpcmVfd2F0Y2hl cyhjb25uLCBjdHgsIG5hbWUsIG5vZGUsIGZhbHNlLCAmb2xkX3Blcm1zKTsK IAlzZW5kX2Fjayhjb25uLCBYU19TRVRfUEVSTVMpOwogCiAJcmV0dXJuIDA7 CkBAIC0xNzY0LDcgKzE3NzUsOCBAQCBzdGF0aWMgaW50IGRvX3NldF9wZXJt cyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKQogCiBzdGF0aWMgc3RydWN0IHsKIAljb25zdCBjaGFyICpzdHI7 Ci0JaW50ICgqZnVuYykoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbik7CisJaW50ICgqZnVuYykoY29uc3Qgdm9p ZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICAgIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbik7CiAJdW5zaWduZWQgaW50IGZsYWdzOwog I2RlZmluZSBYU19GTEFHX05PVElECQkoMVUgPDwgMCkJLyogSWdub3JlIHRy YW5zYWN0aW9uIGlkLiAqLwogI2RlZmluZSBYU19GTEFHX1BSSVYJCSgxVSA8 PCAxKQkvKiBQcml2aWxlZ2VkIGRvbWFpbiBvbmx5LiAqLwpAQCAtMTg0MCw2 ICsxODUyLDcgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19tZXNzYWdlKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiAJc3RydWN0IHRyYW5zYWN0aW9uICp0cmFuczsKIAllbnVtIHhzZF9zb2Nr bXNnX3R5cGUgdHlwZSA9IGluLT5oZHIubXNnLnR5cGU7CiAJaW50IHJldDsK Kwl2b2lkICpjdHg7CiAKIAlpZiAoKHVuc2lnbmVkIGludCl0eXBlID49IFhT X1RZUEVfQ09VTlQgfHwgIXdpcmVfZnVuY3NbdHlwZV0uZnVuYykgewogCQll cHJpbnRmKCJDbGllbnQgdW5rbm93biBvcGVyYXRpb24gJWkiLCB0eXBlKTsK QEAgLTE4NjAsMTAgKzE4NzMsMTcgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19t ZXNzYWdlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiAJCXJldHVybjsKIAl9CiAKKwljdHggPSB0YWxsb2Nf bmV3KE5VTEwpOworCWlmICghY3R4KSB7CisJCXNlbmRfZXJyb3IoY29ubiwg RU5PTUVNKTsKKwkJcmV0dXJuOworCX0KKwogCWFzc2VydChjb25uLT50cmFu c2FjdGlvbiA9PSBOVUxMKTsKIAljb25uLT50cmFuc2FjdGlvbiA9IHRyYW5z OwogCi0JcmV0ID0gd2lyZV9mdW5jc1t0eXBlXS5mdW5jKGNvbm4sIGluKTsK KwlyZXQgPSB3aXJlX2Z1bmNzW3R5cGVdLmZ1bmMoY3R4LCBjb25uLCBpbik7 CisJdGFsbG9jX2ZyZWUoY3R4KTsKIAlpZiAocmV0KQogCQlzZW5kX2Vycm9y KGNvbm4sIHJldCk7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hl bnN0b3JlZF9kb21haW4uYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9k b21haW4uYwppbmRleCAzZDUxNDI1ODEzMzIuLmQyNjJmNGU5ZGJkZiAxMDA2 NDQKLS0tIGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5jCisr KyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21haW4uYwpAQCAtMzM2 LDcgKzMzNiw3IEBAIGJvb2wgZG9tYWluX2Nhbl93cml0ZShzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubikKIAlyZXR1cm4gKChpbnRmLT5yc3BfcHJvZCAtIGlu dGYtPnJzcF9jb25zKSAhPSBYRU5TVE9SRV9SSU5HX1NJWkUpOwogfQogCi1z dGF0aWMgY2hhciAqdGFsbG9jX2RvbWFpbl9wYXRoKHZvaWQgKmNvbnRleHQs IHVuc2lnbmVkIGludCBkb21pZCkKK3N0YXRpYyBjaGFyICp0YWxsb2NfZG9t YWluX3BhdGgoY29uc3Qgdm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IGRv bWlkKQogewogCXJldHVybiB0YWxsb2NfYXNwcmludGYoY29udGV4dCwgIi9s b2NhbC9kb21haW4vJXUiLCBkb21pZCk7CiB9CkBAIC01NDAsNyArNTQwLDgg QEAgc3RhdGljIHN0cnVjdCBkb21haW4gKmludHJvZHVjZV9kb21haW4oY29u c3Qgdm9pZCAqY3R4LAogfQogCiAvKiBkb21pZCwgZ2ZuLCBldnRjaG4sIHBh dGggKi8KLWludCBkb19pbnRyb2R1Y2Uoc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKK2ludCBkb19pbnRyb2R1 Y2UoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwK KwkJIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAlzdHJ1Y3QgZG9t YWluICpkb21haW47CiAJY2hhciAqdmVjWzNdOwpAQCAtNTU4LDcgKzU1OSw3 IEBAIGludCBkb19pbnRyb2R1Y2Uoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s IHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlpZiAocG9ydCA8PSAwKQog CQlyZXR1cm4gRUlOVkFMOwogCi0JZG9tYWluID0gaW50cm9kdWNlX2RvbWFp bihpbiwgZG9taWQsIHBvcnQsIGZhbHNlKTsKKwlkb21haW4gPSBpbnRyb2R1 Y2VfZG9tYWluKGN0eCwgZG9taWQsIHBvcnQsIGZhbHNlKTsKIAlpZiAoIWRv bWFpbikKIAkJcmV0dXJuIGVycm5vOwogCkBAIC01ODEsNyArNTgyLDggQEAg c3RhdGljIHN0cnVjdCBkb21haW4gKmZpbmRfY29ubmVjdGVkX2RvbWFpbih1 bnNpZ25lZCBpbnQgZG9taWQpCiAJcmV0dXJuIGRvbWFpbjsKIH0KIAotaW50 IGRvX3NldF90YXJnZXQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbikKK2ludCBkb19zZXRfdGFyZ2V0KGNvbnN0 IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCWNoYXIgKnZlY1syXTsKIAl1 bnNpZ25lZCBpbnQgZG9taWQsIHRkb21pZDsKQEAgLTYyNSw3ICs2MjcsOCBA QCBzdGF0aWMgc3RydWN0IGRvbWFpbiAqb25lYXJnX2RvbWFpbihzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwKIH0KIAogLyogZG9taWQgKi8KLWludCBkb19y ZWxlYXNlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCitpbnQgZG9fcmVsZWFzZShjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCSAgICAgICBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IGRvbWFpbiAqZG9tYWluOwog CkBAIC02NDAsNyArNjQzLDggQEAgaW50IGRvX3JlbGVhc2Uoc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAly ZXR1cm4gMDsKIH0KIAotaW50IGRvX3Jlc3VtZShzdHJ1Y3QgY29ubmVjdGlv biAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX3Jl c3VtZShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25u LAorCSAgICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAlzdHJ1 Y3QgZG9tYWluICpkb21haW47CiAKQEAgLTY1NSw3ICs2NTksOCBAQCBpbnQg ZG9fcmVzdW1lKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCiAJcmV0dXJuIDA7CiB9CiAKLWludCBkb19nZXRf ZG9tYWluX3BhdGgoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBi dWZmZXJlZF9kYXRhICppbikKK2ludCBkb19nZXRfZG9tYWluX3BhdGgoY29u c3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICAg ICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAljaGFyICpwYXRo OwogCWNvbnN0IGNoYXIgKmRvbWlkX3N0ciA9IG9uZWFyZyhpbik7CkBAIC02 NjMsMTggKzY2OCwxNyBAQCBpbnQgZG9fZ2V0X2RvbWFpbl9wYXRoKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiAJaWYgKCFkb21pZF9zdHIpCiAJCXJldHVybiBFSU5WQUw7CiAKLQlwYXRo ID0gdGFsbG9jX2RvbWFpbl9wYXRoKGNvbm4sIGF0b2koZG9taWRfc3RyKSk7 CisJcGF0aCA9IHRhbGxvY19kb21haW5fcGF0aChjdHgsIGF0b2koZG9taWRf c3RyKSk7CiAJaWYgKCFwYXRoKQogCQlyZXR1cm4gZXJybm87CiAKIAlzZW5k X3JlcGx5KGNvbm4sIFhTX0dFVF9ET01BSU5fUEFUSCwgcGF0aCwgc3RybGVu KHBhdGgpICsgMSk7CiAKLQl0YWxsb2NfZnJlZShwYXRoKTsKLQogCXJldHVy biAwOwogfQogCi1pbnQgZG9faXNfZG9tYWluX2ludHJvZHVjZWQoc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikK K2ludCBkb19pc19kb21haW5faW50cm9kdWNlZChjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkJICAgIHN0cnVjdCBidWZm ZXJlZF9kYXRhICppbikKIHsKIAlpbnQgcmVzdWx0OwogCXVuc2lnbmVkIGlu dCBkb21pZDsKQEAgLTY5NSw3ICs2OTksOCBAQCBpbnQgZG9faXNfZG9tYWlu X2ludHJvZHVjZWQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBi dWZmZXJlZF9kYXRhICppbikKIH0KIAogLyogQWxsb3cgZ3Vlc3QgdG8gcmVz ZXQgYWxsIHdhdGNoZXMgKi8KLWludCBkb19yZXNldF93YXRjaGVzKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CitpbnQgZG9fcmVzZXRfd2F0Y2hlcyhjb25zdCB2b2lkICpjdHgsIHN0cnVj dCBjb25uZWN0aW9uICpjb25uLAorCQkgICAgIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbikKIHsKIAljb25uX2RlbGV0ZV9hbGxfd2F0Y2hlcyhjb25uKTsK IAljb25uX2RlbGV0ZV9hbGxfdHJhbnNhY3Rpb25zKGNvbm4pOwpkaWZmIC0t Z2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5oIGIvdG9v bHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5oCmluZGV4IDBmODgzOTM2 ZjQxMy4uZGE1MTM0NDNjZDQ2IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9y ZS94ZW5zdG9yZWRfZG9tYWluLmgKKysrIGIvdG9vbHMveGVuc3RvcmUveGVu c3RvcmVkX2RvbWFpbi5oCkBAIC0yNCwyNSArMjQsMzIgQEAgdm9pZCBoYW5k bGVfZXZlbnQodm9pZCk7CiB2b2lkIGNoZWNrX2RvbWFpbnMoYm9vbCByZXN0 b3JlKTsKIAogLyogZG9taWQsIG1mbiwgZXZlbnRjaG4sIHBhdGggKi8KLWlu dCBkb19pbnRyb2R1Y2Uoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbik7CitpbnQgZG9faW50cm9kdWNlKGNvbnN0 IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwogCiAvKiBkb21pZCAqLwotaW50IGRv X2lzX2RvbWFpbl9pbnRyb2R1Y2VkKHN0cnVjdCBjb25uZWN0aW9uICpjb25u LCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOworaW50IGRvX2lzX2RvbWFp bl9pbnRyb2R1Y2VkKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sCisJCQkgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsK IAogLyogZG9taWQgKi8KLWludCBkb19yZWxlYXNlKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOworaW50IGRv X3JlbGVhc2UoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwKKwkgICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKIAog LyogZG9taWQgKi8KLWludCBkb19yZXN1bWUoc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CitpbnQgZG9fcmVz dW1lKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s CisJICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKIAogLyogZG9t aWQsIHRhcmdldCAqLwotaW50IGRvX3NldF90YXJnZXQoc3RydWN0IGNvbm5l Y3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CitpbnQg ZG9fc2V0X3RhcmdldChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLAorCQkgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CiAK IC8qIGRvbWlkICovCi1pbnQgZG9fZ2V0X2RvbWFpbl9wYXRoKHN0cnVjdCBj b25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwor aW50IGRvX2dldF9kb21haW5fcGF0aChjb25zdCB2b2lkICpjdHgsIHN0cnVj dCBjb25uZWN0aW9uICpjb25uLAorCQkgICAgICAgc3RydWN0IGJ1ZmZlcmVk X2RhdGEgKmluKTsKIAogLyogQWxsb3cgZ3Vlc3QgdG8gcmVzZXQgYWxsIHdh dGNoZXMgKi8KLWludCBkb19yZXNldF93YXRjaGVzKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOworaW50IGRv X3Jlc2V0X3dhdGNoZXMoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwKKwkJICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p OwogCiB2b2lkIGRvbWFpbl9pbml0KGludCBldnRmZCk7CiB2b2lkIGRvbTBf aW5pdCh2b2lkKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0 b3JlZF90cmFuc2FjdGlvbi5jIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVk X3RyYW5zYWN0aW9uLmMKaW5kZXggMjg3NzQ4MTNkZTgzLi4zZTNlYjQ3MzI2 Y2MgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF90cmFu c2FjdGlvbi5jCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF90cmFu c2FjdGlvbi5jCkBAIC00ODEsNyArNDgxLDggQEAgc3RydWN0IHRyYW5zYWN0 aW9uICp0cmFuc2FjdGlvbl9sb29rdXAoc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sIHVpbnQzMl90IGlkKQogCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOwog fQogCi1pbnQgZG9fdHJhbnNhY3Rpb25fc3RhcnQoc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKK2ludCBkb190 cmFuc2FjdGlvbl9zdGFydChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLAorCQkJIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikK IHsKIAlzdHJ1Y3QgdHJhbnNhY3Rpb24gKnRyYW5zLCAqZXhpc3RzOwogCWNo YXIgaWRfc3RyWzIwXTsKQEAgLTQ5NCw4ICs0OTUsOCBAQCBpbnQgZG9fdHJh bnNhY3Rpb25fc3RhcnQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbikKIAkgICAgY29ubi0+dHJhbnNhY3Rpb25f c3RhcnRlZCA+IHF1b3RhX21heF90cmFuc2FjdGlvbikKIAkJcmV0dXJuIEVO T1NQQzsKIAotCS8qIEF0dGFjaCB0cmFuc2FjdGlvbiB0byBpbnB1dCBmb3Ig YXV0b2ZyZWUgdW50aWwgaXQncyBjb21wbGV0ZSAqLwotCXRyYW5zID0gdGFs bG9jX3plcm8oaW4sIHN0cnVjdCB0cmFuc2FjdGlvbik7CisJLyogQXR0YWNo IHRyYW5zYWN0aW9uIHRvIGN0eCBmb3IgYXV0b2ZyZWUgdW50aWwgaXQncyBj b21wbGV0ZSAqLworCXRyYW5zID0gdGFsbG9jX3plcm8oY3R4LCBzdHJ1Y3Qg dHJhbnNhY3Rpb24pOwogCWlmICghdHJhbnMpCiAJCXJldHVybiBFTk9NRU07 CiAKQEAgLTU0NCw3ICs1NDUsOCBAQCBzdGF0aWMgaW50IHRyYW5zYWN0aW9u X2ZpeF9kb21haW5zKHN0cnVjdCB0cmFuc2FjdGlvbiAqdHJhbnMsIGJvb2wg dXBkYXRlKQogCXJldHVybiAwOwogfQogCi1pbnQgZG9fdHJhbnNhY3Rpb25f ZW5kKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pCitpbnQgZG9fdHJhbnNhY3Rpb25fZW5kKGNvbnN0IHZvaWQg KmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgICAgICBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJY29uc3QgY2hhciAqYXJnID0g b25lYXJnKGluKTsKIAlzdHJ1Y3QgdHJhbnNhY3Rpb24gKnRyYW5zOwpAQCAt NTYyLDggKzU2NCw4IEBAIGludCBkb190cmFuc2FjdGlvbl9lbmQoc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikK IAlpZiAoIWNvbm4tPnRyYW5zYWN0aW9uX3N0YXJ0ZWQpCiAJCWNvbm4tPnRh X3N0YXJ0X3RpbWUgPSAwOwogCi0JLyogQXR0YWNoIHRyYW5zYWN0aW9uIHRv IGluIGZvciBhdXRvLWNsZWFudXAgKi8KLQl0YWxsb2Nfc3RlYWwoaW4sIHRy YW5zKTsKKwkvKiBBdHRhY2ggdHJhbnNhY3Rpb24gdG8gY3R4IGZvciBhdXRv LWNsZWFudXAgKi8KKwl0YWxsb2Nfc3RlYWwoY3R4LCB0cmFucyk7CiAKIAlp ZiAoc3RyZXEoYXJnLCAiVCIpKSB7CiAJCWlmICh0cmFucy0+ZmFpbCkKZGlm ZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF90cmFuc2FjdGlv bi5oIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0aW9uLmgK aW5kZXggZTNjYmQ2YjIzMDk1Li4zOWQ3ZjgxYzUxMjcgMTAwNjQ0Ci0tLSBh L3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF90cmFuc2FjdGlvbi5oCisrKyBi L3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF90cmFuc2FjdGlvbi5oCkBAIC0y OSw4ICsyOSwxMCBAQCBzdHJ1Y3QgdHJhbnNhY3Rpb247CiAKIGV4dGVybiB1 aW50NjRfdCBnZW5lcmF0aW9uOwogCi1pbnQgZG9fdHJhbnNhY3Rpb25fc3Rh cnQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9k YXRhICpub2RlKTsKLWludCBkb190cmFuc2FjdGlvbl9lbmQoc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7Citp bnQgZG9fdHJhbnNhY3Rpb25fc3RhcnQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJCSBzdHJ1Y3QgYnVmZmVyZWRfZGF0 YSAqbm9kZSk7CitpbnQgZG9fdHJhbnNhY3Rpb25fZW5kKGNvbnN0IHZvaWQg KmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgICAgICBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwogCiBzdHJ1Y3QgdHJhbnNhY3Rpb24g KnRyYW5zYWN0aW9uX2xvb2t1cChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwg dWludDMyX3QgaWQpOwogCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94 ZW5zdG9yZWRfd2F0Y2guYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93 YXRjaC5jCmluZGV4IDQ5NzBlOWYxYTFiOS4uODU0YmJjYWQ2ZTQ1IDEwMDY0 NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfd2F0Y2guYworKysg Yi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfd2F0Y2guYwpAQCAtMjQzLDcg KzI0Myw3IEBAIHN0YXRpYyBzdHJ1Y3Qgd2F0Y2ggKmFkZF93YXRjaChzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwgY2hhciAqcGF0aCwgY2hhciAqdG9rZW4s CiAJcmV0dXJuIE5VTEw7CiB9CiAKLWludCBkb193YXRjaChzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQoraW50 IGRvX3dhdGNoKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAlzdHJ1Y3Qg d2F0Y2ggKndhdGNoOwogCWNoYXIgKnZlY1syXTsKQEAgLTI1Miw3ICsyNTIs NyBAQCBpbnQgZG9fd2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0 cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlpZiAoZ2V0X3N0cmluZ3MoaW4s IHZlYywgQVJSQVlfU0laRSh2ZWMpKSAhPSBBUlJBWV9TSVpFKHZlYykpCiAJ CXJldHVybiBFSU5WQUw7CiAKLQllcnJubyA9IGNoZWNrX3dhdGNoX3BhdGgo Y29ubiwgaW4sICYodmVjWzBdKSwgJnJlbGF0aXZlKTsKKwllcnJubyA9IGNo ZWNrX3dhdGNoX3BhdGgoY29ubiwgY3R4LCAmKHZlY1swXSksICZyZWxhdGl2 ZSk7CiAJaWYgKGVycm5vKQogCQlyZXR1cm4gZXJybm87CiAKQEAgLTI4Myw3 ICsyODMsOCBAQCBpbnQgZG9fd2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlyZXR1cm4gMDsKIH0K IAotaW50IGRvX3Vud2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0 cnVjdCBidWZmZXJlZF9kYXRhICppbikKK2ludCBkb191bndhdGNoKGNvbnN0 IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJICAgICAg IHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAlzdHJ1Y3Qgd2F0Y2gg KndhdGNoOwogCWNoYXIgKm5vZGUsICp2ZWNbMl07CkBAIC0yOTEsNyArMjky LDcgQEAgaW50IGRvX3Vud2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s IHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlpZiAoZ2V0X3N0cmluZ3Mo aW4sIHZlYywgQVJSQVlfU0laRSh2ZWMpKSAhPSBBUlJBWV9TSVpFKHZlYykp CiAJCXJldHVybiBFSU5WQUw7CiAKLQlub2RlID0gY2Fub25pY2FsaXplKGNv bm4sIGluLCB2ZWNbMF0pOworCW5vZGUgPSBjYW5vbmljYWxpemUoY29ubiwg Y3R4LCB2ZWNbMF0pOwogCWlmICghbm9kZSkKIAkJcmV0dXJuIEVOT01FTTsK IAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHdhdGNoLCAmY29ubi0+d2F0Y2hlcywg bGlzdCkgewpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVk X3dhdGNoLmggYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfd2F0Y2guaApp bmRleCAwZTY5M2YwODM5Y2QuLjA5MTg5MGVkY2E5NiAxMDA2NDQKLS0tIGEv dG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3dhdGNoLmgKKysrIGIvdG9vbHMv eGVuc3RvcmUveGVuc3RvcmVkX3dhdGNoLmgKQEAgLTIxLDggKzIxLDEwIEBA CiAKICNpbmNsdWRlICJ4ZW5zdG9yZWRfY29yZS5oIgogCi1pbnQgZG9fd2F0 Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbik7Ci1pbnQgZG9fdW53YXRjaChzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKK2ludCBkb193YXRj aChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAor CSAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKK2ludCBkb191bndh dGNoKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s CisJICAgICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CiAKIC8qIEZp cmUgYWxsIHdhdGNoZXM6ICFleGFjdCBtZWFucyBhbGwgdGhlIGNoaWxkcmVu IGFyZSBhZmZlY3RlZCAoaWUuIHJtKS4gKi8KIHZvaWQgZmlyZV93YXRjaGVz KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBjb25zdCB2b2lkICp0bXAsIGNv bnN0IGNoYXIgKm5hbWUsCg== --=separator Content-Type: application/octet-stream; name="xsa416-4.16.patch" Content-Disposition: attachment; filename="xsa416-4.16.patch" Content-Transfer-Encoding: base64 RnJvbSA4MGQxMjhiMTQ0ODJkMmU5MzQyMTg0ZDJkOTk0OTM2Nzg1MWM0ZDE0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3Nz IDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFR1ZSwgMTMgU2VwIDIwMjIgMDc6 MzU6MTAgKzAyMDAKU3ViamVjdDogdG9vbHMveGVuc3RvcmU6IGRvbid0IHVz ZSBjb25uLT5pbiBhcyBjb250ZXh0IGZvciB0ZW1wb3JhcnkKIGFsbG9jYXRp b25zCgpVc2luZyB0aGUgc3RydWN0IGJ1ZmZlcmVkIGRhdGEgcG9pbnRlciBv ZiB0aGUgY3VycmVudCBwcm9jZXNzZWQgcmVxdWVzdApmb3IgdGVtcG9yYXJ5 IGRhdGEgYWxsb2NhdGlvbnMgaGFzIGEgbWFqb3IgZHJhd2JhY2s6IHRoZSB1 c2VkIGFyZWEgKGFuZAp3aXRoIHRoYXQgdGhlIHRlbXBvcmFyeSBkYXRhKSBp cyBmcmVlZCBvbmx5IGFmdGVyIHRoZSByZXNwb25zZSBvZiB0aGUKcmVxdWVz dCBoYXMgYmVlbiB3cml0dGVuIHRvIHRoZSByaW5nIHBhZ2Ugb3IgaGFzIGJl ZW4gcmVhZCB2aWEgdGhlCnNvY2tldC4gVGhpcyBjYW4gaGFwcGVuIG11Y2gg bGF0ZXIgaW4gY2FzZSBhIGd1ZXN0IGlzbid0IHJlYWRpbmcgaXRzCnJlc3Bv bnNlcyBmYXN0IGVub3VnaC4KCkFzIHRoZSB0ZW1wb3JhcnkgZGF0YSBjYW4g YmUgc2FmZWx5IGZyZWVkIGFmdGVyIGNyZWF0aW5nIHRoZSByZXNwb25zZSwK YWRkIGEgdGVtcG9yYXJ5IGNvbnRleHQgZm9yIHRoYXQgcHVycG9zZSBhbmQg dXNlIHRoYXQgZm9yIGFsbG9jYXRpbmcKdGhlIHRlbXBvcmFyeSBtZW1vcnks IGFzIGl0IHdhcyBhbHJlYWR5IHRoZSBjYXNlIGJlZm9yZSBjb21taXQKY2Mw NjEyNDY0ODk2ICgieGVuc3RvcmU6IGFkZCBzbWFsbCBkZWZhdWx0IGRhdGEg YnVmZmVyIHRvIGludGVybmFsCnN0cnVjdCIpLgoKU29tZSBzdWItZnVuY3Rp b25zIG5lZWQgdG8gZ2FpbiB0aGUgImNvbnN0IiBhdHRyaWJ1dGUgZm9yIHRo ZSB0YWxsb2MKY29udGV4dC4KClRoaXMgaXMgWFNBLTQxNiAvIENWRS0yMDIy LTQyMzE5LgoKUmVwb3J0ZWQtYnk6IEp1bGllbiBHcmFsbCA8amdyYWxsQGFt YXpvbi5jb20+CkZpeGVzOiBjYzA2MTI0NjQ4OTYgKCJ4ZW5zdG9yZTogYWRk IHNtYWxsIGRlZmF1bHQgZGF0YSBidWZmZXIgdG8gaW50ZXJuYWwgc3RydWN0 IikKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9u LmNvbT4KCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRf Y29udHJvbC5jIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wu YwppbmRleCAxMDMxYTgxYzM4NzQuLmQwMzUwYzZhZDg2MSAxMDA2NDQKLS0t IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuYworKysgYi90 b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29udHJvbC5jCkBAIC0xNTUsNyAr MTU1LDcgQEAgYm9vbCBsdV9pc19wZW5kaW5nKHZvaWQpCiAKIHN0cnVjdCBj bWRfcyB7CiAJY2hhciAqY21kOwotCWludCAoKmZ1bmMpKHZvaWQgKiwgc3Ry dWN0IGNvbm5lY3Rpb24gKiwgY2hhciAqKiwgaW50KTsKKwlpbnQgKCpmdW5j KShjb25zdCB2b2lkICosIHN0cnVjdCBjb25uZWN0aW9uICosIGNoYXIgKios IGludCk7CiAJY2hhciAqcGFyczsKIAkvKgogCSAqIG1heF9wYXJzIGNhbiBi ZSB1c2VkIHRvIGxpbWl0IHRoZSBzaXplIG9mIHRoZSBwYXJhbWV0ZXIgdmVj dG9yLApAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0cnVjdCBjbWRfcyB7CiAJdW5z aWduZWQgaW50IG1heF9wYXJzOwogfTsKIAotc3RhdGljIGludCBkb19jb250 cm9sX2NoZWNrKHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s CitzdGF0aWMgaW50IGRvX2NvbnRyb2xfY2hlY2soY29uc3Qgdm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAkJCSAgICBjaGFyICoqdmVj LCBpbnQgbnVtKQogewogCWlmIChudW0pCkBAIC0xNzksNyArMTc5LDcgQEAg c3RhdGljIGludCBkb19jb250cm9sX2NoZWNrKHZvaWQgKmN0eCwgc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgZG9fY29udHJvbF9sb2codm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlv biAqY29ubiwKK3N0YXRpYyBpbnQgZG9fY29udHJvbF9sb2coY29uc3Qgdm9p ZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAkJCSAgY2hhciAq KnZlYywgaW50IG51bSkKIHsKIAlpZiAobnVtICE9IDEpCkBAIC0yODEsNyAr MjgxLDcgQEAgc3RhdGljIGludCBxdW90YV9nZXQoY29uc3Qgdm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAlyZXR1cm4gZG9tYWluX2dl dF9xdW90YShjdHgsIGNvbm4sIGF0b2kodmVjWzBdKSk7CiB9CiAKLXN0YXRp YyBpbnQgZG9fY29udHJvbF9xdW90YSh2b2lkICpjdHgsIHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLAorc3RhdGljIGludCBkb19jb250cm9sX3F1b3RhKGNv bnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCQkg ICAgY2hhciAqKnZlYywgaW50IG51bSkKIHsKIAlpZiAobnVtID09IDApCkBA IC0yOTMsNyArMjkzLDcgQEAgc3RhdGljIGludCBkb19jb250cm9sX3F1b3Rh KHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJu IHF1b3RhX2dldChjdHgsIGNvbm4sIHZlYywgbnVtKTsKIH0KIAotc3RhdGlj IGludCBkb19jb250cm9sX3F1b3RhX3Modm9pZCAqY3R4LCBzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwKK3N0YXRpYyBpbnQgZG9fY29udHJvbF9xdW90YV9z KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJ CQkgICAgICBjaGFyICoqdmVjLCBpbnQgbnVtKQogewogCWlmIChudW0gPT0g MCkKQEAgLTMwNiw3ICszMDYsNyBAQCBzdGF0aWMgaW50IGRvX2NvbnRyb2xf cXVvdGFfcyh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAog fQogCiAjaWZkZWYgX19NSU5JT1NfXwotc3RhdGljIGludCBkb19jb250cm9s X21lbXJlcG9ydCh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25u LAorc3RhdGljIGludCBkb19jb250cm9sX21lbXJlcG9ydChjb25zdCB2b2lk ICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCQkJCWNoYXIgKip2 ZWMsIGludCBudW0pCiB7CiAJaWYgKG51bSkKQEAgLTMxOCw3ICszMTgsNyBA QCBzdGF0aWMgaW50IGRvX2NvbnRyb2xfbWVtcmVwb3J0KHZvaWQgKmN0eCwg c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJuIDA7CiB9CiAjZWxz ZQotc3RhdGljIGludCBkb19jb250cm9sX2xvZ2ZpbGUodm9pZCAqY3R4LCBz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKK3N0YXRpYyBpbnQgZG9fY29udHJv bF9sb2dmaWxlKGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sCiAJCQkgICAgICBjaGFyICoqdmVjLCBpbnQgbnVtKQogewogCWlm IChudW0gIT0gMSkKQEAgLTMzMyw3ICszMzMsNyBAQCBzdGF0aWMgaW50IGRv X2NvbnRyb2xfbG9nZmlsZSh2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRvX2NvbnRy b2xfbWVtcmVwb3J0KHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sCitzdGF0aWMgaW50IGRvX2NvbnRyb2xfbWVtcmVwb3J0KGNvbnN0IHZv aWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCQkJY2hhciAq KnZlYywgaW50IG51bSkKIHsKIAlGSUxFICpmcDsKQEAgLTM3Myw3ICszNzMs NyBAQCBzdGF0aWMgaW50IGRvX2NvbnRyb2xfbWVtcmVwb3J0KHZvaWQgKmN0 eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiB9CiAjZW5kaWYKIAotc3Rh dGljIGludCBkb19jb250cm9sX3ByaW50KHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCitzdGF0aWMgaW50IGRvX2NvbnRyb2xfcHJpbnQo Y29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAkJ CSAgICBjaGFyICoqdmVjLCBpbnQgbnVtKQogewogCWlmIChudW0gIT0gMSkK QEAgLTg3NSw3ICs4NzUsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqbHVfc3Rh cnQoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwK IAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGludCBkb19jb250cm9sX2x1 KHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCitzdGF0aWMg aW50IGRvX2NvbnRyb2xfbHUoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwKIAkJCSBjaGFyICoqdmVjLCBpbnQgbnVtKQogewog CWNvbnN0IGNoYXIgKnJldCA9IE5VTEw7CkBAIC05MjIsNyArOTIyLDcgQEAg c3RhdGljIGludCBkb19jb250cm9sX2x1KHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCiB9CiAjZW5kaWYKIAotc3RhdGljIGludCBkb19j b250cm9sX2hlbHAodm9pZCAqLCBzdHJ1Y3QgY29ubmVjdGlvbiAqLCBjaGFy ICoqLCBpbnQpOworc3RhdGljIGludCBkb19jb250cm9sX2hlbHAoY29uc3Qg dm9pZCAqLCBzdHJ1Y3QgY29ubmVjdGlvbiAqLCBjaGFyICoqLCBpbnQpOwog CiBzdGF0aWMgc3RydWN0IGNtZF9zIGNtZHNbXSA9IHsKIAl7ICJjaGVjayIs IGRvX2NvbnRyb2xfY2hlY2ssICIiIH0sCkBAIC05NjEsNyArOTYxLDcgQEAg c3RhdGljIHN0cnVjdCBjbWRfcyBjbWRzW10gPSB7CiAJeyAiaGVscCIsIGRv X2NvbnRyb2xfaGVscCwgIiIgfSwKIH07CiAKLXN0YXRpYyBpbnQgZG9fY29u dHJvbF9oZWxwKHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s CitzdGF0aWMgaW50IGRvX2NvbnRyb2xfaGVscChjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCQkJICAgY2hhciAqKnZlYywg aW50IG51bSkKIHsKIAlpbnQgY21kLCBsZW4gPSAwOwpAQCAtOTk3LDcgKzk5 Nyw4IEBAIHN0YXRpYyBpbnQgZG9fY29udHJvbF9oZWxwKHZvaWQgKmN0eCwg c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJcmV0dXJuIDA7CiB9CiAKLWlu dCBkb19jb250cm9sKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qg YnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9fY29udHJvbChjb25zdCB2b2lk ICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCSAgICAgICBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJdW5zaWduZWQgaW50IGNtZCwg bnVtLCBvZmY7CiAJY2hhciAqKnZlYyA9IE5VTEw7CkBAIC0xMDE3LDExICsx MDE4LDExIEBAIGludCBkb19jb250cm9sKHN0cnVjdCBjb25uZWN0aW9uICpj b25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJbnVtID0geHNfY291 bnRfc3RyaW5ncyhpbi0+YnVmZmVyLCBpbi0+dXNlZCk7CiAJaWYgKGNtZHNb Y21kXS5tYXhfcGFycykKIAkJbnVtID0gbWluKG51bSwgY21kc1tjbWRdLm1h eF9wYXJzKTsKLQl2ZWMgPSB0YWxsb2NfYXJyYXkoaW4sIGNoYXIgKiwgbnVt KTsKKwl2ZWMgPSB0YWxsb2NfYXJyYXkoY3R4LCBjaGFyICosIG51bSk7CiAJ aWYgKCF2ZWMpCiAJCXJldHVybiBFTk9NRU07CiAJaWYgKGdldF9zdHJpbmdz KGluLCB2ZWMsIG51bSkgPCBudW0pCiAJCXJldHVybiBFSU87CiAKLQlyZXR1 cm4gY21kc1tjbWRdLmZ1bmMoaW4sIGNvbm4sIHZlYyArIDEsIG51bSAtIDEp OworCXJldHVybiBjbWRzW2NtZF0uZnVuYyhjdHgsIGNvbm4sIHZlYyArIDEs IG51bSAtIDEpOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVu c3RvcmVkX2NvbnRyb2wuaCBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9j b250cm9sLmgKaW5kZXggOThiNmZiY2VhMmIxLi5hOGNiNzY1NTliYTEgMTAw NjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb250cm9sLmgK KysrIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvbnRyb2wuaApAQCAt MTYsNyArMTYsOCBAQAogICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAq LwogCi1pbnQgZG9fY29udHJvbChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwg c3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKK2ludCBkb19jb250cm9sKGNv bnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJICAg ICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CiB2b2lkIGx1X3JlYWRf c3RhdGUodm9pZCk7CiAKIHN0cnVjdCBjb25uZWN0aW9uICpsdV9nZXRfY29u bmVjdGlvbih2b2lkKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hl bnN0b3JlZF9jb3JlLmMgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29y ZS5jCmluZGV4IDE2NTA0ZGU0MjAxNy4uNDExY2MwZTQ0NzE0IDEwMDY0NAot LS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5jCisrKyBiL3Rv b2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmMKQEAgLTEyNDgsMTEgKzEy NDgsMTMgQEAgc3RhdGljIHN0cnVjdCBub2RlICpnZXRfbm9kZV9jYW5vbmlj YWxpemVkKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCXJldHVybiBnZXRf bm9kZShjb25uLCBjdHgsICpjYW5vbmljYWxfbmFtZSwgcGVybSk7CiB9CiAK LXN0YXRpYyBpbnQgc2VuZF9kaXJlY3Rvcnkoc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKK3N0YXRpYyBpbnQg c2VuZF9kaXJlY3RvcnkoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwKKwkJCSAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQog ewogCXN0cnVjdCBub2RlICpub2RlOwogCi0Jbm9kZSA9IGdldF9ub2RlX2Nh bm9uaWNhbGl6ZWQoY29ubiwgaW4sIG9uZWFyZyhpbiksIE5VTEwsIFhTX1BF Uk1fUkVBRCk7CisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29u biwgY3R4LCBvbmVhcmcoaW4pLCBOVUxMLAorCQkJCSAgICAgIFhTX1BFUk1f UkVBRCk7CiAJaWYgKCFub2RlKQogCQlyZXR1cm4gZXJybm87CiAKQEAgLTEy NjEsNyArMTI2Myw3IEBAIHN0YXRpYyBpbnQgc2VuZF9kaXJlY3Rvcnkoc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICpp bikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzZW5kX2RpcmVjdG9y eV9wYXJ0KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorc3RhdGljIGludCBz ZW5kX2RpcmVjdG9yeV9wYXJ0KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sCiAJCQkgICAgICAgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKQogewogCXVuc2lnbmVkIGludCBvZmYsIGxlbiwgbWF4bGVuLCBn ZW5sZW47CkBAIC0xMjczLDcgKzEyNzUsOCBAQCBzdGF0aWMgaW50IHNlbmRf ZGlyZWN0b3J5X3BhcnQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCXJl dHVybiBFSU5WQUw7CiAKIAkvKiBGaXJzdCBhcmcgaXMgbm9kZSBuYW1lLiAq LwotCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGluLCBp bi0+YnVmZmVyLCBOVUxMLCBYU19QRVJNX1JFQUQpOworCW5vZGUgPSBnZXRf bm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGN0eCwgaW4tPmJ1ZmZlciwgTlVM TCwKKwkJCQkgICAgICBYU19QRVJNX1JFQUQpOwogCWlmICghbm9kZSkKIAkJ cmV0dXJuIGVycm5vOwogCkBAIC0xMzAwLDcgKzEzMDMsNyBAQCBzdGF0aWMg aW50IHNlbmRfZGlyZWN0b3J5X3BhcnQoc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sCiAJCQlicmVhazsKIAl9CiAKLQlkYXRhID0gdGFsbG9jX2FycmF5KGlu LCBjaGFyLCBnZW5sZW4gKyBsZW4gKyAxKTsKKwlkYXRhID0gdGFsbG9jX2Fy cmF5KGN0eCwgY2hhciwgZ2VubGVuICsgbGVuICsgMSk7CiAJaWYgKCFkYXRh KQogCQlyZXR1cm4gRU5PTUVNOwogCkBAIC0xMzE2LDExICsxMzE5LDEzIEBA IHN0YXRpYyBpbnQgc2VuZF9kaXJlY3RvcnlfcGFydChzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkb19y ZWFkKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pCitzdGF0aWMgaW50IGRvX3JlYWQoY29uc3Qgdm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICAgc3RydWN0IGJ1ZmZl cmVkX2RhdGEgKmluKQogewogCXN0cnVjdCBub2RlICpub2RlOwogCi0Jbm9k ZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4sIG9uZWFyZyhp biksIE5VTEwsIFhTX1BFUk1fUkVBRCk7CisJbm9kZSA9IGdldF9ub2RlX2Nh bm9uaWNhbGl6ZWQoY29ubiwgY3R4LCBvbmVhcmcoaW4pLCBOVUxMLAorCQkJ CSAgICAgIFhTX1BFUk1fUkVBRCk7CiAJaWYgKCFub2RlKQogCQlyZXR1cm4g ZXJybm87CiAKQEAgLTE1MTAsNyArMTUxNSw4IEBAIHN0YXRpYyBzdHJ1Y3Qg bm9kZSAqY3JlYXRlX25vZGUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIGNv bnN0IHZvaWQgKmN0eCwKIH0KIAogLyogcGF0aCwgZGF0YS4uLiAqLwotc3Rh dGljIGludCBkb193cml0ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQorc3RhdGljIGludCBkb193cml0ZShj b25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkg ICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXVuc2lnbmVkIGlu dCBvZmZzZXQsIGRhdGFsZW47CiAJc3RydWN0IG5vZGUgKm5vZGU7CkBAIC0x NTI0LDEyICsxNTMwLDEyIEBAIHN0YXRpYyBpbnQgZG9fd3JpdGUoc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikK IAlvZmZzZXQgPSBzdHJsZW4odmVjWzBdKSArIDE7CiAJZGF0YWxlbiA9IGlu LT51c2VkIC0gb2Zmc2V0OwogCi0Jbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNh bGl6ZWQoY29ubiwgaW4sIHZlY1swXSwgJm5hbWUsIFhTX1BFUk1fV1JJVEUp OworCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNvbm4sIGN0eCwg dmVjWzBdLCAmbmFtZSwgWFNfUEVSTV9XUklURSk7CiAJaWYgKCFub2RlKSB7 CiAJCS8qIE5vIHBlcm1pc3Npb25zLCBpbnZhbGlkIGlucHV0PyAqLwogCQlp ZiAoZXJybm8gIT0gRU5PRU5UKQogCQkJcmV0dXJuIGVycm5vOwotCQlub2Rl ID0gY3JlYXRlX25vZGUoY29ubiwgaW4sIG5hbWUsIGluLT5idWZmZXIgKyBv ZmZzZXQsCisJCW5vZGUgPSBjcmVhdGVfbm9kZShjb25uLCBjdHgsIG5hbWUs IGluLT5idWZmZXIgKyBvZmZzZXQsCiAJCQkJICAgZGF0YWxlbik7CiAJCWlm ICghbm9kZSkKIAkJCXJldHVybiBlcnJubzsKQEAgLTE1NDAsMTggKzE1NDYs MTkgQEAgc3RhdGljIGludCBkb193cml0ZShzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCQkJcmV0dXJuIGVy cm5vOwogCX0KIAotCWZpcmVfd2F0Y2hlcyhjb25uLCBpbiwgbmFtZSwgbm9k ZSwgZmFsc2UsIE5VTEwpOworCWZpcmVfd2F0Y2hlcyhjb25uLCBjdHgsIG5h bWUsIG5vZGUsIGZhbHNlLCBOVUxMKTsKIAlzZW5kX2Fjayhjb25uLCBYU19X UklURSk7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkb19ta2Rp cihzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKQorc3RhdGljIGludCBkb19ta2Rpcihjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkgICAgc3RydWN0IGJ1ZmZl cmVkX2RhdGEgKmluKQogewogCXN0cnVjdCBub2RlICpub2RlOwogCWNoYXIg Km5hbWU7CiAKLQlub2RlID0gZ2V0X25vZGVfY2Fub25pY2FsaXplZChjb25u LCBpbiwgb25lYXJnKGluKSwgJm5hbWUsCisJbm9kZSA9IGdldF9ub2RlX2Nh bm9uaWNhbGl6ZWQoY29ubiwgY3R4LCBvbmVhcmcoaW4pLCAmbmFtZSwKIAkJ CQkgICAgICBYU19QRVJNX1dSSVRFKTsKIAogCS8qIElmIGl0IGFscmVhZHkg ZXhpc3RzLCBmaW5lLiAqLwpAQCAtMTU2MSwxMCArMTU2OCwxMCBAQCBzdGF0 aWMgaW50IGRvX21rZGlyKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJCQlyZXR1cm4gZXJybm87CiAJCWlm ICghbmFtZSkKIAkJCXJldHVybiBFTk9NRU07Ci0JCW5vZGUgPSBjcmVhdGVf bm9kZShjb25uLCBpbiwgbmFtZSwgTlVMTCwgMCk7CisJCW5vZGUgPSBjcmVh dGVfbm9kZShjb25uLCBjdHgsIG5hbWUsIE5VTEwsIDApOwogCQlpZiAoIW5v ZGUpCiAJCQlyZXR1cm4gZXJybm87Ci0JCWZpcmVfd2F0Y2hlcyhjb25uLCBp biwgbmFtZSwgbm9kZSwgZmFsc2UsIE5VTEwpOworCQlmaXJlX3dhdGNoZXMo Y29ubiwgY3R4LCBuYW1lLCBub2RlLCBmYWxzZSwgTlVMTCk7CiAJfQogCXNl bmRfYWNrKGNvbm4sIFhTX01LRElSKTsKIApAQCAtMTY2MiwyNCArMTY2OSwy NSBAQCBzdGF0aWMgaW50IF9ybShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwg Y29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3Qgbm9kZSAqbm9kZSwKIH0KIAogCi1z dGF0aWMgaW50IGRvX3JtKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitzdGF0aWMgaW50IGRvX3JtKGNvbnN0 IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7 CiAJaW50IHJldDsKIAljaGFyICpuYW1lOwogCWNoYXIgKnBhcmVudG5hbWU7 CiAKLQlub2RlID0gZ2V0X25vZGVfY2Fub25pY2FsaXplZChjb25uLCBpbiwg b25lYXJnKGluKSwgJm5hbWUsCisJbm9kZSA9IGdldF9ub2RlX2Nhbm9uaWNh bGl6ZWQoY29ubiwgY3R4LCBvbmVhcmcoaW4pLCAmbmFtZSwKIAkJCQkgICAg ICBYU19QRVJNX1dSSVRFKTsKIAlpZiAoIW5vZGUpIHsKIAkJLyogRGlkbid0 IGV4aXN0IGFscmVhZHk/ICBGaW5lLCBpZiBwYXJlbnQgZXhpc3RzLiAqLwog CQlpZiAoZXJybm8gPT0gRU5PRU5UKSB7CiAJCQlpZiAoIW5hbWUpCiAJCQkJ cmV0dXJuIEVOT01FTTsKLQkJCXBhcmVudG5hbWUgPSBnZXRfcGFyZW50KGlu LCBuYW1lKTsKKwkJCXBhcmVudG5hbWUgPSBnZXRfcGFyZW50KGN0eCwgbmFt ZSk7CiAJCQlpZiAoIXBhcmVudG5hbWUpCiAJCQkJcmV0dXJuIGVycm5vOwot CQkJbm9kZSA9IHJlYWRfbm9kZShjb25uLCBpbiwgcGFyZW50bmFtZSk7CisJ CQlub2RlID0gcmVhZF9ub2RlKGNvbm4sIGN0eCwgcGFyZW50bmFtZSk7CiAJ CQlpZiAobm9kZSkgewogCQkJCXNlbmRfYWNrKGNvbm4sIFhTX1JNKTsKIAkJ CQlyZXR1cm4gMDsKQEAgLTE2OTQsNyArMTcwMiw3IEBAIHN0YXRpYyBpbnQg ZG9fcm0oc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbikKIAlpZiAoc3RyZXEobmFtZSwgIi8iKSkKIAkJcmV0dXJu IEVJTlZBTDsKIAotCXJldCA9IF9ybShjb25uLCBpbiwgbm9kZSwgbmFtZSk7 CisJcmV0ID0gX3JtKGNvbm4sIGN0eCwgbm9kZSwgbmFtZSk7CiAJaWYgKHJl dCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMTcwNCwxMyArMTcxMiwxNSBAQCBz dGF0aWMgaW50IGRvX3JtKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB9CiAKIAotc3RhdGljIGludCBkb19n ZXRfcGVybXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZm ZXJlZF9kYXRhICppbikKK3N0YXRpYyBpbnQgZG9fZ2V0X3Blcm1zKGNvbnN0 IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCQlzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7 CiAJY2hhciAqc3RyaW5nczsKIAl1bnNpZ25lZCBpbnQgbGVuOwogCi0Jbm9k ZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4sIG9uZWFyZyhp biksIE5VTEwsIFhTX1BFUk1fUkVBRCk7CisJbm9kZSA9IGdldF9ub2RlX2Nh bm9uaWNhbGl6ZWQoY29ubiwgY3R4LCBvbmVhcmcoaW4pLCBOVUxMLAorCQkJ CSAgICAgIFhTX1BFUk1fUkVBRCk7CiAJaWYgKCFub2RlKQogCQlyZXR1cm4g ZXJybm87CiAKQEAgLTE3MjMsNyArMTczMyw4IEBAIHN0YXRpYyBpbnQgZG9f Z2V0X3Blcm1zKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg ZG9fc2V0X3Blcm1zKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qg YnVmZmVyZWRfZGF0YSAqaW4pCitzdGF0aWMgaW50IGRvX3NldF9wZXJtcyhj b25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkJ c3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogewogCXN0cnVjdCBub2RlX3Bl cm1zIHBlcm1zLCBvbGRfcGVybXM7CiAJY2hhciAqbmFtZSwgKnBlcm1zdHI7 CkBAIC0xNzQwLDcgKzE3NTEsNyBAQCBzdGF0aWMgaW50IGRvX3NldF9wZXJt cyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKQogCiAJcGVybXN0ciA9IGluLT5idWZmZXIgKyBzdHJsZW4oaW4t PmJ1ZmZlcikgKyAxOwogCi0JcGVybXMucCA9IHRhbGxvY19hcnJheShpbiwg c3RydWN0IHhzX3Blcm1pc3Npb25zLCBwZXJtcy5udW0pOworCXBlcm1zLnAg PSB0YWxsb2NfYXJyYXkoY3R4LCBzdHJ1Y3QgeHNfcGVybWlzc2lvbnMsIHBl cm1zLm51bSk7CiAJaWYgKCFwZXJtcy5wKQogCQlyZXR1cm4gRU5PTUVNOwog CWlmICgheHNfc3RyaW5nc190b19wZXJtcyhwZXJtcy5wLCBwZXJtcy5udW0s IHBlcm1zdHIpKQpAQCAtMTc1NSw3ICsxNzY2LDcgQEAgc3RhdGljIGludCBk b19zZXRfcGVybXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBi dWZmZXJlZF9kYXRhICppbikKIAl9CiAKIAkvKiBXZSBtdXN0IG93biBub2Rl IHRvIGRvIHRoaXMgKHRvb2xzIGNhbiBkbyB0aGlzIHRvbykuICovCi0Jbm9k ZSA9IGdldF9ub2RlX2Nhbm9uaWNhbGl6ZWQoY29ubiwgaW4sIGluLT5idWZm ZXIsICZuYW1lLAorCW5vZGUgPSBnZXRfbm9kZV9jYW5vbmljYWxpemVkKGNv bm4sIGN0eCwgaW4tPmJ1ZmZlciwgJm5hbWUsCiAJCQkJICAgICAgWFNfUEVS TV9XUklURSB8IFhTX1BFUk1fT1dORVIpOwogCWlmICghbm9kZSkKIAkJcmV0 dXJuIGVycm5vOwpAQCAtMTc5MCw3ICsxODAxLDcgQEAgc3RhdGljIGludCBk b19zZXRfcGVybXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBi dWZmZXJlZF9kYXRhICppbikKIAkJcmV0dXJuIGVycm5vOwogCX0KIAotCWZp cmVfd2F0Y2hlcyhjb25uLCBpbiwgbmFtZSwgbm9kZSwgZmFsc2UsICZvbGRf cGVybXMpOworCWZpcmVfd2F0Y2hlcyhjb25uLCBjdHgsIG5hbWUsIG5vZGUs IGZhbHNlLCAmb2xkX3Blcm1zKTsKIAlzZW5kX2Fjayhjb25uLCBYU19TRVRf UEVSTVMpOwogCiAJcmV0dXJuIDA7CkBAIC0xNzk4LDcgKzE4MDksOCBAQCBz dGF0aWMgaW50IGRvX3NldF9wZXJtcyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCiBzdGF0aWMgc3RydWN0 IHsKIAljb25zdCBjaGFyICpzdHI7Ci0JaW50ICgqZnVuYykoc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CisJ aW50ICgqZnVuYykoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlv biAqY29ubiwKKwkJICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CiAJ dW5zaWduZWQgaW50IGZsYWdzOwogI2RlZmluZSBYU19GTEFHX05PVElECQko MVUgPDwgMCkJLyogSWdub3JlIHRyYW5zYWN0aW9uIGlkLiAqLwogI2RlZmlu ZSBYU19GTEFHX1BSSVYJCSgxVSA8PCAxKQkvKiBQcml2aWxlZ2VkIGRvbWFp biBvbmx5LiAqLwpAQCAtMTg3NCw2ICsxODg2LDcgQEAgc3RhdGljIHZvaWQg cHJvY2Vzc19tZXNzYWdlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJc3RydWN0IHRyYW5zYWN0aW9uICp0 cmFuczsKIAllbnVtIHhzZF9zb2NrbXNnX3R5cGUgdHlwZSA9IGluLT5oZHIu bXNnLnR5cGU7CiAJaW50IHJldDsKKwl2b2lkICpjdHg7CiAKIAkvKiBBdCBs ZWFzdCBzZW5kX2Vycm9yKCkgYW5kIHNlbmRfcmVwbHkoKSBleHBlY3RzIGNv bm4tPmluID09IGluICovCiAJYXNzZXJ0KGNvbm4tPmluID09IGluKTsKQEAg LTE4OTgsMTAgKzE5MTEsMTcgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19tZXNz YWdlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pCiAJCXJldHVybjsKIAl9CiAKKwljdHggPSB0YWxsb2NfbmV3 KE5VTEwpOworCWlmICghY3R4KSB7CisJCXNlbmRfZXJyb3IoY29ubiwgRU5P TUVNKTsKKwkJcmV0dXJuOworCX0KKwogCWFzc2VydChjb25uLT50cmFuc2Fj dGlvbiA9PSBOVUxMKTsKIAljb25uLT50cmFuc2FjdGlvbiA9IHRyYW5zOwog Ci0JcmV0ID0gd2lyZV9mdW5jc1t0eXBlXS5mdW5jKGNvbm4sIGluKTsKKwly ZXQgPSB3aXJlX2Z1bmNzW3R5cGVdLmZ1bmMoY3R4LCBjb25uLCBpbik7CisJ dGFsbG9jX2ZyZWUoY3R4KTsKIAlpZiAocmV0KQogCQlzZW5kX2Vycm9yKGNv bm4sIHJldCk7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0 b3JlZF9kb21haW4uYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21h aW4uYwppbmRleCBlN2M2ODg2Y2NmNDcuLmZiNzMyZDBhMTRjMyAxMDA2NDQK LS0tIGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5jCisrKyBi L3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21haW4uYwpAQCAtMzMwLDcg KzMzMCw3IEBAIGJvb2wgZG9tYWluX2lzX3VucHJpdmlsZWdlZChzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubikKIAkgICAgICAgZG9taWRfaXNfdW5wcml2aWxl Z2VkKGNvbm4tPmRvbWFpbi0+ZG9taWQpOwogfQogCi1zdGF0aWMgY2hhciAq dGFsbG9jX2RvbWFpbl9wYXRoKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGlu dCBkb21pZCkKK3N0YXRpYyBjaGFyICp0YWxsb2NfZG9tYWluX3BhdGgoY29u c3Qgdm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IGRvbWlkKQogewogCXJl dHVybiB0YWxsb2NfYXNwcmludGYoY29udGV4dCwgIi9sb2NhbC9kb21haW4v JXUiLCBkb21pZCk7CiB9CkBAIC01MzQsNyArNTM0LDggQEAgc3RhdGljIHN0 cnVjdCBkb21haW4gKmludHJvZHVjZV9kb21haW4oY29uc3Qgdm9pZCAqY3R4 LAogfQogCiAvKiBkb21pZCwgZ2ZuLCBldnRjaG4sIHBhdGggKi8KLWludCBk b19pbnRyb2R1Y2Uoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBi dWZmZXJlZF9kYXRhICppbikKK2ludCBkb19pbnRyb2R1Y2UoY29uc3Qgdm9p ZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJIHN0cnVjdCBi dWZmZXJlZF9kYXRhICppbikKIHsKIAlzdHJ1Y3QgZG9tYWluICpkb21haW47 CiAJY2hhciAqdmVjWzNdOwpAQCAtNTUyLDcgKzU1Myw3IEBAIGludCBkb19p bnRyb2R1Y2Uoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZm ZXJlZF9kYXRhICppbikKIAlpZiAocG9ydCA8PSAwKQogCQlyZXR1cm4gRUlO VkFMOwogCi0JZG9tYWluID0gaW50cm9kdWNlX2RvbWFpbihpbiwgZG9taWQs IHBvcnQsIGZhbHNlKTsKKwlkb21haW4gPSBpbnRyb2R1Y2VfZG9tYWluKGN0 eCwgZG9taWQsIHBvcnQsIGZhbHNlKTsKIAlpZiAoIWRvbWFpbikKIAkJcmV0 dXJuIGVycm5vOwogCkBAIC01NzUsNyArNTc2LDggQEAgc3RhdGljIHN0cnVj dCBkb21haW4gKmZpbmRfY29ubmVjdGVkX2RvbWFpbih1bnNpZ25lZCBpbnQg ZG9taWQpCiAJcmV0dXJuIGRvbWFpbjsKIH0KIAotaW50IGRvX3NldF90YXJn ZXQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbikKK2ludCBkb19zZXRfdGFyZ2V0KGNvbnN0IHZvaWQgKmN0eCwg c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgc3RydWN0IGJ1ZmZlcmVk X2RhdGEgKmluKQogewogCWNoYXIgKnZlY1syXTsKIAl1bnNpZ25lZCBpbnQg ZG9taWQsIHRkb21pZDsKQEAgLTYxOSw3ICs2MjEsOCBAQCBzdGF0aWMgc3Ry dWN0IGRvbWFpbiAqb25lYXJnX2RvbWFpbihzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwKIH0KIAogLyogZG9taWQgKi8KLWludCBkb19yZWxlYXNlKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CitpbnQgZG9fcmVsZWFzZShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLAorCSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pCiB7CiAJc3RydWN0IGRvbWFpbiAqZG9tYWluOwogCkBAIC02MzQsNyAr NjM3LDggQEAgaW50IGRvX3JlbGVhc2Uoc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlyZXR1cm4gMDsKIH0K IAotaW50IGRvX3Jlc3VtZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX3Jlc3VtZShjb25zdCB2 b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCSAgICAgIHN0 cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsKIAlzdHJ1Y3QgZG9tYWluICpk b21haW47CiAKQEAgLTY0OSw3ICs2NTMsOCBAQCBpbnQgZG9fcmVzdW1lKHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pCiAJcmV0dXJuIDA7CiB9CiAKLWludCBkb19nZXRfZG9tYWluX3BhdGgo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKK2ludCBkb19nZXRfZG9tYWluX3BhdGgoY29uc3Qgdm9pZCAqY3R4 LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICAgICAgIHN0cnVjdCBi dWZmZXJlZF9kYXRhICppbikKIHsKIAljaGFyICpwYXRoOwogCWNvbnN0IGNo YXIgKmRvbWlkX3N0ciA9IG9uZWFyZyhpbik7CkBAIC02NTcsMTggKzY2Miwx NyBAQCBpbnQgZG9fZ2V0X2RvbWFpbl9wYXRoKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJaWYgKCFkb21p ZF9zdHIpCiAJCXJldHVybiBFSU5WQUw7CiAKLQlwYXRoID0gdGFsbG9jX2Rv bWFpbl9wYXRoKGNvbm4sIGF0b2koZG9taWRfc3RyKSk7CisJcGF0aCA9IHRh bGxvY19kb21haW5fcGF0aChjdHgsIGF0b2koZG9taWRfc3RyKSk7CiAJaWYg KCFwYXRoKQogCQlyZXR1cm4gZXJybm87CiAKIAlzZW5kX3JlcGx5KGNvbm4s IFhTX0dFVF9ET01BSU5fUEFUSCwgcGF0aCwgc3RybGVuKHBhdGgpICsgMSk7 CiAKLQl0YWxsb2NfZnJlZShwYXRoKTsKLQogCXJldHVybiAwOwogfQogCi1p bnQgZG9faXNfZG9tYWluX2ludHJvZHVjZWQoc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKK2ludCBkb19pc19k b21haW5faW50cm9kdWNlZChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLAorCQkJICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICpp bikKIHsKIAlpbnQgcmVzdWx0OwogCXVuc2lnbmVkIGludCBkb21pZDsKQEAg LTY4OSw3ICs2OTMsOCBAQCBpbnQgZG9faXNfZG9tYWluX2ludHJvZHVjZWQo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRh ICppbikKIH0KIAogLyogQWxsb3cgZ3Vlc3QgdG8gcmVzZXQgYWxsIHdhdGNo ZXMgKi8KLWludCBkb19yZXNldF93YXRjaGVzKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9fcmVz ZXRfd2F0Y2hlcyhjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLAorCQkgICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsK IAljb25uX2RlbGV0ZV9hbGxfd2F0Y2hlcyhjb25uKTsKIAljb25uX2RlbGV0 ZV9hbGxfdHJhbnNhY3Rpb25zKGNvbm4pOwpkaWZmIC0tZ2l0IGEvdG9vbHMv eGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5oIGIvdG9vbHMveGVuc3RvcmUv eGVuc3RvcmVkX2RvbWFpbi5oCmluZGV4IDkwNGZhYTkyM2FmYi4uYjllMTUy ODkwMTQ5IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRf ZG9tYWluLmgKKysrIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFp bi5oCkBAIC0yNCwyNSArMjQsMzIgQEAgdm9pZCBoYW5kbGVfZXZlbnQodm9p ZCk7CiB2b2lkIGNoZWNrX2RvbWFpbnModm9pZCk7CiAKIC8qIGRvbWlkLCBt Zm4sIGV2ZW50Y2huLCBwYXRoICovCi1pbnQgZG9faW50cm9kdWNlKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p OworaW50IGRvX2ludHJvZHVjZShjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAorCQkgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KTsKIAogLyogZG9taWQgKi8KLWludCBkb19pc19kb21haW5faW50cm9kdWNl ZChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2Rh dGEgKmluKTsKK2ludCBkb19pc19kb21haW5faW50cm9kdWNlZChjb25zdCB2 b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkJICAgIHN0 cnVjdCBidWZmZXJlZF9kYXRhICppbik7CiAKIC8qIGRvbWlkICovCi1pbnQg ZG9fcmVsZWFzZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKTsKK2ludCBkb19yZWxlYXNlKGNvbnN0IHZvaWQg KmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJICAgICAgIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbik7CiAKIC8qIGRvbWlkICovCi1pbnQgZG9f cmVzdW1lKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pOworaW50IGRvX3Jlc3VtZShjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCSAgICAgIHN0cnVjdCBidWZm ZXJlZF9kYXRhICppbik7CiAKIC8qIGRvbWlkLCB0YXJnZXQgKi8KLWludCBk b19zZXRfdGFyZ2V0KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qg YnVmZmVyZWRfZGF0YSAqaW4pOworaW50IGRvX3NldF90YXJnZXQoY29uc3Qg dm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJICBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwogCiAvKiBkb21pZCAqLwotaW50IGRv X2dldF9kb21haW5fcGF0aChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKK2ludCBkb19nZXRfZG9tYWluX3Bh dGgoY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwK KwkJICAgICAgIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbik7CiAKIC8qIEFs bG93IGd1ZXN0IHRvIHJlc2V0IGFsbCB3YXRjaGVzICovCi1pbnQgZG9fcmVz ZXRfd2F0Y2hlcyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1 ZmZlcmVkX2RhdGEgKmluKTsKK2ludCBkb19yZXNldF93YXRjaGVzKGNvbnN0 IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAgICAg c3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKTsKIAogdm9pZCBkb21haW5faW5p dChpbnQgZXZ0ZmQpOwogdm9pZCBkb20wX2luaXQodm9pZCk7CmRpZmYgLS1n aXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYyBi L3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF90cmFuc2FjdGlvbi5jCmluZGV4 IDI4Nzc0ODEzZGU4My4uM2UzZWI0NzMyNmNjIDEwMDY0NAotLS0gYS90b29s cy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYworKysgYi90b29s cy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYwpAQCAtNDgxLDcg KzQ4MSw4IEBAIHN0cnVjdCB0cmFuc2FjdGlvbiAqdHJhbnNhY3Rpb25fbG9v a3VwKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCB1aW50MzJfdCBpZCkKIAly ZXR1cm4gRVJSX1BUUigtRU5PRU5UKTsKIH0KIAotaW50IGRvX3RyYW5zYWN0 aW9uX3N0YXJ0KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pCitpbnQgZG9fdHJhbnNhY3Rpb25fc3RhcnQoY29u c3Qgdm9pZCAqY3R4LCBzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkJCSBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IHRyYW5zYWN0 aW9uICp0cmFucywgKmV4aXN0czsKIAljaGFyIGlkX3N0clsyMF07CkBAIC00 OTQsOCArNDk1LDggQEAgaW50IGRvX3RyYW5zYWN0aW9uX3N0YXJ0KHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4p CiAJICAgIGNvbm4tPnRyYW5zYWN0aW9uX3N0YXJ0ZWQgPiBxdW90YV9tYXhf dHJhbnNhY3Rpb24pCiAJCXJldHVybiBFTk9TUEM7CiAKLQkvKiBBdHRhY2gg dHJhbnNhY3Rpb24gdG8gaW5wdXQgZm9yIGF1dG9mcmVlIHVudGlsIGl0J3Mg Y29tcGxldGUgKi8KLQl0cmFucyA9IHRhbGxvY196ZXJvKGluLCBzdHJ1Y3Qg dHJhbnNhY3Rpb24pOworCS8qIEF0dGFjaCB0cmFuc2FjdGlvbiB0byBjdHgg Zm9yIGF1dG9mcmVlIHVudGlsIGl0J3MgY29tcGxldGUgKi8KKwl0cmFucyA9 IHRhbGxvY196ZXJvKGN0eCwgc3RydWN0IHRyYW5zYWN0aW9uKTsKIAlpZiAo IXRyYW5zKQogCQlyZXR1cm4gRU5PTUVNOwogCkBAIC01NDQsNyArNTQ1LDgg QEAgc3RhdGljIGludCB0cmFuc2FjdGlvbl9maXhfZG9tYWlucyhzdHJ1Y3Qg dHJhbnNhY3Rpb24gKnRyYW5zLCBib29sIHVwZGF0ZSkKIAlyZXR1cm4gMDsK IH0KIAotaW50IGRvX3RyYW5zYWN0aW9uX2VuZChzdHJ1Y3QgY29ubmVjdGlv biAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQoraW50IGRvX3Ry YW5zYWN0aW9uX2VuZChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLAorCQkgICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KQogewogCWNvbnN0IGNoYXIgKmFyZyA9IG9uZWFyZyhpbik7CiAJc3RydWN0 IHRyYW5zYWN0aW9uICp0cmFuczsKQEAgLTU2Miw4ICs1NjQsOCBAQCBpbnQg ZG9fdHJhbnNhY3Rpb25fZW5kKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBz dHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJaWYgKCFjb25uLT50cmFuc2Fj dGlvbl9zdGFydGVkKQogCQljb25uLT50YV9zdGFydF90aW1lID0gMDsKIAot CS8qIEF0dGFjaCB0cmFuc2FjdGlvbiB0byBpbiBmb3IgYXV0by1jbGVhbnVw ICovCi0JdGFsbG9jX3N0ZWFsKGluLCB0cmFucyk7CisJLyogQXR0YWNoIHRy YW5zYWN0aW9uIHRvIGN0eCBmb3IgYXV0by1jbGVhbnVwICovCisJdGFsbG9j X3N0ZWFsKGN0eCwgdHJhbnMpOwogCiAJaWYgKHN0cmVxKGFyZywgIlQiKSkg ewogCQlpZiAodHJhbnMtPmZhaWwpCmRpZmYgLS1naXQgYS90b29scy94ZW5z dG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uaCBiL3Rvb2xzL3hlbnN0b3Jl L3hlbnN0b3JlZF90cmFuc2FjdGlvbi5oCmluZGV4IGUzY2JkNmIyMzA5NS4u MzlkN2Y4MWM1MTI3IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5z dG9yZWRfdHJhbnNhY3Rpb24uaAorKysgYi90b29scy94ZW5zdG9yZS94ZW5z dG9yZWRfdHJhbnNhY3Rpb24uaApAQCAtMjksOCArMjksMTAgQEAgc3RydWN0 IHRyYW5zYWN0aW9uOwogCiBleHRlcm4gdWludDY0X3QgZ2VuZXJhdGlvbjsK IAotaW50IGRvX3RyYW5zYWN0aW9uX3N0YXJ0KHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqbm9kZSk7Ci1pbnQgZG9f dHJhbnNhY3Rpb25fZW5kKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOworaW50IGRvX3RyYW5zYWN0aW9uX3N0 YXJ0KGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s CisJCQkgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKm5vZGUpOworaW50IGRvX3Ry YW5zYWN0aW9uX2VuZChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLAorCQkgICAgICAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KTsKIAogc3RydWN0IHRyYW5zYWN0aW9uICp0cmFuc2FjdGlvbl9sb29rdXAo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHVpbnQzMl90IGlkKTsKIApkaWZm IC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3dhdGNoLmMgYi90 b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfd2F0Y2guYwppbmRleCA4NTM2MmJj Y2UzMTQuLjMxNmMwOGI3Zjc1NCAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3Rv cmUveGVuc3RvcmVkX3dhdGNoLmMKKysrIGIvdG9vbHMveGVuc3RvcmUveGVu c3RvcmVkX3dhdGNoLmMKQEAgLTI0Myw3ICsyNDMsNyBAQCBzdGF0aWMgc3Ry dWN0IHdhdGNoICphZGRfd2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s IGNoYXIgKnBhdGgsIGNoYXIgKnRva2VuLAogCXJldHVybiBOVUxMOwogfQog Ci1pbnQgZG9fd2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbikKK2ludCBkb193YXRjaChjb25zdCB2b2lk ICpjdHgsIHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVy ZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IHdhdGNoICp3YXRjaDsKIAljaGFy ICp2ZWNbMl07CkBAIC0yNTIsNyArMjUyLDcgQEAgaW50IGRvX3dhdGNoKHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pCiAJaWYgKGdldF9zdHJpbmdzKGluLCB2ZWMsIEFSUkFZX1NJWkUodmVj KSkgIT0gQVJSQVlfU0laRSh2ZWMpKQogCQlyZXR1cm4gRUlOVkFMOwogCi0J ZXJybm8gPSBjaGVja193YXRjaF9wYXRoKGNvbm4sIGluLCAmKHZlY1swXSks ICZyZWxhdGl2ZSk7CisJZXJybm8gPSBjaGVja193YXRjaF9wYXRoKGNvbm4s IGN0eCwgJih2ZWNbMF0pLCAmcmVsYXRpdmUpOwogCWlmIChlcnJubykKIAkJ cmV0dXJuIGVycm5vOwogCkBAIC0yODMsNyArMjgzLDggQEAgaW50IGRvX3dh dGNoKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pCiAJcmV0dXJuIDA7CiB9CiAKLWludCBkb191bndhdGNoKHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pCitpbnQgZG9fdW53YXRjaChjb25zdCB2b2lkICpjdHgsIHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAorCSAgICAgICBzdHJ1Y3QgYnVmZmVyZWRfZGF0 YSAqaW4pCiB7CiAJc3RydWN0IHdhdGNoICp3YXRjaDsKIAljaGFyICpub2Rl LCAqdmVjWzJdOwpAQCAtMjkxLDcgKzI5Miw3IEBAIGludCBkb191bndhdGNo KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0 YSAqaW4pCiAJaWYgKGdldF9zdHJpbmdzKGluLCB2ZWMsIEFSUkFZX1NJWkUo dmVjKSkgIT0gQVJSQVlfU0laRSh2ZWMpKQogCQlyZXR1cm4gRUlOVkFMOwog Ci0Jbm9kZSA9IGNhbm9uaWNhbGl6ZShjb25uLCBpbiwgdmVjWzBdKTsKKwlu b2RlID0gY2Fub25pY2FsaXplKGNvbm4sIGN0eCwgdmVjWzBdKTsKIAlpZiAo IW5vZGUpCiAJCXJldHVybiBFTk9NRU07CiAJbGlzdF9mb3JfZWFjaF9lbnRy eSh3YXRjaCwgJmNvbm4tPndhdGNoZXMsIGxpc3QpIHsKZGlmZiAtLWdpdCBh L3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRjaC5oIGIvdG9vbHMveGVu c3RvcmUveGVuc3RvcmVkX3dhdGNoLmgKaW5kZXggMGU2OTNmMDgzOWNkLi4w OTE4OTBlZGNhOTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0 b3JlZF93YXRjaC5oCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93 YXRjaC5oCkBAIC0yMSw4ICsyMSwxMCBAQAogCiAjaW5jbHVkZSAieGVuc3Rv cmVkX2NvcmUuaCIKIAotaW50IGRvX3dhdGNoKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwotaW50IGRvX3Vu d2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbik7CitpbnQgZG9fd2F0Y2goY29uc3Qgdm9pZCAqY3R4LCBz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKKwkgICAgIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbik7CitpbnQgZG9fdW53YXRjaChjb25zdCB2b2lkICpjdHgs IHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCSAgICAgICBzdHJ1Y3QgYnVm ZmVyZWRfZGF0YSAqaW4pOwogCiAvKiBGaXJlIGFsbCB3YXRjaGVzOiAhZXhh Y3QgbWVhbnMgYWxsIHRoZSBjaGlsZHJlbiBhcmUgYWZmZWN0ZWQgKGllLiBy bSkuICovCiB2b2lkIGZpcmVfd2F0Y2hlcyhzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwgY29uc3Qgdm9pZCAqdG1wLCBjb25zdCBjaGFyICpuYW1lLAo= --=separator--