From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@citrix.com header.s=securemail header.b=FJITqDQy; spf=softfail (domain: citrix.com, ip: , mailfrom: anthony.perard@citrix.com) Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com []) by groups.io with SMTP; Fri, 13 Sep 2019 07:51:09 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1568386268; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7vAMP6WvPUtOvRnFJ3uSAyOGdR7QEFy0Yg9wrogbifM=; b=FJITqDQyRaAieDPKXPljBvEHq4EhRZvWm5Luk8rGBQPj0vXHZWjfPBY1 ERqkt8iSdt0E8KBKCXN3H9mJO/e9mjGEjX+MnoDXimRuPzLhGSH9JRWO5 rkD39FmwpWmxXnOQAbGK8hh4TKqAaODrUYfk/SpKKTeQgj9uc7mHM9vy5 I=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=anthony.perard@citrix.com; spf=Pass smtp.mailfrom=anthony.perard@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa1.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: SQpEESrH0HvRSJaZCPM1lFvVPSi/dk4bKcioDSpKcogGwUMge2QvhatUfzWBoEXnD35c0eAM9k l9N4FjJ5+2vRDZ8w4+TJ+71QZMEezuNb39hKkKa/76/QW9NJznKuFn5GsN1k9azylgyNgG/sKj YpBVcCzWdZUBOvmdVTvNiN/p/CW0wMos/4R9N6n/+X0NBTHwpUUWbFu9WeZqCccyNWgNv9Tzve 0GVpQOhmu5sB9l7zq92Pl1GnRVd4mp/UWOQdjKslx3E/sg/ke5sJHbG5pj2QnOhntYyORijqdm LwU= X-SBRS: 2.7 X-MesageID: 5595147 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,501,1559534400"; d="scan'208";a="5595147" From: "Anthony PERARD" To: CC: Ard Biesheuvel , Julien Grall , Jordan Justen , , Anthony Perard , Laszlo Ersek Subject: [PATCH 07/11] OvmfPkg/XenBusDxe: Use on stack buffer in internal functions Date: Fri, 13 Sep 2019 15:50:56 +0100 Message-ID: <20190913145100.303433-8-anthony.perard@citrix.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190913145100.303433-1-anthony.perard@citrix.com> References: <20190913145100.303433-1-anthony.perard@citrix.com> MIME-Version: 1.0 Return-Path: anthony.perard@citrix.com Content-Transfer-Encoding: base64 Content-Type: text/plain V2Ugd2lsbCB1c2UgYSBidWZmZXIgb24gdGhlIHN0YWNrIGluc3RlYWQgb2YgYWxsb2NhdGluZyBt ZW1vcnkgZm9yCmludGVybmFsIGZ1bmN0aW9ucyB0aGF0IGFyZSBleHBlY3RpbmcgYSByZXBseSBm cm9tIHhlbnN0b3JlLgoKVGhlIGV4dGVybmFsIGludGVyZmFjZSBYRU5CVVNfUFJPVE9DT0wgaXNu J3QgY2hhbmdlZCB5ZXQsIHNvCmFsbG9jYXRpb24gYXJlIG1hZGUgZm9yIFhzUmVhZCBhbmQgWHNC YWNrZW5kUmVhZC4KClJlZjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVn LmNnaT9pZD0yMTkwClNpZ25lZC1vZmYtYnk6IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFy ZEBjaXRyaXguY29tPgotLS0KIE92bWZQa2cvWGVuQnVzRHhlL1hlbkJ1cy5jICAgfCAgNDAgKysr KysrLS0tLS0tCiBPdm1mUGtnL1hlbkJ1c0R4ZS9YZW5TdG9yZS5jIHwgMTE1ICsrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBPdm1mUGtnL1hlbkJ1c0R4ZS9YZW5TdG9yZS5oIHwg IDE3ICsrKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCA3NyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9Pdm1mUGtnL1hlbkJ1c0R4ZS9YZW5CdXMuYyBiL092bWZQa2cv WGVuQnVzRHhlL1hlbkJ1cy5jCmluZGV4IGJiOGRkYmM0ZDQuLjc4ODM1ZWM3YjMgMTAwNjQ0Ci0t LSBhL092bWZQa2cvWGVuQnVzRHhlL1hlbkJ1cy5jCisrKyBiL092bWZQa2cvWGVuQnVzRHhlL1hl bkJ1cy5jCkBAIC04OSwxOSArODksMTggQEAgWGVuQnVzUmVhZERyaXZlclN0YXRlICgKICAgSU4g Q09OU1QgQ0hBUjggKlBhdGgNCiAgICkNCiB7DQotICBYZW5idXNTdGF0ZSBTdGF0ZTsNCi0gIENI QVI4ICpQdHIgPSBOVUxMOw0KKyAgWGVuYnVzU3RhdGUgICAgIFN0YXRlOw0KKyAgQ0hBUjggICAg ICAgICAgIEJ1ZmZlcls0XTsNCisgIFVJTlROICAgICAgICAgICBCdWZmZXJTaXplOw0KICAgWEVO U1RPUkVfU1RBVFVTIFN0YXR1czsNCiANCi0gIFN0YXR1cyA9IFhlblN0b3JlUmVhZCAoWFNUX05J TCwgUGF0aCwgInN0YXRlIiwgTlVMTCwgKFZPSUQgKiopJlB0cik7DQorICBCdWZmZXJTaXplID0g c2l6ZW9mIChCdWZmZXIpIC0gMTsNCisgIFN0YXR1cyA9IFhlblN0b3JlUmVhZCAoWFNUX05JTCwg UGF0aCwgInN0YXRlIiwgJkJ1ZmZlclNpemUsIEJ1ZmZlcik7DQogICBpZiAoU3RhdHVzICE9IFhF TlNUT1JFX1NUQVRVU19TVUNDRVNTKSB7DQogICAgIFN0YXRlID0gWGVuYnVzU3RhdGVDbG9zZWQ7 DQogICB9IGVsc2Ugew0KLSAgICBTdGF0ZSA9IEFzY2lpU3RyRGVjaW1hbFRvVWludG4gKFB0cik7 DQotICB9DQotDQotICBpZiAoUHRyICE9IE5VTEwpIHsNCi0gICAgRnJlZVBvb2wgKFB0cik7DQor ICAgIEJ1ZmZlcltCdWZmZXJTaXplXSA9ICdcMCc7DQorICAgIFN0YXRlID0gQXNjaWlTdHJEZWNp bWFsVG9VaW50biAoQnVmZmVyKTsNCiAgIH0NCiANCiAgIHJldHVybiBTdGF0ZTsNCkBAIC0xMjks OCArMTI4LDExIEBAIFhlbkJ1c0FkZERldmljZSAoCiANCiAgIGlmIChYZW5TdG9yZVBhdGhFeGlz dHMgKFhTVF9OSUwsIERldmljZVBhdGgsICIiKSkgew0KICAgICBYRU5CVVNfUFJJVkFURV9EQVRB ICpDaGlsZDsNCi0gICAgZW51bSB4ZW5idXNfc3RhdGUgU3RhdGU7DQotICAgIENIQVI4ICpCYWNr ZW5kUGF0aDsNCisgICAgZW51bSB4ZW5idXNfc3RhdGUgICBTdGF0ZTsNCisgICAgQ0hBUjggICAg ICAgICAgICAgICBCYWNrZW5kUGF0aFtYRU5TVE9SRV9BQlNfUEFUSF9NQVggKyAxXTsNCisgICAg VUlOVE4gICAgICAgICAgICAgICBCYWNrZW5kUGF0aFNpemU7DQorDQorICAgIEJhY2tlbmRQYXRo U2l6ZSA9IHNpemVvZiAoQmFja2VuZFBhdGgpOw0KIA0KICAgICBDaGlsZCA9IFhlbkJ1c0Rldmlj ZUluaXRpYWxpemVkIChEZXYsIERldmljZVBhdGgpOw0KICAgICBpZiAoQ2hpbGQgIT0gTlVMTCkg ew0KQEAgLTE1NSwxNyArMTU3LDE4IEBAIFhlbkJ1c0FkZERldmljZSAoCiAgICAgfQ0KIA0KICAg ICBTdGF0dXNYZW5TdG9yZSA9IFhlblN0b3JlUmVhZCAoWFNUX05JTCwgRGV2aWNlUGF0aCwgImJh Y2tlbmQiLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgKFZPSUQg KiopICZCYWNrZW5kUGF0aCk7DQorICAgICAgJkJhY2tlbmRQYXRoU2l6ZSwgQmFja2VuZFBhdGgp Ow0KICAgICBpZiAoU3RhdHVzWGVuU3RvcmUgIT0gWEVOU1RPUkVfU1RBVFVTX1NVQ0NFU1MpIHsN CiAgICAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAieGVuYnVzOiAlYSBubyBiYWNrZW5kIHBhdGgu XG4iLCBEZXZpY2VQYXRoKSk7DQogICAgICAgU3RhdHVzID0gRUZJX05PVF9GT1VORDsNCiAgICAg ICBnb3RvIG91dDsNCiAgICAgfQ0KKyAgICBCYWNrZW5kUGF0aFtCYWNrZW5kUGF0aFNpemVdID0g J1wwJzsNCiANCiAgICAgUHJpdmF0ZSA9IEFsbG9jYXRlQ29weVBvb2wgKHNpemVvZiAoKlByaXZh dGUpLCAmZ1hlbkJ1c1ByaXZhdGVEYXRhKTsNCiAgICAgUHJpdmF0ZS0+WGVuQnVzSW8uVHlwZSA9 IEFzY2lpU3RyRHVwIChUeXBlKTsNCiAgICAgUHJpdmF0ZS0+WGVuQnVzSW8uTm9kZSA9IEFzY2lp U3RyRHVwIChEZXZpY2VQYXRoKTsNCi0gICAgUHJpdmF0ZS0+WGVuQnVzSW8uQmFja2VuZCA9IEJh Y2tlbmRQYXRoOw0KKyAgICBQcml2YXRlLT5YZW5CdXNJby5CYWNrZW5kID0gQXNjaWlTdHJEdXAg KEJhY2tlbmRQYXRoKTsNCiAgICAgUHJpdmF0ZS0+WGVuQnVzSW8uRGV2aWNlSWQgPSAoVUlOVDE2 KUFzY2lpU3RyRGVjaW1hbFRvVWludG4gKElkKTsNCiAgICAgUHJpdmF0ZS0+RGV2ID0gRGV2Ow0K IA0KQEAgLTMwOSwxNyArMzEyLDIwIEBAIFhlbkJ1c1NldFN0YXRlICgKICAgKQ0KIHsNCiAgIGVu dW0geGVuYnVzX3N0YXRlIEN1cnJlbnRTdGF0ZTsNCi0gIFhFTlNUT1JFX1NUQVRVUyBTdGF0dXM7 DQotICBDSEFSOCAqVGVtcDsNCisgIFhFTlNUT1JFX1NUQVRVUyAgIFN0YXR1czsNCisgIENIQVI4 ICAgICAgICAgICAgIEJ1ZmZlcls0XTsNCisgIFVJTlROICAgICAgICAgICAgIEJ1ZmZlclNpemU7 DQorDQorICBCdWZmZXJTaXplID0gc2l6ZW9mIChCdWZmZXIpIC0gMTsNCiANCiAgIERFQlVHICgo RUZJX0RfSU5GTywgIlhlbkJ1czogU2V0IHN0YXRlIHRvICVkXG4iLCBOZXdTdGF0ZSkpOw0KIA0K LSAgU3RhdHVzID0gWGVuU3RvcmVSZWFkIChUcmFuc2FjdGlvbiwgVGhpcy0+Tm9kZSwgInN0YXRl IiwgTlVMTCwgKFZPSUQgKiopJlRlbXApOw0KKyAgU3RhdHVzID0gWGVuU3RvcmVSZWFkIChUcmFu c2FjdGlvbiwgVGhpcy0+Tm9kZSwgInN0YXRlIiwgJkJ1ZmZlclNpemUsIEJ1ZmZlcik7DQogICBp ZiAoU3RhdHVzICE9IFhFTlNUT1JFX1NUQVRVU19TVUNDRVNTKSB7DQogICAgIGdvdG8gT3V0Ow0K ICAgfQ0KLSAgQ3VycmVudFN0YXRlID0gQXNjaWlTdHJEZWNpbWFsVG9VaW50biAoVGVtcCk7DQot ICBGcmVlUG9vbCAoVGVtcCk7DQorICBCdWZmZXJbQnVmZmVyU2l6ZV0gPSAnXDAnOw0KKyAgQ3Vy cmVudFN0YXRlID0gQXNjaWlTdHJEZWNpbWFsVG9VaW50biAoQnVmZmVyKTsNCiAgIGlmIChDdXJy ZW50U3RhdGUgPT0gTmV3U3RhdGUpIHsNCiAgICAgZ290byBPdXQ7DQogICB9DQpkaWZmIC0tZ2l0 IGEvT3ZtZlBrZy9YZW5CdXNEeGUvWGVuU3RvcmUuYyBiL092bWZQa2cvWGVuQnVzRHhlL1hlblN0 b3JlLmMKaW5kZXggMDA0ZDNiNjAyMi4uYjk1ODhiYjhjNiAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9Y ZW5CdXNEeGUvWGVuU3RvcmUuYworKysgYi9Pdm1mUGtnL1hlbkJ1c0R4ZS9YZW5TdG9yZS5jCkBA IC03NTYsOCArNzU2LDkgQEAgWGVuU3RvcmVHZXRFcnJvciAoCiAgIEBwYXJhbSBSZXF1ZXN0VHlw ZSAgICBUaGUgdHlwZSBvZiBtZXNzYWdlIHRvIHNlbmQuDQogICBAcGFyYW0gV3JpdGVSZXF1ZXN0 ICAgUG9pbnRlcnMgdG8gdGhlIGJvZHkgc2VjdGlvbnMgb2YgdGhlIHJlcXVlc3QuDQogICBAcGFy YW0gTnVtUmVxdWVzdHMgICAgVGhlIG51bWJlciBvZiBib2R5IHNlY3Rpb25zIGluIHRoZSByZXF1 ZXN0Lg0KLSAgQHBhcmFtIExlblB0ciAgICAgICAgIFRoZSByZXR1cm5lZCBsZW5ndGggb2YgdGhl IHJlcGx5Lg0KLSAgQHBhcmFtIFJlc3VsdFB0ciAgICAgIFRoZSByZXR1cm5lZCBib2R5IG9mIHRo ZSByZXBseS4NCisgIEBwYXJhbSBCdWZmZXJTaXplICAgICBJTjogc2l6ZSBvZiB0aGUgYnVmZmVy DQorICAgICAgICAgICAgICAgICAgICAgICAgT1VUOiBUaGUgcmV0dXJuZWQgbGVuZ3RoIG9mIHRo ZSByZXBseS4NCisgIEBwYXJhbSBCdWZmZXIgICAgICAgICBUaGUgcmV0dXJuZWQgYm9keSBvZiB0 aGUgcmVwbHkuDQogDQogICBAcmV0dXJuICBYRU5TVE9SRV9TVEFUVVNfU1VDQ0VTUyBvbiBzdWNj ZXNzLiAgT3RoZXJ3aXNlIGFuIGVycm5vIGluZGljYXRpbmcNCiAgICAgICAgICAgIHRoZSBjYXVz ZSBvZiBmYWlsdXJlLg0KQEAgLTc2OSwxNSArNzcwLDEzIEBAIFhlblN0b3JlVGFsa3YgKAogICBJ TiAgZW51bSB4c2Rfc29ja21zZ190eXBlICAgUmVxdWVzdFR5cGUsDQogICBJTiAgQ09OU1QgV1JJ VEVfUkVRVUVTVCAgICAgKldyaXRlUmVxdWVzdCwNCiAgIElOICBVSU5UMzIgICAgICAgICAgICAg ICAgICBOdW1SZXF1ZXN0cywNCi0gIE9VVCBVSU5UMzIgICAgICAgICAgICAgICAgICAqTGVuUHRy IE9QVElPTkFMLA0KLSAgT1VUIFZPSUQgICAgICAgICAgICAgICAgICAgICoqUmVzdWx0UHRyIE9Q VElPTkFMDQorICBJTiBPVVQgVUlOVE4gICAgICAgICAgICAgICAgKkJ1ZmZlclNpemUgT1BUSU9O QUwsDQorICBPVVQgVk9JRCAgICAgICAgICAgICAgICAgICAgKkJ1ZmZlciBPUFRJT05BTA0KICAg KQ0KIHsNCiAgIHN0cnVjdCB4c2Rfc29ja21zZyBNZXNzYWdlOw0KICAgVUlOVE4gICAgICAgICAg ICAgIEluZGV4Ow0KICAgWEVOU1RPUkVfU1RBVFVTICAgIFN0YXR1czsNCi0gIFZPSUQgICAgICAg ICAgICAgICAqQnVmZmVyOw0KLSAgVUlOVE4gICAgICAgICAgICAgIEJ1ZmZlclNpemU7DQogDQog ICBpZiAoVHJhbnNhY3Rpb24gPT0gWFNUX05JTCkgew0KICAgICBNZXNzYWdlLnR4X2lkID0gMDsN CkBAIC04MDUsMzIgKzgwNCwxNSBAQCBYZW5TdG9yZVRhbGt2ICgKICAgICB9DQogICB9DQogDQot ICBpZiAoUmVzdWx0UHRyKSB7DQotICAgIEJ1ZmZlciA9IEFsbG9jYXRlUG9vbCAoWEVOU1RPUkVf UEFZTE9BRF9NQVggKyAxKTsNCi0gICAgQnVmZmVyU2l6ZSA9IFhFTlNUT1JFX1BBWUxPQURfTUFY Ow0KLSAgfSBlbHNlIHsNCi0gICAgQnVmZmVyID0gTlVMTDsNCi0gICAgQnVmZmVyU2l6ZSA9IDA7 DQotICB9DQotDQogICAvLw0KICAgLy8gV2FpdCBmb3IgYSByZXBseSB0byBvdXIgcmVxdWVzdA0K ICAgLy8NCiAgIFN0YXR1cyA9IFhlblN0b3JlUHJvY2Vzc01lc3NhZ2UgKE1lc3NhZ2UucmVxX2lk LCBNZXNzYWdlLnR4X2lkLA0KLSAgICAmQnVmZmVyU2l6ZSwgQnVmZmVyKTsNCisgICAgQnVmZmVy U2l6ZSwgQnVmZmVyKTsNCiANCiAgIGlmIChTdGF0dXMgIT0gWEVOU1RPUkVfU1RBVFVTX1NVQ0NF U1MpIHsNCiAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlhlblN0b3JlLCBlcnJvciB3aGlsZSBy ZWFkaW5nIHRoZSByaW5nICglZCkuXG4iLA0KICAgICAgICAgU3RhdHVzKSk7DQotICAgIEZyZWVQ b29sIChCdWZmZXIpOw0KLSAgICByZXR1cm4gU3RhdHVzOw0KLSAgfQ0KLQ0KLSAgaWYgKFJlc3Vs dFB0cikgew0KLSAgICAqUmVzdWx0UHRyID0gQnVmZmVyOw0KLSAgICBpZiAoTGVuUHRyKSB7DQot ICAgICAgKkxlblB0ciA9IEJ1ZmZlclNpemU7DQotICAgIH0NCiAgIH0NCiANCiBFcnJvcjoNCkBA IC04NDgsOCArODMwLDkgQEAgWGVuU3RvcmVUYWxrdiAoCiAgIEBwYXJhbSBSZXF1ZXN0VHlwZSAg ICBUaGUgdHlwZSBvZiBtZXNzYWdlIHRvIHNlbmQuDQogICBAcGFyYW0gQm9keSAgICAgICAgICAg VGhlIGJvZHkgb2YgdGhlIHJlcXVlc3QuDQogICBAcGFyYW0gU3ViUGF0aCAgICAgICAgSWYgIU5V TEwgYW5kIG5vdCAiIiwgIi8kU3ViUGF0aCIgaXMgYXBwZW5kIHRvIEJvZHkuDQotICBAcGFyYW0g TGVuUHRyICAgICAgICAgVGhlIHJldHVybmVkIGxlbmd0aCBvZiB0aGUgcmVwbHkuDQotICBAcGFy YW0gUmVzdWx0ICAgICAgICAgVGhlIHJldHVybmVkIGJvZHkgb2YgdGhlIHJlcGx5Lg0KKyAgQHBh cmFtIEJ1ZmZlclNpemUgICAgIElOOiBzaXplZiBvZiB0aGUgYnVmZmVyDQorICAgICAgICAgICAg ICAgICAgICAgICAgT1VUOiBUaGUgcmV0dXJuZWQgbGVuZ3RoIG9mIHRoZSByZXBseS4NCisgIEBw YXJhbSBCdWZmZXIgICAgICAgICBUaGUgcmV0dXJuZWQgYm9keSBvZiB0aGUgcmVwbHkuDQogDQog ICBAcmV0dXJuICAwIG9uIHN1Y2Nlc3MuICBPdGhlcndpc2UgYW4gZXJybm8gaW5kaWNhdGluZw0K ICAgICAgICAgICAgdGhlIGNhdXNlIG9mIGZhaWx1cmUuDQpAQCAtODYxLDggKzg0NCw4IEBAIFhl blN0b3JlU2luZ2xlICgKICAgSU4gIGVudW0geHNkX3NvY2ttc2dfdHlwZSAgIFJlcXVlc3RUeXBl LA0KICAgSU4gIENPTlNUIENIQVI4ICAgICAgICAgICAgICpCb2R5LA0KICAgSU4gIENPTlNUIENI QVI4ICAgICAgICAgICAgICpTdWJQYXRoIE9QVElPTkFMLA0KLSAgT1VUIFVJTlQzMiAgICAgICAg ICAgICAgICAgICpMZW5QdHIgT1BUSU9OQUwsDQotICBPVVQgVk9JRCAgICAgICAgICAgICAgICAg ICAgKipSZXN1bHQgT1BUSU9OQUwNCisgIElOIE9VVCBVSU5UTiAgICAgICAgICAgICAgICAqQnVm ZmVyU2l6ZSBPUFRJT05BTCwNCisgIE9VVCBWT0lEICAgICAgICAgICAgICAgICAgICAqQnVmZmVy IE9QVElPTkFMDQogICApDQogew0KICAgV1JJVEVfUkVRVUVTVCAgIFdyaXRlUmVxdWVzdFszXTsN CkBAIC04NzAsNyArODUzLDcgQEAgWGVuU3RvcmVTaW5nbGUgKAogICBYZW5TdG9yZVByZXBhcmVX cml0ZVJlcXVlc3QgKFdyaXRlUmVxdWVzdCwgQm9keSwgU3ViUGF0aCk7DQogDQogICByZXR1cm4g WGVuU3RvcmVUYWxrdiAoVHJhbnNhY3Rpb24sIFJlcXVlc3RUeXBlLCBXcml0ZVJlcXVlc3QsIDMs DQotICAgICAgICAgICAgICAgICAgICAgICAgTGVuUHRyLCBSZXN1bHQpOw0KKyAgICBCdWZmZXJT aXplLCBCdWZmZXIpOw0KIH0NCiANCiAvLw0KQEAgLTExMDYsMTMgKzEwODksMTYgQEAgWGVuU3Rv cmVMaXN0RGlyZWN0b3J5ICgKICAgT1VUIENPTlNUIENIQVI4ICAgICAgICAgICAqKipEaXJlY3Rv cnlMaXN0UHRyDQogICApDQogew0KLSAgQ0hBUjggKlRlbXBTdHI7DQotICBVSU5UMzIgTGVuID0g MDsNCisgIENIQVI4ICAgICAgICAgICAqVGVtcFN0cjsNCisgIFVJTlROICAgICAgICAgICBMZW47 DQogICBYRU5TVE9SRV9TVEFUVVMgU3RhdHVzOw0KIA0KKyAgVGVtcFN0ciA9IEFsbG9jYXRlUG9v bCAoWEVOU1RPUkVfUEFZTE9BRF9NQVgpOw0KKyAgTGVuID0gWEVOU1RPUkVfUEFZTE9BRF9NQVg7 DQogICBTdGF0dXMgPSBYZW5TdG9yZVNpbmdsZSAoVHJhbnNhY3Rpb24sIFhTX0RJUkVDVE9SWSwg RGlyZWN0b3J5UGF0aCwgTm9kZSwgJkxlbiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAo Vk9JRCAqKikgJlRlbXBTdHIpOw0KKyAgICBUZW1wU3RyKTsNCiAgIGlmIChTdGF0dXMgIT0gWEVO U1RPUkVfU1RBVFVTX1NVQ0NFU1MpIHsNCisgICAgRnJlZVBvb2wgKFRlbXBTdHIpOw0KICAgICBy ZXR1cm4gU3RhdHVzOw0KICAgfQ0KIA0KQEAgLTExNDYsMjEgKzExMzIsMTQgQEAgWGVuU3RvcmVS ZWFkICgKICAgSU4gIENPTlNUIFhFTlNUT1JFX1RSQU5TQUNUSU9OICpUcmFuc2FjdGlvbiwNCiAg IElOICBDT05TVCBDSEFSOCAgICAgICAgICAgICAqRGlyZWN0b3J5UGF0aCwNCiAgIElOICBDT05T VCBDSEFSOCAgICAgICAgICAgICAqTm9kZSwNCi0gIE9VVCBVSU5UMzIgICAgICAgICAgICAgICAg ICAqTGVuUHRyIE9QVElPTkFMLA0KLSAgT1VUIFZPSUQgICAgICAgICAgICAgICAgICAgICoqUmVz dWx0DQorICBJTiBPVVQgVUlOVE4gICAgICAgICAgICAgICAgKkJ1ZmZlclNpemUsDQorICBPVVQg Vk9JRCAgICAgICAgICAgICAgICAgICAgKkJ1ZmZlcg0KICAgKQ0KIHsNCi0gIFZPSUQgKlZhbHVl Ow0KLSAgWEVOU1RPUkVfU1RBVFVTIFN0YXR1czsNCi0NCi0gIFN0YXR1cyA9IFhlblN0b3JlU2lu Z2xlIChUcmFuc2FjdGlvbiwgWFNfUkVBRCwgRGlyZWN0b3J5UGF0aCwgTm9kZSwNCi0gICAgTGVu UHRyLCAmVmFsdWUpOw0KLSAgaWYgKFN0YXR1cyAhPSBYRU5TVE9SRV9TVEFUVVNfU1VDQ0VTUykg ew0KLSAgICByZXR1cm4gU3RhdHVzOw0KLSAgfQ0KLQ0KLSAgKlJlc3VsdCA9IFZhbHVlOw0KLSAg cmV0dXJuIFhFTlNUT1JFX1NUQVRVU19TVUNDRVNTOw0KKyAgQVNTRVJUIChCdWZmZXJTaXplICE9 IE5VTEwpOw0KKyAgQVNTRVJUIChCdWZmZXIgIT0gTlVMTCk7DQorICByZXR1cm4gWGVuU3RvcmVT aW5nbGUgKFRyYW5zYWN0aW9uLCBYU19SRUFELCBEaXJlY3RvcnlQYXRoLCBOb2RlLA0KKyAgICBC dWZmZXJTaXplLCBCdWZmZXIpOw0KIH0NCiANCiBYRU5TVE9SRV9TVEFUVVMNCkBAIC0xMTk5LDE0 ICsxMTc4LDE2IEBAIFhlblN0b3JlVHJhbnNhY3Rpb25TdGFydCAoCiAgIE9VVCBYRU5TVE9SRV9U UkFOU0FDVElPTiAgKlRyYW5zYWN0aW9uDQogICApDQogew0KLSAgQ0hBUjggKklkU3RyOw0KKyAg Q0hBUjggICAgICAgICAgIElkU3RyW1hFTlNUT1JFX1BBWUxPQURfTUFYXTsNCisgIFVJTlROICAg ICAgICAgICBCdWZmZXJTaXplOw0KICAgWEVOU1RPUkVfU1RBVFVTIFN0YXR1czsNCiANCisgIEJ1 ZmZlclNpemUgPSBzaXplb2YgKElkU3RyKTsNCisNCiAgIFN0YXR1cyA9IFhlblN0b3JlU2luZ2xl IChYU1RfTklMLCBYU19UUkFOU0FDVElPTl9TVEFSVCwgIiIsIE5VTEwsDQotICAgIE5VTEwsIChW T0lEICoqKSAmSWRTdHIpOw0KKyAgICAmQnVmZmVyU2l6ZSwgSWRTdHIpOw0KICAgaWYgKFN0YXR1 cyA9PSBYRU5TVE9SRV9TVEFUVVNfU1VDQ0VTUykgew0KICAgICBUcmFuc2FjdGlvbi0+SWQgPSAo VUlOVDMyKUFzY2lpU3RyRGVjaW1hbFRvVWludG4gKElkU3RyKTsNCi0gICAgRnJlZVBvb2wgKElk U3RyKTsNCiAgIH0NCiANCiAgIHJldHVybiBTdGF0dXM7DQpAQCAtMTM1OCw3ICsxMzM5LDI0IEBA IFhlbkJ1c1hlblN0b3JlUmVhZCAoCiAgIE9VVCBWT0lEICAgICAgICAgICAgICAgICAgKipWYWx1 ZQ0KICAgKQ0KIHsNCi0gIHJldHVybiBYZW5TdG9yZVJlYWQgKFRyYW5zYWN0aW9uLCBUaGlzLT5O b2RlLCBOb2RlLCBOVUxMLCBWYWx1ZSk7DQorICBYRU5TVE9SRV9TVEFUVVMgU3RhdHVzOw0KKyAg VUlOVE4gICAgICAgICAgIEJ1ZmZlclNpemU7DQorICBWT0lEICAgICAgICAgICAgKkJ1ZmZlcjsN CisNCisgIEJ1ZmZlclNpemUgPSBYRU5TVE9SRV9QQVlMT0FEX01BWCArIDE7DQorICBCdWZmZXIg PSBBbGxvY2F0ZVBvb2wgKEJ1ZmZlclNpemUpOw0KKyAgaWYgKEJ1ZmZlciA9PSBOVUxMKSB7DQor ICAgIHJldHVybiBYRU5TVE9SRV9TVEFUVVNfRU5PTUVNOw0KKyAgfQ0KKw0KKyAgU3RhdHVzID0g WGVuU3RvcmVSZWFkIChUcmFuc2FjdGlvbiwgVGhpcy0+Tm9kZSwgTm9kZSwgJkJ1ZmZlclNpemUs IEJ1ZmZlcik7DQorDQorICBpZiAoU3RhdHVzID09IFhFTlNUT1JFX1NUQVRVU19TVUNDRVNTKSB7 DQorICAgICpWYWx1ZSA9IEJ1ZmZlcjsNCisgIH0gZWxzZSB7DQorICAgIEZyZWVQb29sIChCdWZm ZXIpOw0KKyAgfQ0KKyAgcmV0dXJuIFN0YXR1czsNCiB9DQogDQogWEVOU1RPUkVfU1RBVFVTDQpA QCAtMTM3MCw3ICsxMzY4LDI0IEBAIFhlbkJ1c1hlblN0b3JlQmFja2VuZFJlYWQgKAogICBPVVQg Vk9JRCAgICAgICAgICAgICAgICAgICoqVmFsdWUNCiAgICkNCiB7DQotICByZXR1cm4gWGVuU3Rv cmVSZWFkIChUcmFuc2FjdGlvbiwgVGhpcy0+QmFja2VuZCwgTm9kZSwgTlVMTCwgVmFsdWUpOw0K KyAgWEVOU1RPUkVfU1RBVFVTIFN0YXR1czsNCisgIFVJTlROICAgICAgICAgICBCdWZmZXJTaXpl Ow0KKyAgVk9JRCAgICAgICAgICAgICpCdWZmZXI7DQorDQorICBCdWZmZXJTaXplID0gWEVOU1RP UkVfUEFZTE9BRF9NQVggKyAxOw0KKyAgQnVmZmVyID0gQWxsb2NhdGVQb29sIChCdWZmZXJTaXpl KTsNCisgIGlmIChCdWZmZXIgPT0gTlVMTCkgew0KKyAgICByZXR1cm4gWEVOU1RPUkVfU1RBVFVT X0VOT01FTTsNCisgIH0NCisNCisgIFN0YXR1cyA9IFhlblN0b3JlUmVhZCAoVHJhbnNhY3Rpb24s IFRoaXMtPkJhY2tlbmQsIE5vZGUsICZCdWZmZXJTaXplLCBCdWZmZXIpOw0KKw0KKyAgaWYgKFN0 YXR1cyA9PSBYRU5TVE9SRV9TVEFUVVNfU1VDQ0VTUykgew0KKyAgICAqVmFsdWUgPSBCdWZmZXI7 DQorICB9IGVsc2Ugew0KKyAgICBGcmVlUG9vbCAoQnVmZmVyKTsNCisgIH0NCisgIHJldHVybiBT dGF0dXM7DQogfQ0KIA0KIFhFTlNUT1JFX1NUQVRVUw0KZGlmZiAtLWdpdCBhL092bWZQa2cvWGVu QnVzRHhlL1hlblN0b3JlLmggYi9Pdm1mUGtnL1hlbkJ1c0R4ZS9YZW5TdG9yZS5oCmluZGV4IGVm ZmFhZDczMzYuLjEzZjdkMTMyZTYgMTAwNjQ0Ci0tLSBhL092bWZQa2cvWGVuQnVzRHhlL1hlblN0 b3JlLmgKKysrIGIvT3ZtZlBrZy9YZW5CdXNEeGUvWGVuU3RvcmUuaApAQCAtNjQsMjkgKzY0LDI2 IEBAIFhlblN0b3JlUGF0aEV4aXN0cyAoCiAgICk7DQogDQogLyoqDQotICBHZXQgdGhlIGNvbnRl bnRzIG9mIGEgc2luZ2xlICJmaWxlIi4gIFJldHVybnMgdGhlIGNvbnRlbnRzIGluICpSZXN1bHQg d2hpY2gNCi0gIHNob3VsZCBiZSBmcmVlZCBhZnRlciB1c2UuICBUaGUgbGVuZ3RoIG9mIHRoZSB2 YWx1ZSBpbiBieXRlcyBpcyByZXR1cm5lZCBpbg0KLSAgKkxlblB0ci4NCisgIEdldCB0aGUgY29u dGVudHMgb2YgYSBzaW5nbGUgImZpbGUiLiAgQ29weSB0aGUgY29udGVudHMgaW4gQnVmZmVyIGlm DQorICBwcm92aWRlZC4gIFRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGluIGJ5dGVzIGlzIHJldHVy bmVkIGluICpCdWZmZXJTaXplLg0KIA0KICAgQHBhcmFtIFRyYW5zYWN0aW9uICAgIFRoZSBYZW5T dG9yZSB0cmFuc2FjdGlvbiBjb3ZlcmluZyB0aGlzIHJlcXVlc3QuDQogICBAcGFyYW0gRGlyZWN0 b3J5UGF0aCAgVGhlIGRpcm5hbWUgb2YgdGhlIGZpbGUgdG8gcmVhZC4NCiAgIEBwYXJhbSBOb2Rl ICAgICAgICAgICBUaGUgYmFzZW5hbWUgb2YgdGhlIGZpbGUgdG8gcmVhZC4NCi0gIEBwYXJhbSBM ZW5QdHIgICAgICAgICBUaGUgYW1vdW50IG9mIGRhdGEgcmVhZC4NCi0gIEBwYXJhbSBSZXN1bHQg ICAgICAgICBUaGUgcmV0dXJuZWQgY29udGVudHMgZnJvbSB0aGlzIGZpbGUuDQorICBAcGFyYW0g QnVmZmVyU2l6ZSAgICAgSU46IHNpemUgb2YgdGhlIGJ1ZmZlcg0KKyAgICAgICAgICAgICAgICAg ICAgICAgIE9VVDogVGhlIHJldHVybmVkIGxlbmd0aCBvZiB0aGUgcmVwbHkuDQorICBAcGFyYW0g QnVmZmVyICAgICAgICAgVGhlIHJldHVybmVkIGJvZHkgb2YgdGhlIHJlcGx5Lg0KIA0KICAgQHJl dHVybiAgT24gc3VjY2VzcywgWEVOU1RPUkVfU1RBVFVTX1NVQ0NFU1MuIE90aGVyd2lzZSBhbiBl cnJubyB2YWx1ZQ0KICAgICAgICAgICAgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBmYWlsdXJlLg0K LQ0KLSAgQG5vdGUgVGhlIHJlc3VsdHMgYnVmZmVyIGlzIG1hbGxvY2VkIGFuZCBzaG91bGQgYmUg ZnJlZSdkIGJ5IHRoZQ0KLSAgICAgICAgY2FsbGVyLg0KICoqLw0KIFhFTlNUT1JFX1NUQVRVUw0K IFhlblN0b3JlUmVhZCAoDQogICBJTiAgQ09OU1QgWEVOU1RPUkVfVFJBTlNBQ1RJT04gKlRyYW5z YWN0aW9uLA0KICAgSU4gIENPTlNUIENIQVI4ICAgICAgICAgICAgICpEaXJlY3RvcnlQYXRoLA0K ICAgSU4gIENPTlNUIENIQVI4ICAgICAgICAgICAgICpOb2RlLA0KLSAgT1VUIFVJTlQzMiAgICAg ICAgICAgICAgICAgICpMZW5QdHIgT1BUSU9OQUwsDQotICBPVVQgVk9JRCAgICAgICAgICAgICAg ICAgICAgKipSZXN1bHQNCisgIElOIE9VVCBVSU5UTiAgICAgICAgICAgICAgICAqQnVmZmVyU2l6 ZSwNCisgIE9VVCBWT0lEICAgICAgICAgICAgICAgICAgICAqQnVmZmVyDQogICApOw0KIA0KIC8q Kg0KLS0gCkFudGhvbnkgUEVSQVJECgo=