From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v6.5 23/26] x86/entry: Clobber the Return Stack Buffer on entry to Xen Date: Thu, 4 Jan 2018 00:15:52 +0000 Message-ID: <1515024955-13390-24-git-send-email-andrew.cooper3@citrix.com> References: <1515024955-13390-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1515024955-13390-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org cmV0IGluc3RydWN0aW9ucyBhcmUgdW5jb25kaXRpb25hbGx5IHNwZWN1bGF0ZWQgYmFzZWQgb24g dmFsdWVzIGluIHRoZSBSU0IuCklmIGFueSBwYXRoIGluIFhlbiBleGVjdXRlcyBtb3JlIHJldCB0 aGFuIGNhbGwgaW5zdHJ1Y3Rpb25zLCBzcGVjdWxhdGlvbiBjYW4Kc3RhcnQgZm9sbG93aW5nIGEg Z3Vlc3QgY29udHJvbGxlZCBSU0IgZW50cnkuCgpUaGVyZSBpcyBhdCBsZWFzdCBvbmUgcGF0aCAo d2FrZSBmcm9tIHdhaXRxdWV1ZSkgd2hpY2ggY2FuIGVuZCB1cCBleGVjdXRpbmcKbW9yZSByZXQg dGhhbiBjYWxsIGluc3RydWN0aW9ucy4gIFRoZXJlIG1heSBiZSBvdGhlciBwYXRocyBhcyB3ZWxs LgoKVG8gbWl0aWdhdGUsIG92ZXJ3cml0ZSB0aGUgUlNCICh3aGVuIGFwcHJvcHJpYXRlOyBzZWUg Y29kZSBmb3IgZGV0YWlscykgd2hlbgplbnRlcmluZyBYZW4gZnJvbSBndWVzdCBjb250ZXh0LgoK U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K LS0tCnYyOgogKiBSZW5hbWUgcHYvaHZtIHRvIG5hdGl2ZS92bWV4aXQgdG8gYmUgY2xlYXJlcgog KiBSZW9yZGVyIGJlZm9yZSBTUEVDX0NUUkxfRU5UUlkKICogQ2FsY3VsYXRlIHdoZW4gdG8gY2xv YmJlciB0aGUgUlNCCiAqIFNraXAgY2xvYmJlcmluZyB0aGUgUlNCIHdoZW4gaW50ZXJydXB0aW5n IFhlbgp2MzoKICogUmV3b3JrIHRvIGJlIGNvbnNpc3RlbnQgdGhlIHJld3JpdHRlbiBTUEVDX0NU UkxfKiBwYXRjaAp2NDoKICogTWVyZ2UgT1ZFUldSSVRFX1JTQl8qIGludG8gU1BFQ19DVFJMX0VO VFJZXyogdG8gZW5mb3JjZSB0aGUgb3JkZXJpbmcKICAgZGVwZW5kZW5jeS4KICogUmViYXNlIG92 ZXIgQU1EIGNoYW5nZXMKLS0tCiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93biB8 ICA2ICsrLQogeGVuL2FyY2gveDg2L3NwZWNfY3RybC5jICAgICAgICAgICAgfCA4MSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZl YXR1cmUuaCAgICB8ICAxICsKIHhlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZXMuaCAgIHwg IDQgKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvbm9wcy5oICAgICAgICAgIHwgIDIgKwogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9zcGVjX2N0cmxfYXNtLmggfCA0NiArKysrKysrKysrKysrKysrKysrKysK IDYgZmlsZXMgY2hhbmdlZCwgMTMxIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2Mv eGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgppbmRleCAzNDI5NDg0Li44YmZmZTQ0IDEwMDY0NAot LS0gYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgorKysgYi9kb2NzL21pc2Mv eGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgpAQCAtMjQ2LDcgKzI0Niw3IEBAIGVub3VnaC4gU2V0 dGluZyB0aGlzIHRvIGEgaGlnaCB2YWx1ZSBtYXkgY2F1c2UgYm9vdCBmYWlsdXJlLCBwYXJ0aWN1 bGFybHkgaWYKIHRoZSBOTUkgd2F0Y2hkb2cgaXMgYWxzbyBlbmFibGVkLgogCiAjIyMgYnRpICh4 ODYpCi0+IGA9IExpc3Qgb2YgWyB0aHVuaz1yZXRwb2xpbmV8bGZlbmNlfHBsYWluLCBpYnJzPTxi b29sPiBdYAorPiBgPSBMaXN0IG9mIFsgdGh1bms9cmV0cG9saW5lfGxmZW5jZXxwbGFpbiwgaWJy cz08Ym9vbD4sIHJzYl97dm1leGl0LG5hdGl2ZX09Ym9vbCBdYAogCiBCcmFuY2ggVGFyZ2V0IElu amVjdGlvbiBjb250cm9scy4gIEJ5IGRlZmF1bHQsIFhlbiB3aWxsIHBpY2sgdGhlIG1vc3QKIGFw cHJvcHJpYXRlIEJUSSBtaXRpZ2F0aW9ucyBiYXNlZCBvbiBjb21waWxlZCBpbiBzdXBwb3J0LCBs b2FkZWQgbWljcm9jb2RlLApAQCAtMjYzLDYgKzI2MywxMCBAQCBPbiBoYXJkd2FyZSBzdXBwb3J0 aW5nIElCUlMsIHRoZSBgaWJycz1gIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBmb3JjZSBvcgogcHJl dmVudCBYZW4gdXNpbmcgdGhlIGZlYXR1cmUgaXRzZWxmLiAgSWYgWGVuIGlzIG5vdCB1c2luZyBJ QlJTIGl0c2VsZiwKIGZ1bmN0aW9uYWxpdHkgaXMgc3RpbGwgc2V0IHVwIHNvIElCUlMgY2FuIGJl IHZpcnR1YWxpc2VkIGZvciBndWVzdHMuCiAKK1RoZSBgcnNiX3ZtZXhpdD1gIGFuZCBgcnNiX25h dGl2ZT1gIG9wdGlvbnMgY2FuIGJlIHVzZWQgdG8gZmluZSB0dW5lIHdoZW4gdGhlCitSU0IgZ2V0 cyBvdmVyd3JpdHRlbi4gIFRoZXJlIGFyZSBpbmRpdmlkdWFsIGNvbnRyb2xzIGZvciBhbiBlbnRy eSBmcm9tIEhWTQorY29udGV4dCwgYW5kIGFuIGVudHJ5IGZyb20gYSBuYXRpdmUgKFBWIG9yIFhl bikgY29udGV4dC4KKwogIyMjIHhlbmhlYXBcX21lZ2FieXRlcyAoYXJtMzIpCiA+IGA9IDxzaXpl PmAKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jIGIveGVuL2FyY2gveDg2 L3NwZWNfY3RybC5jCmluZGV4IDFjY2NiOGEuLmJiZjhmOTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9zcGVjX2N0cmwuYworKysgYi94ZW4vYXJjaC94ODYvc3BlY19jdHJsLmMKQEAgLTMzLDYg KzMzLDcgQEAgZW51bSBpbmRfdGh1bmsgewogICAgIFRIVU5LX0pNUCwKIH0gb3B0X3RodW5rIF9f aW5pdGRhdGEgPSBUSFVOS19ERUZBVUxUOwogaW50IG9wdF9pYnJzIF9faW5pdGRhdGEgPSAtMTsK K2ludCBvcHRfcnNiX25hdGl2ZSBfX2luaXRkYXRhID0gLTEsIG9wdF9yc2Jfdm1leGl0IF9faW5p dGRhdGEgPSAtMTsKIAogc3RhdGljIGludCBfX2luaXQgcGFyc2VfYnRpKGNvbnN0IGNoYXIgKnMp CiB7CkBAIC01OSw2ICs2MCwxMCBAQCBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9idGkoY29uc3Qg Y2hhciAqcykKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmICggKHZhbCA9IHBhcnNlX2Jvb2xl YW4oImlicnMiLCBzLCBzcykpID49IDAgKQogICAgICAgICAgICAgb3B0X2licnMgPSB2YWw7Cisg ICAgICAgIGVsc2UgaWYgKCAodmFsID0gcGFyc2VfYm9vbGVhbigicnNiX25hdGl2ZSIsIHMsIHNz KSkgPj0gMCApCisgICAgICAgICAgICBvcHRfcnNiX25hdGl2ZSA9IHZhbDsKKyAgICAgICAgZWxz ZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFuKCJyc2Jfdm1leGl0Iiwgcywgc3MpKSA+PSAwICkK KyAgICAgICAgICAgIG9wdF9yc2Jfdm1leGl0ID0gdmFsOwogICAgICAgICBlbHNlCiAgICAgICAg ICAgICByYyA9IC1FSU5WQUw7CiAKQEAgLTcxLDIxICs3NiwyMyBAQCBjdXN0b21fcGFyYW0oImJ0 aSIsIHBhcnNlX2J0aSk7CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0g aW5kX3RodW5rIHRodW5rKQogewotICAgIHVuc2lnbmVkIGludCBfN2QwID0gMCwgZThiID0gMCwg dG1wOworICAgIHVuc2lnbmVkIGludCBfN2IwID0gMCwgXzdkMCA9IDAsIGU4YiA9IDAsIHRtcDsK IAogICAgIC8qIENvbGxlY3QgZGlhZ25vc3RpY3MgYWJvdXQgYXZhaWxhYmxlIG1pdGlnYXRpb25z LiAqLwogICAgIGlmICggYm9vdF9jcHVfZGF0YS5jcHVpZF9sZXZlbCA+PSA3ICkKLSAgICAgICAg Y3B1aWRfY291bnQoNywgMCwgJnRtcCwgJnRtcCwgJnRtcCwgJl83ZDApOworICAgICAgICBjcHVp ZF9jb3VudCg3LCAwLCAmdG1wLCAmXzdiMCwgJnRtcCwgJl83ZDApOwogICAgIGlmICggYm9vdF9j cHVfZGF0YS5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDA4ICkKICAgICAgICAgY3B1 aWQoMHg4MDAwMDAwOCwgJnRtcCwgJmU4YiwgJnRtcCwgJnRtcCk7CiAKICAgICBwcmludGsoWEVO TE9HX0RFQlVHICJTcGVjdWxhdGl2ZSBtaXRpZ2F0aW9uIGZhY2lsaXRpZXM6XG4iKTsKIAogICAg IC8qIEhhcmR3YXJlIGZlYXR1cmVzIHdoaWNoIHBlcnRhaW4gdG8gc3BlY3VsYXRpdmUgbWl0aWdh dGlvbnMuICovCi0gICAgaWYgKCAoXzdkMCAmIChjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfSUJS U0IpIHwKKyAgICBpZiAoIChfN2IwICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NNRVApKSB8 fAorICAgICAgICAgKF83ZDAgJiAoY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUlNCKSB8CiAg ICAgICAgICAgICAgICAgICBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1RJQlApKSkgfHwKICAg ICAgICAgIChlOGIgJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfSUJQQikpICkKLSAgICAgICAg cHJpbnRrKFhFTkxPR19ERUJVRyAiICBIYXJkd2FyZSBmZWF0dXJlczolcyVzJXNcbiIsCisgICAg ICAgIHByaW50ayhYRU5MT0dfREVCVUcgIiAgSGFyZHdhcmUgZmVhdHVyZXM6JXMlcyVzJXNcbiIs CisgICAgICAgICAgICAgICAoXzdiMCAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TTUVQKSkg ID8gIiBTTUVQIiAgICAgIDogIiIsCiAgICAgICAgICAgICAgICAoXzdkMCAmIGNwdWZlYXRfbWFz ayhYODZfRkVBVFVSRV9JQlJTQikpID8gIiBJQlJTL0lCUEIiIDogIiIsCiAgICAgICAgICAgICAg ICAoXzdkMCAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TVElCUCkpID8gIiBTVElCUCIgICAg IDogIiIsCiAgICAgICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9J QlBCKSkgID8gIiBJQlBCIiAgICAgIDogIiIpOwpAQCAtOTUsMTMgKzEwMiwxOCBAQCBzdGF0aWMg dm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhlbnVtIGluZF90aHVuayB0aHVuaykKICAgICAgICAg cHJpbnRrKFhFTkxPR19ERUJVRyAiICBDb21waWxlZC1pbiBzdXBwb3J0OiBJTkRJUkVDVF9USFVO S1xuIik7CiAKICAgICBwcmludGsoWEVOTE9HX0lORk8KLSAgICAgICAgICAgIkJUSSBtaXRpZ2F0 aW9uczogVGh1bmsgJXMsIE90aGVyczolc1xuIiwKKyAgICAgICAgICAgIkJUSSBtaXRpZ2F0aW9u czogVGh1bmsgJXMsIE90aGVyczolcyVzJXMlc1xuIiwKICAgICAgICAgICAgdGh1bmsgPT0gVEhV TktfTk9ORSAgICAgID8gIk4vQSIgOgogICAgICAgICAgICB0aHVuayA9PSBUSFVOS19SRVRQT0xJ TkUgPyAiUkVUUE9MSU5FIiA6CiAgICAgICAgICAgIHRodW5rID09IFRIVU5LX0xGRU5DRSAgICA/ ICJMRkVOQ0UiIDoKICAgICAgICAgICAgdGh1bmsgPT0gVEhVTktfSk1QICAgICAgID8gIkpNUCIg OiAiPyIsCiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9YRU5fSUJSU19TRVQp ICAgID8gIiBJQlJTKyIgOgotICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfWEVO X0lCUlNfQ0xFQVIpICA/ICIgSUJSUy0iICAgICAgOiAiIik7CisgICAgICAgICAgIGJvb3RfY3B1 X2hhcyhYODZfRkVBVFVSRV9YRU5fSUJSU19DTEVBUikgID8gIiBJQlJTLSIgICAgICA6ICIiLAor ICAgICAgICAgICBjcHVfaGFzX3hlbl9zbWVwICAgICAgICAgICAgICAgICAgICAgICAgICA/ICIg U01FUCIgICAgICAgOiAiIiwKKyAgICAgICAgICAgKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9S U0JfVk1FWElUKSB8fAorICAgICAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1JTQl9W TUVYSVRfU1MpKSA/ICIgUlNCX1ZNRVhJVCIgOiAiIiwKKyAgICAgICAgICAgKGJvb3RfY3B1X2hh cyhYODZfRkVBVFVSRV9SU0JfTkFUSVZFKSB8fAorICAgICAgICAgICAgYm9vdF9jcHVfaGFzKFg4 Nl9GRUFUVVJFX1JTQl9OQVRJVkVfU1MpKSA/ICIgUlNCX05BVElWRSIgOiAiIik7CiB9CiAKIC8q IENhbGN1bGF0ZSB3aGV0aGVyIFJldHBvbGluZSBpcyBrbm93bi1zYWZlIG9uIHRoaXMgQ1BVLiAq LwpAQCAtMTYxLDEzICsxNzMsMTQgQEAgc3RhdGljIGJvb2wgX19pbml0IHJldHBvbGluZV9zYWZl KHZvaWQpCiB2b2lkIF9faW5pdCBpbml0X3NwZWN1bGF0aW9uX21pdGlnYXRpb25zKHZvaWQpCiB7 CiAgICAgZW51bSBpbmRfdGh1bmsgdGh1bmsgPSBUSFVOS19ERUZBVUxUOwotICAgIGJvb2wgaWJy cyA9IGZhbHNlOworICAgIGJvb2wgaWJycyA9IGZhbHNlLCBoYXZlX21pdGlnYXRpb24gPSB0cnVl OwogCiAgICAgLyoKICAgICAgKiBIYXMgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBjdXN0b20gQlRJ IG1pdGlnYXRpb25zPyAgSWYgc28sIGZvbGxvdyB0aGVpcgogICAgICAqIGluc3RydWN0aW9ucyBl eGFjdGx5IGFuZCBkaXNhYmxlIGFsbCBoZXVyaXN0aWNzLgogICAgICAqLwotICAgIGlmICggb3B0 X3RodW5rICE9IFRIVU5LX0RFRkFVTFQgfHwgb3B0X2licnMgIT0gLTEgKQorICAgIGlmICggb3B0 X3RodW5rICE9IFRIVU5LX0RFRkFVTFQgfHwgb3B0X2licnMgIT0gLTEgfHwKKyAgICAgICAgIG9w dF9yc2JfbmF0aXZlICE9IC0xIHx8IG9wdF9yc2Jfdm1leGl0ICE9IC0xICkKICAgICB7CiAgICAg ICAgIHRodW5rID0gb3B0X3RodW5rOwogICAgICAgICBpYnJzICA9ICEhb3B0X2licnM7CkBAIC0y MDEsNiArMjE0LDkgQEAgdm9pZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2 b2lkKQogICAgICAgICAvKiBXaXRob3V0IGNvbXBpbGVyIHRodW5rIHN1cHBvcnQsIHVzZSBJQlJT IGlmIGF2YWlsYWJsZS4gKi8KICAgICAgICAgZWxzZSBpZiAoIGJvb3RfY3B1X2hhcyhYODZfRkVB VFVSRV9JQlJTQikgKQogICAgICAgICAgICAgaWJycyA9IHRydWU7CisgICAgICAgIC8qIE9yIGdp dmUgdXAgY29tcGxldGVseS4gKi8KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaGF2ZV9taXRp Z2F0aW9uID0gZmFsc2U7CiAgICAgfQogCiAgICAgLyoKQEAgLTI0Miw2ICsyNTgsNTUgQEAgdm9p ZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQogICAgICAgICAgICAg c2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9YRU5fSUJSU19DTEVBUik7CiAgICAgfQog CisgICAgLyoKKyAgICAgKiBPbmx5IGJvdGhlciBvdmVyd3JpdGluZyB0aGUgUlNCcyBpZiB3ZSBo YXZlIGEgQlRJIG1pdGlnYXRpb24gYXZhaWxhYmxlLgorICAgICAqIE90aGVyd2lzZSwgd2UncmUg YWxyZWFkeSB3aWRlIG9wZW4gdG8gZWFzaWVyIGF0dGFja3MgdGhhbiBSU0ItcG9pc29uaW5nLgor ICAgICAqLworICAgIGlmICggaGF2ZV9taXRpZ2F0aW9uICkKKyAgICB7CisgICAgICAgIC8qCisg ICAgICAgICAqIElmIHdlIGFyZSB3cml0aW5nIHRvIE1TUl9TUEVDX0NUUkwsIHRoZSBXUk1TUiBp cyBzdWZmaWNpZW50bHkKKyAgICAgICAgICogc2VyaWFsaXNpbmcgdG8gcHJvdGVjdCBhZ2FpbnN0 IHNwZWN1bGF0aXZlIGV4aXRzIG9mIHRoZSBSU0IgbG9vcC4KKyAgICAgICAgICogSWYgbm90LCB0 aGUgUlNCIGxvb3AgbmVlZHMgdG8gcHJvdmlkZSBpdHMgb3duIHNwZWN1bGF0aXZlIGRlZmVuY2Uu CisgICAgICAgICAqLworICAgICAgICBib29sIHNzID0gIShib290X2NwdV9oYXMoWDg2X0ZFQVRV UkVfWEVOX0lCUlNfU0VUKSB8fAorICAgICAgICAgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2 X0ZFQVRVUkVfWEVOX0lCUlNfQ0xFQVIpKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBIVk0g Z3Vlc3RzIGNhbiBhbHdheXMgcG9pc29uIHRoZSBSU0IgdG8gcG9pbnQgYXQgWGVuIHN1cGVydmlz b3IKKyAgICAgICAgICogbWFwcGluZ3MuCisgICAgICAgICAqLworICAgICAgICBpZiAoIG9wdF9y c2Jfdm1leGl0ICkKKyAgICAgICAgeworICAgICAgICAgICAgQlVJTERfQlVHX09OKFg4Nl9GRUFU VVJFX1JTQl9WTUVYSVRfU1MgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICBYODZfRkVBVFVS RV9SU0JfVk1FWElUICsgMSk7CisKKyAgICAgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9jYXAoWDg2 X0ZFQVRVUkVfUlNCX1ZNRVhJVCArIHNzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAg ICAgICAqIFBWIGd1ZXN0cyBjYW4gcG9pc29uIHRoZSBSU0IgdG8gYW55IHZpcnR1YWwgYWRkcmVz cyBmcm9tIHdoaWNoCisgICAgICAgICAqIHRoZXkgY2FuIGV4ZWN1dGUgYSBjYWxsIGluc3RydWN0 aW9uLiAgVGhpcyBpcyBuZWNlc3NhcmlseSBvdXRzaWRlCisgICAgICAgICAqIG9mIHRoZSBYZW4g c3VwZXJ2aXNvciBtYXBwaW5ncy4KKyAgICAgICAgICoKKyAgICAgICAgICogV2l0aCBTTUVQIGVu YWJsZWQsIHRoZSBwcm9jZXNzb3Igd29uJ3Qgc3BlY3VsYXRlIGludG8gdXNlcgorICAgICAgICAg KiBtYXBwaW5ncywgYW5kIHRoZXJlZm9yZSwgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBwb2lz aW9uZWQKKyAgICAgICAgICogZW50cmllcy4KKyAgICAgICAgICoKKyAgICAgICAgICogMzJiaXQg UFYgZ3Vlc3Qga2VybmVscyBydW4gaW4gcmluZyAxLCBzbyB1c2Ugc3VwZXJ2aXNvciBtYXBwaW5n cy4KKyAgICAgICAgICogSG93ZXZlciwgbm90aGluZyBzZWNyZXQgbGl2ZXMgYmVsb3cgdGhlIDRH IGJvdW5kYXJ5LCBzbyBhIDMyYml0IFBWCisgICAgICAgICAqIGd1ZXN0IGNhbid0IGRvIGFueXRo aW5nIHVzZWZ1bCBieSBoaWphY2tpbmcgZXhlY3V0aW9uLgorICAgICAgICAgKi8KKyAgICAgICAg aWYgKCBvcHRfcnNiX25hdGl2ZSA9PSAxIHx8CisgICAgICAgICAgICAgKG9wdF9yc2JfbmF0aXZl ID09IC0xICYmICFjcHVfaGFzX3hlbl9zbWVwKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIEJV SUxEX0JVR19PTihYODZfRkVBVFVSRV9SU0JfTkFUSVZFX1NTICE9CisgICAgICAgICAgICAgICAg ICAgICAgICAgWDg2X0ZFQVRVUkVfUlNCX05BVElWRSArIDEpOworCisgICAgICAgICAgICBzZXR1 cF9mb3JjZV9jcHVfY2FwKFg4Nl9GRUFUVVJFX1JTQl9OQVRJVkUgKyBzcyk7CisgICAgICAgIH0K KyAgICB9CisKICAgICBwcmludF9kZXRhaWxzKHRodW5rKTsKIH0KIApkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZl YXR1cmUuaAppbmRleCA5ODhhODM0Li5iNzY2N2I0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L2NwdWZlYXR1cmUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUu aApAQCAtMTA3LDYgKzEwNyw3IEBACiAjZGVmaW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJv b3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNwdV9oYXNfY3B1 aWRfZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DUFVJRF9GQVVMVElORykKICNk ZWZpbmUgY3B1X2hhc19hcGVyZm1wZXJmICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FQ RVJGTVBFUkYpCisjZGVmaW5lIGNwdV9oYXNfeGVuX3NtZXAgICAgICAgIGJvb3RfY3B1X2hhcyhY ODZfRkVBVFVSRV9YRU5fU01FUCkKICNkZWZpbmUgY3B1X2hhc19sZmVuY2VfZGlzcGF0Y2ggYm9v dF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0xGRU5DRV9ESVNQQVRDSCkKIAogZW51bSBfY2FjaGVfdHlw ZSB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmVzLmggYi94ZW4v aW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmVzLmgKaW5kZXggZGQyMzg4Zi4uNTZkZDhmNCAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlcy5oCisrKyBiL3hlbi9pbmNs dWRlL2FzbS14ODYvY3B1ZmVhdHVyZXMuaApAQCAtMjgsMyArMjgsNyBAQCBYRU5fQ1BVRkVBVFVS RShJTkRfVEhVTktfSk1QLCAgIChGU0NBUElOVFMrMCkqMzIrMTQpIC8qIFVzZSBJTkRfVEhVTktf Sk1QICovCiBYRU5fQ1BVRkVBVFVSRShYRU5fSUJQQiwgICAgICAgIChGU0NBUElOVFMrMCkqMzIr MTUpIC8qIElCUlNCIHx8IElCUEIgKi8KIFhFTl9DUFVGRUFUVVJFKFhFTl9JQlJTX1NFVCwgICAg KEZTQ0FQSU5UUyswKSozMisxNikgLyogSUJSU0IgJiYgSVJCUyBzZXQgaW4gWGVuICovCiBYRU5f Q1BVRkVBVFVSRShYRU5fSUJSU19DTEVBUiwgIChGU0NBUElOVFMrMCkqMzIrMTcpIC8qIElCUlNC ICYmIElCUlMgY2xlYXIgaW4gWGVuICovCitYRU5fQ1BVRkVBVFVSRShSU0JfTkFUSVZFLCAgICAg IChGU0NBUElOVFMrMCkqMzIrMTgpIC8qIFJTQiBvdmVyd3JpdGUgbmVlZGVkIGZvciBuYXRpdmUg Ki8KK1hFTl9DUFVGRUFUVVJFKFJTQl9OQVRJVkVfU1MsICAgKEZTQ0FQSU5UUyswKSozMisxOSkg LyogUlNCX05BVElWRSBtdXN0IHNlbGYtc2VyaWFsaXNlICovCitYRU5fQ1BVRkVBVFVSRShSU0Jf Vk1FWElULCAgICAgIChGU0NBUElOVFMrMCkqMzIrMjApIC8qIFJTQiBvdmVyd3JpdGUgbmVlZGVk IGZvciB2bWV4aXQgKi8KK1hFTl9DUFVGRUFUVVJFKFJTQl9WTUVYSVRfU1MsICAgKEZTQ0FQSU5U UyswKSozMisyMSkgLyogUlNCX1ZNRVhJVCBtdXN0IHNlbGYtc2VyaWFsaXNlICovCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L25vcHMuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbm9w cy5oCmluZGV4IDllOGY1MzAuLjc1MmZiMGUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvbm9wcy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbm9wcy5oCkBAIC02Nyw5ICs2Nywx MSBAQAogCiAjZGVmaW5lIEFTTV9OT1AyMiBBU01fTk9QOCBBU01fTk9QOCBBU01fTk9QNgogI2Rl ZmluZSBBU01fTk9QMjYgQVNNX05PUDggQVNNX05PUDggQVNNX05PUDggQVNNX05PUDIKKyNkZWZp bmUgQVNNX05PUDI3IEFTTV9OT1A4IEFTTV9OT1A4IEFTTV9OT1A4IEFTTV9OT1AzCiAjZGVmaW5l IEFTTV9OT1AzMiBBU01fTk9QOCBBU01fTk9QOCBBU01fTk9QOCBBU01fTk9QOAogI2RlZmluZSBB U01fTk9QMzMgQVNNX05PUDggQVNNX05PUDggQVNNX05PUDggQVNNX05PUDcgQVNNX05PUDIKICNk ZWZpbmUgQVNNX05PUDM5IEFTTV9OT1A4IEFTTV9OT1A4IEFTTV9OT1A4IEFTTV9OT1A4IEFTTV9O T1A3CisjZGVmaW5lIEFTTV9OT1A0MCBBU01fTk9QOCBBU01fTk9QOCBBU01fTk9QOCBBU01fTk9Q OCBBU01fTk9QOAogCiAjZGVmaW5lIEFTTV9OT1BfTUFYIDkKIApkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9zcGVjX2N0cmxfYXNtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3NwZWNf Y3RybF9hc20uaAppbmRleCAxM2UwNThjLi40MzBiNDQwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9hc20teDg2L3NwZWNfY3RybF9hc20uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3NwZWNf Y3RybF9hc20uaApAQCAtNzMsNiArNzMsMzcgQEAKICAqICAtIFNQRUNfQ1RSTF9FWElUX1RPX0dV RVNUCiAgKi8KIAorLm1hY3JvIERPX09WRVJXUklURV9SU0IgbWF5YmV4ZW46cmVxIHNzOnJlcQor LyoKKyAqIFJlcTogJXJzcD1yZWdzCisgKiBDbG9iYmVycyAlZWN4CisgKgorICogUmVxdWlyZXMg MjU2IGJ5dGVzIG9mIHN0YWNrIHNwYWNlLCBidXQgJXJzcCBoYXMgbm8gbmV0IGNoYW5nZS4gIE9w dGlvbmFsbHkKKyAqIGNoZWNrcyBmb3IgaW50ZXJydXB0aW5nIFhlbiBjb250ZXh0LCBhbmQgc2tp cHBpbmcgdGhlIGNsb2JiZXIuCisgKgorICogRm9yIHNhZmV0eSwgdGhlcmUgbXVzdCBiZSBhbiBp bnN0cnVjdGlvbiBzdHJlYW0gc2VyaWFsaXNpbmcgZXZlbnQgYmV0d2VlbgorICogdGhpcyBsb29w IGFuZCB0aGUgbmV4dCB1bm1hdGNoZWQgcmV0LCB0byBwcmV2ZW50IGFuIGVhcmx5IHNwZWN1bGF0 aXZlIGV4aXQuCisgKiBJZiBJQlJTIGlzIGluIHVzZSwgaXRzIFdSTVNSIGlzIHN1ZmZpY2llbnRs eSBzZXJpYWxpc2luZy4gIElmIElCUlMgaXMgbm90CisgKiBhdmFpbGFibGUsIHBsYWNlIGFuIGxm ZW5jZSBhZnRlciB0aGUgbG9vcCB0byBzZXJpYWlsc2UuCisgKi8KKyAgICAuaWYgXG1heWJleGVu CisgICAgICAgIGNtcGwgJF9fSFlQRVJWSVNPUl9DUywgVVJFR1NfY3MoJXJzcCkKKyAgICAgICAg amUgLkxlbmRfXEAKKyAgICAuZW5kaWYKKworICAgIG1vdiAkMzIsICVlY3gKKy5MbG9vcF9cQDog Y2FsbCAuTGNhbGxfXEAKKyAgICBwYXVzZQorLkxjYWxsX1xAOiBzdWIgJDEsICVlY3gKKyAgICBq bnogLkxsb29wX1xACisgICAgYWRkICQzMio4LCAlcnNwCisuTGVuZF9cQDoKKworICAgIC5pZiBc c3MgLyogTmVlZCB0byBzZWxmLXNlcmlhbGlzZT8gKi8KKyAgICAgICAgbGZlbmNlCisgICAgLmVu ZGlmCisuZW5kbQorCiAubWFjcm8gRE9fU1BFQ19DVFJMX0VOVFJZX0ZST01fVk1FWElUIGlicnNf dmFsOnJlcQogLyoKICAqIFJlcXVpcmVzICVyYng9Y3VycmVudCwgJXJzcD1yZWdzL2NwdWluZm8K QEAgLTE3OCw2ICsyMDksMTEgQEAKIAogLyogVXNlIGFmdGVyIGEgVk1FWElUIGZyb20gYW4gSFZN IGd1ZXN0LiAqLwogI2RlZmluZSBTUEVDX0NUUkxfRU5UUllfRlJPTV9WTUVYSVQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEFMVEVSTkFUSVZFXzIgX19zdHJpbmdp ZnkoQVNNX05PUDI3KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAi RE9fT1ZFUldSSVRFX1JTQiBtYXliZXhlbj0wIHNzPTEiLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICBYODZfRkVBVFVSRV9SU0JfVk1FWElUX1NTLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAiRE9fT1ZFUldSSVRFX1JTQiBtYXli ZXhlbj0wIHNzPTAiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBYODZf RkVBVFVSRV9SU0JfVk1FWElUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgIEFMVEVSTkFUSVZFXzIgX19zdHJpbmdpZnkoQVNNX05PUDMyKSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBfX3N0cmluZ2lmeShET19TUEVDX0NUUkxf RU5UUllfRlJPTV9WTUVYSVQgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAg ICAgICBpYnJzX3ZhbD1TUEVDX0NUUkxfSUJSUyksICAgICAgICAgICAgICAgICAgICAgICAgICAg XApAQCAtMTg4LDYgKzIyNCwxMSBAQAogCiAvKiBVc2UgYWZ0ZXIgYW4gZW50cnkgZnJvbSBQViBj b250ZXh0IChzeXNjYWxsL3N5c2VudGVyL2ludDgwL2ludDgyL2V0YykuICovCiAjZGVmaW5lIFNQ RUNfQ1RSTF9FTlRSWV9GUk9NX1BWICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgQUxURVJOQVRJVkVfMiBfX3N0cmluZ2lmeShBU01fTk9QMjcpLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICJET19PVkVSV1JJVEVfUlNCIG1heWJl eGVuPTAgc3M9MSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFg4Nl9G RUFUVVJFX1JTQl9OQVRJVkVfU1MsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgICJET19PVkVSV1JJVEVfUlNCIG1heWJleGVuPTAgc3M9MCIsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFg4Nl9GRUFUVVJFX1JTQl9OQVRJVkU7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgQUxURVJOQVRJVkVf MiBfX3N0cmluZ2lmeShBU01fTk9QMjIpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgICAgIF9fc3RyaW5naWZ5KERPX1NQRUNfQ1RSTF9FTlRSWSBtYXliZXhlbj0wICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIGlicnNfdmFsPVNQRUNfQ1RS TF9JQlJTKSwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0xOTcsNiArMjM4LDExIEBA CiAKIC8qIFVzZSBpbiBpbnRlcnJ1cHQvZXhjZXB0aW9uIGNvbnRleHQuICBNYXkgaW50ZXJydXB0 IFhlbiBvciBQViBjb250ZXh0LiAqLwogI2RlZmluZSBTUEVDX0NUUkxfRU5UUllfRlJPTV9JTlRS ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEFMVEVSTkFUSVZF XzIgX19zdHJpbmdpZnkoQVNNX05PUDQwKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICAiRE9fT1ZFUldSSVRFX1JTQiBtYXliZXhlbj0xIHNzPTEiLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBYODZfRkVBVFVSRV9SU0JfTkFUSVZFX1NTLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAiRE9fT1ZFUldS SVRFX1JTQiBtYXliZXhlbj0xIHNzPTAiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICBYODZfRkVBVFVSRV9SU0JfTkFUSVZFOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgIEFMVEVSTkFUSVZFXzIgX19zdHJpbmdpZnkoQVNNX05PUDM5 KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBfX3N0cmluZ2lmeShE T19TUEVDX0NUUkxfRU5UUlkgbWF5YmV4ZW49MSAgICAgICAgICAgICAgICAgICAgICAgXAogICAg ICAgICAgICAgICAgICAgICBpYnJzX3ZhbD1TUEVDX0NUUkxfSUJSUyksICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs