From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/7] x86/mm: Further restrict permissions on some virtual mappings Date: Tue, 2 May 2017 19:05:22 +0100 Message-ID: <1493748326-9582-4-git-send-email-andrew.cooper3@citrix.com> References: <1493748326-9582-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: <1493748326-9582-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org QXMgb3JpZ2luYWxseSByZXBvcnRlZCwgdGhlIExpbmVhciBQYWdldGFibGUgc2xvdCBtYXBzIDUx MkdCIG9mIHJhbSBhcyBSV1gsCndoZXJlIHRoZSBndWVzdCBoYXMgZnVsbCByZWFkIGFjY2VzcyBh bmQgYSBsb3Qgb2YgZGlyZWN0IG9yIGluZGlyZWN0IGNvbnRyb2wKb3ZlciB0aGUgd3JpdHRlbiBj b250ZW50LiAgSXQgaXNuJ3QgaGFyZCBmb3IgYSBQViBndWVzdCB0byBoaWRlIHNoZWxsY29kZQpo ZXJlLgoKVGhlcmVmb3JlLCBpbmNyZWFzZSBkZWZlbmNlIGluIGRlcHRoIGJ5IGF1ZGl0aW5nIG91 ciBjdXJyZW50IHBhZ2V0YWJsZQptYXBwaW5ncy4KCiAqIFRoZSByZWd1bGFyIGxpbmVhciwgc2hh ZG93IGxpbmVhciwgYW5kIHBlci1kb21haW4gc2xvdHMgaGF2ZSBubyBidXNpbmVzcwogICBiZWlu ZyBleGVjdXRhYmxlIChidXQgbmVlZCB0byBiZSB3cml0dGVuKSwgc28gYXJlIHVwZGF0ZWQgdG8g YmUgTlguCiAqIFRoZSBSZWFkIE9ubHkgbWFwcGluZ3Mgb2YgdGhlIE0yUCAoY29tcGF0IGFuZCBy ZWd1bGFyKSBkb24ndCBuZWVkIHRvIGJlCiAgIHdyaXRlYWJsZSBvciBleGVjdXRhYmxlLgogKiBU aGUgUFYgR0RUIG1hcHBpbmdzIGRvbid0IG5lZWQgdG8gYmUgZXhlY3V0YWJsZS4KClJlcG9ydGVk LWJ5OiBKYW5uIEhvcm4gPGphbm5oQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpC ZXVsaWNoQHN1c2UuY29tPgpDQzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNDOiBHZW9yZ2Ug RHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2Rv bWFpbi5jICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICB8 IDEwICsrKysrLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgICAgICB8ICA0ICsrLS0K IHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYyB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQog eGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jICAgICAgIHwgMTIgKysrKysrLS0tLS0tCiA1IGZpbGVz IGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9kb21haW4uYyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwppbmRleCA5MGUy YjFmLi5lZjhjMDVhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluLmMKKysrIGIveGVu L2FyY2gveDg2L2RvbWFpbi5jCkBAIC0yMDQwLDcgKzIwNDAsNyBAQCBzdGF0aWMgdm9pZCBfX2Nv bnRleHRfc3dpdGNoKHZvaWQpCiAKICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBOUl9SRVNFUlZF RF9HRFRfUEFHRVM7IGkrKyApCiAgICAgICAgICAgICBsMWVfd3JpdGUocGwxZSArIEZJUlNUX1JF U0VSVkVEX0dEVF9QQUdFICsgaSwKLSAgICAgICAgICAgICAgICAgICAgICBsMWVfZnJvbV9wZm4o bWZuICsgaSwgX19QQUdFX0hZUEVSVklTT1IpKTsKKyAgICAgICAgICAgICAgICAgICAgICBsMWVf ZnJvbV9wZm4obWZuICsgaSwgX19QQUdFX0hZUEVSVklTT1JfUlcpKTsKICAgICB9CiAKICAgICBp ZiAoIG5lZWRfZnVsbF9nZHQocGQpICYmCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBi L3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IGU2MzljZTIuLjc3YjBhZjEgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0zODQsNyArMzg0LDcg QEAgdm9pZCBfX2luaXQgYXJjaF9pbml0X21lbW9yeSh2b2lkKQogICAgICAgICAgICAgICAgICAg ICBmb3IgKCA7IGkgPCBMM19QQUdFVEFCTEVfRU5UUklFUzsgKytpICkKICAgICAgICAgICAgICAg ICAgICAgICAgIGwzdGFiW2ldID0gbDNlX2VtcHR5KCk7CiAgICAgICAgICAgICAgICAgICAgIHNw bGl0X2w0ZSA9IGw0ZV9mcm9tX3Bmbih2aXJ0X3RvX21mbihsM3RhYiksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1BBR0VfSFlQRVJWSVNPUik7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1BBR0VfSFlQRVJWSVNP Ul9SVyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg ICAgICAgICAgICAgKytyb290X3BndF9wdl94ZW5fc2xvdHM7CkBAIC0xNTg4LDkgKzE1ODgsOSBA QCB2b2lkIGluaXRfZ3Vlc3RfbDRfdGFibGUobDRfcGdlbnRyeV90IGw0dGFiW10sIGNvbnN0IHN0 cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICBzcGxpdF9sNGU7CiAjZW5kaWYKICAgICBsNHRh YltsNF90YWJsZV9vZmZzZXQoTElORUFSX1BUX1ZJUlRfU1RBUlQpXSA9Ci0gICAgICAgIGw0ZV9m cm9tX3Bmbihkb21haW5fcGFnZV9tYXBfdG9fbWZuKGw0dGFiKSwgX19QQUdFX0hZUEVSVklTT1Ip OworICAgICAgICBsNGVfZnJvbV9wZm4oZG9tYWluX3BhZ2VfbWFwX3RvX21mbihsNHRhYiksIF9f UEFHRV9IWVBFUlZJU09SX1JXKTsKICAgICBsNHRhYltsNF90YWJsZV9vZmZzZXQoUEVSRE9NQUlO X1ZJUlRfU1RBUlQpXSA9Ci0gICAgICAgIGw0ZV9mcm9tX3BhZ2UoZC0+YXJjaC5wZXJkb21haW5f bDNfcGcsIF9fUEFHRV9IWVBFUlZJU09SKTsKKyAgICAgICAgbDRlX2Zyb21fcGFnZShkLT5hcmNo LnBlcmRvbWFpbl9sM19wZywgX19QQUdFX0hZUEVSVklTT1JfUlcpOwogICAgIGlmICggemFwX3Jv X21wdCB8fCBpc19wdl8zMmJpdF9kb21haW4oZCkgfHwgcGFnaW5nX21vZGVfcmVmY291bnRzKGQp ICkKICAgICAgICAgbDR0YWJbbDRfdGFibGVfb2Zmc2V0KFJPX01QVF9WSVJUX1NUQVJUKV0gPSBs NGVfZW1wdHkoKTsKIH0KQEAgLTYzODAsNyArNjM4MCw3IEBAIGludCBjcmVhdGVfcGVyZG9tYWlu X21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyB2YSwKICAgICAgICAgfQog ICAgICAgICBsMnRhYiA9IF9fbWFwX2RvbWFpbl9wYWdlKHBnKTsKICAgICAgICAgY2xlYXJfcGFn ZShsMnRhYik7Ci0gICAgICAgIGwzdGFiW2wzX3RhYmxlX29mZnNldCh2YSldID0gbDNlX2Zyb21f cGFnZShwZywgX19QQUdFX0hZUEVSVklTT1IpOworICAgICAgICBsM3RhYltsM190YWJsZV9vZmZz ZXQodmEpXSA9IGwzZV9mcm9tX3BhZ2UocGcsIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKICAgICB9 CiAgICAgZWxzZQogICAgICAgICBsMnRhYiA9IG1hcF9kb21haW5fcGFnZShfbWZuKGwzZV9nZXRf cGZuKGwzdGFiW2wzX3RhYmxlX29mZnNldCh2YSldKSkpOwpAQCAtNjQyMiw3ICs2NDIyLDcgQEAg aW50IGNyZWF0ZV9wZXJkb21haW5fbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBs b25nIHZhLAogICAgICAgICAgICAgICAgIGwxdGFiID0gX19tYXBfZG9tYWluX3BhZ2UocGcpOwog ICAgICAgICAgICAgfQogICAgICAgICAgICAgY2xlYXJfcGFnZShsMXRhYik7Ci0gICAgICAgICAg ICAqcGwyZSA9IGwyZV9mcm9tX3BhZ2UocGcsIF9fUEFHRV9IWVBFUlZJU09SKTsKKyAgICAgICAg ICAgICpwbDJlID0gbDJlX2Zyb21fcGFnZShwZywgX19QQUdFX0hZUEVSVklTT1JfUlcpOwogICAg ICAgICB9CiAgICAgICAgIGVsc2UgaWYgKCAhbDF0YWIgKQogICAgICAgICAgICAgbDF0YWIgPSBt YXBfZG9tYWluX3BhZ2UoX21mbihsMmVfZ2V0X3BmbigqcGwyZSkpKTsKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCmluZGV4 IGI5ODE0MzIuLjg0NzYyNjkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMK KysrIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwpAQCAtNDA5LDExICs0MDksMTEgQEAgc3Rh dGljIHZvaWQgaGFwX2luc3RhbGxfeGVuX2VudHJpZXNfaW5fbDQoc3RydWN0IHZjcHUgKnYsIG1m bl90IGw0bWZuKQogICAgIC8qIEluc3RhbGwgdGhlIHBlci1kb21haW4gbWFwcGluZ3MgZm9yIHRo aXMgZG9tYWluICovCiAgICAgbDRlW2w0X3RhYmxlX29mZnNldChQRVJET01BSU5fVklSVF9TVEFS VCldID0KICAgICAgICAgbDRlX2Zyb21fcGZuKG1mbl94KHBhZ2VfdG9fbWZuKGQtPmFyY2gucGVy ZG9tYWluX2wzX3BnKSksCi0gICAgICAgICAgICAgICAgICAgICBfX1BBR0VfSFlQRVJWSVNPUik7 CisgICAgICAgICAgICAgICAgICAgICBfX1BBR0VfSFlQRVJWSVNPUl9SVyk7CiAKICAgICAvKiBJ bnN0YWxsIGEgbGluZWFyIG1hcHBpbmcgKi8KICAgICBsNGVbbDRfdGFibGVfb2Zmc2V0KExJTkVB Ul9QVF9WSVJUX1NUQVJUKV0gPQotICAgICAgICBsNGVfZnJvbV9wZm4obWZuX3gobDRtZm4pLCBf X1BBR0VfSFlQRVJWSVNPUik7CisgICAgICAgIGw0ZV9mcm9tX3BmbihtZm5feChsNG1mbiksIF9f UEFHRV9IWVBFUlZJU09SX1JXKTsKIAogICAgIHVubWFwX2RvbWFpbl9wYWdlKGw0ZSk7CiB9CmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMgYi94ZW4vYXJjaC94ODYv bW0vc2hhZG93L211bHRpLmMKaW5kZXggMmZiMDEyNS4uZjY1ZmZjNiAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cv bXVsdGkuYwpAQCAtMTQ3NSw3ICsxNDc1LDcgQEAgdm9pZCBzaF9pbnN0YWxsX3hlbl9lbnRyaWVz X2luX2w0KHN0cnVjdCBkb21haW4gKmQsIG1mbl90IGdsNG1mbiwgbWZuX3Qgc2w0bWZuKQogICAg IC8qIEluc3RhbGwgdGhlIHBlci1kb21haW4gbWFwcGluZ3MgZm9yIHRoaXMgZG9tYWluICovCiAg ICAgc2w0ZVtzaGFkb3dfbDRfdGFibGVfb2Zmc2V0KFBFUkRPTUFJTl9WSVJUX1NUQVJUKV0gPQog ICAgICAgICBzaGFkb3dfbDRlX2Zyb21fbWZuKHBhZ2VfdG9fbWZuKGQtPmFyY2gucGVyZG9tYWlu X2wzX3BnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1BBR0VfSFlQRVJWSVNPUik7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19QQUdFX0hZUEVSVklTT1JfUlcpOwogCiAg ICAgaWYgKCAhc2hhZG93X21vZGVfZXh0ZXJuYWwoZCkgJiYgIWlzX3B2XzMyYml0X2RvbWFpbihk KSAmJgogICAgICAgICAgIVZNX0FTU0lTVChkLCBtMnBfc3RyaWN0KSApCkBAIC0xNDg5LDcgKzE0 ODksNyBAQCB2b2lkIHNoX2luc3RhbGxfeGVuX2VudHJpZXNfaW5fbDQoc3RydWN0IGRvbWFpbiAq ZCwgbWZuX3QgZ2w0bWZuLCBtZm5fdCBzbDRtZm4pCiAgICAgICogbW9uaXRvciBwYWdldGFibGUg c3RydWN0dXJlLCB3aGljaCBpcyBidWlsdCBpbiBtYWtlX21vbml0b3JfdGFibGUKICAgICAgKiBh bmQgbWFpbnRhaW5lZCBieSBzaF91cGRhdGVfbGluZWFyX2VudHJpZXMuICovCiAgICAgc2w0ZVtz aGFkb3dfbDRfdGFibGVfb2Zmc2V0KFNIX0xJTkVBUl9QVF9WSVJUX1NUQVJUKV0gPQotICAgICAg ICBzaGFkb3dfbDRlX2Zyb21fbWZuKHNsNG1mbiwgX19QQUdFX0hZUEVSVklTT1IpOworICAgICAg ICBzaGFkb3dfbDRlX2Zyb21fbWZuKHNsNG1mbiwgX19QQUdFX0hZUEVSVklTT1JfUlcpOwogCiAg ICAgLyogU2VsZiBsaW5lYXIgbWFwcGluZy4gICovCiAgICAgaWYgKCBzaGFkb3dfbW9kZV90cmFu c2xhdGUoZCkgJiYgIXNoYWRvd19tb2RlX2V4dGVybmFsKGQpICkKQEAgLTE1MDEsNyArMTUwMSw3 IEBAIHZvaWQgc2hfaW5zdGFsbF94ZW5fZW50cmllc19pbl9sNChzdHJ1Y3QgZG9tYWluICpkLCBt Zm5fdCBnbDRtZm4sIG1mbl90IHNsNG1mbikKICAgICBlbHNlCiAgICAgewogICAgICAgICBzbDRl W3NoYWRvd19sNF90YWJsZV9vZmZzZXQoTElORUFSX1BUX1ZJUlRfU1RBUlQpXSA9Ci0gICAgICAg ICAgICBzaGFkb3dfbDRlX2Zyb21fbWZuKGdsNG1mbiwgX19QQUdFX0hZUEVSVklTT1IpOworICAg ICAgICAgICAgc2hhZG93X2w0ZV9mcm9tX21mbihnbDRtZm4sIF9fUEFHRV9IWVBFUlZJU09SX1JX KTsKICAgICB9CiAKICAgICB1bm1hcF9kb21haW5fcGFnZShzbDRlKTsKQEAgLTE2NTQsMTIgKzE2 NTQsMTIgQEAgc2hfbWFrZV9tb25pdG9yX3RhYmxlKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICAg ICAgbTNtZm4gPSBzaGFkb3dfYWxsb2MoZCwgU0hfdHlwZV9tb25pdG9yX3RhYmxlLCAwKTsKICAg ICAgICAgICAgIG1mbl90b19wYWdlKG0zbWZuKS0+c2hhZG93X2ZsYWdzID0gMzsKICAgICAgICAg ICAgIGw0ZVtzaGFkb3dfbDRfdGFibGVfb2Zmc2V0KFNIX0xJTkVBUl9QVF9WSVJUX1NUQVJUKV0K LSAgICAgICAgICAgICAgICA9IGw0ZV9mcm9tX3BmbihtZm5feChtM21mbiksIF9fUEFHRV9IWVBF UlZJU09SKTsKKyAgICAgICAgICAgICAgICA9IGw0ZV9mcm9tX3BmbihtZm5feChtM21mbiksIF9f UEFHRV9IWVBFUlZJU09SX1JXKTsKIAogICAgICAgICAgICAgbTJtZm4gPSBzaGFkb3dfYWxsb2Mo ZCwgU0hfdHlwZV9tb25pdG9yX3RhYmxlLCAwKTsKICAgICAgICAgICAgIG1mbl90b19wYWdlKG0y bWZuKS0+c2hhZG93X2ZsYWdzID0gMjsKICAgICAgICAgICAgIGwzZSA9IG1hcF9kb21haW5fcGFn ZShtM21mbik7Ci0gICAgICAgICAgICBsM2VbMF0gPSBsM2VfZnJvbV9wZm4obWZuX3gobTJtZm4p LCBfX1BBR0VfSFlQRVJWSVNPUik7CisgICAgICAgICAgICBsM2VbMF0gPSBsM2VfZnJvbV9wZm4o bWZuX3gobTJtZm4pLCBfX1BBR0VfSFlQRVJWSVNPUl9SVyk7CiAgICAgICAgICAgICB1bm1hcF9k b21haW5fcGFnZShsM2UpOwogCiAgICAgICAgICAgICBpZiAoIGlzX3B2XzMyYml0X2RvbWFpbihk KSApCkBAIC0xNjY4LDcgKzE2NjgsNyBAQCBzaF9tYWtlX21vbml0b3JfdGFibGUoc3RydWN0IHZj cHUgKnYpCiAgICAgICAgICAgICAgICAgICogYXJlYSBpbnRvIGl0cyB1c3VhbCBWQXMgaW4gdGhl IG1vbml0b3IgdGFibGVzICovCiAgICAgICAgICAgICAgICAgbTNtZm4gPSBzaGFkb3dfYWxsb2Mo ZCwgU0hfdHlwZV9tb25pdG9yX3RhYmxlLCAwKTsKICAgICAgICAgICAgICAgICBtZm5fdG9fcGFn ZShtM21mbiktPnNoYWRvd19mbGFncyA9IDM7Ci0gICAgICAgICAgICAgICAgbDRlWzBdID0gbDRl X2Zyb21fcGZuKG1mbl94KG0zbWZuKSwgX19QQUdFX0hZUEVSVklTT1IpOworICAgICAgICAgICAg ICAgIGw0ZVswXSA9IGw0ZV9mcm9tX3BmbihtZm5feChtM21mbiksIF9fUEFHRV9IWVBFUlZJU09S X1JXKTsKIAogICAgICAgICAgICAgICAgIG0ybWZuID0gc2hhZG93X2FsbG9jKGQsIFNIX3R5cGVf bW9uaXRvcl90YWJsZSwgMCk7CiAgICAgICAgICAgICAgICAgbWZuX3RvX3BhZ2UobTJtZm4pLT5z aGFkb3dfZmxhZ3MgPSAyOwpAQCAtMzgzOCw3ICszODM4LDcgQEAgc2hfdXBkYXRlX2xpbmVhcl9l bnRyaWVzKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICB7CiAgICAgICAgICAgICBfX2xpbmVhcl9s NF90YWJsZVtsNF9saW5lYXJfb2Zmc2V0KFNIX0xJTkVBUl9QVF9WSVJUX1NUQVJUKV0gPQogICAg ICAgICAgICAgICAgIGw0ZV9mcm9tX3BmbihwYWdldGFibGVfZ2V0X3Bmbih2LT5hcmNoLnNoYWRv d190YWJsZVswXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fUEFHRV9IWVBFUlZJ U09SKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19QQUdFX0hZUEVSVklTT1JfUlcp OwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewpAQCAtMzg0Niw3ICszODQ2LDcg QEAgc2hfdXBkYXRlX2xpbmVhcl9lbnRyaWVzKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICAgICAg bWw0ZSA9IG1hcF9kb21haW5fcGFnZShwYWdldGFibGVfZ2V0X21mbih2LT5hcmNoLm1vbml0b3Jf dGFibGUpKTsKICAgICAgICAgICAgIG1sNGVbbDRfdGFibGVfb2Zmc2V0KFNIX0xJTkVBUl9QVF9W SVJUX1NUQVJUKV0gPQogICAgICAgICAgICAgICAgIGw0ZV9mcm9tX3BmbihwYWdldGFibGVfZ2V0 X3Bmbih2LT5hcmNoLnNoYWRvd190YWJsZVswXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF9fUEFHRV9IWVBFUlZJU09SKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19Q QUdFX0hZUEVSVklTT1JfUlcpOwogICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobWw0ZSk7 CiAgICAgICAgIH0KICAgICB9CkBAIC0zOTAyLDcgKzM5MDIsNyBAQCBzaF91cGRhdGVfbGluZWFy X2VudHJpZXMoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgICAgICBtbDJlW2ldID0KICAgICAgICAg ICAgICAgICAoc2hhZG93X2wzZV9nZXRfZmxhZ3Moc2wzZVtpXSkgJiBfUEFHRV9QUkVTRU5UKQog ICAgICAgICAgICAgICAgID8gbDJlX2Zyb21fcGZuKG1mbl94KHNoYWRvd19sM2VfZ2V0X21mbihz bDNlW2ldKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19QQUdFX0hZUEVSVklT T1IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19QQUdFX0hZUEVSVklTT1JfUlcp CiAgICAgICAgICAgICAgICAgOiBsMmVfZW1wdHkoKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKaW5k ZXggMzRmMzI1MC4uYWMzNThhOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5j CisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwpAQCAtNDcwLDcgKzQ3MCw3IEBAIHN0YXRp YyBpbnQgc2V0dXBfbTJwX3RhYmxlKHN0cnVjdCBtZW1faG90YWRkX2luZm8gKmluZm8pCiAgICAg ICAgICAgICAgICAgY2xlYXJfcGFnZShsMl9yb19tcHQpOwogICAgICAgICAgICAgICAgIGwzZV93 cml0ZSgmbDNfcm9fbXB0W2wzX3RhYmxlX29mZnNldCh2YSldLAogICAgICAgICAgICAgICAgICAg ICAgICAgICBsM2VfZnJvbV9wYWRkcihfX3BhKGwyX3JvX21wdCksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF9fUEFHRV9IWVBFUlZJU09SIHwgX1BBR0VfVVNFUikp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1BBR0VfSFlQRVJW SVNPUl9STyB8IF9QQUdFX1VTRVIpKTsKICAgICAgICAgICAgICAgICBsMl9yb19tcHQgKz0gbDJf dGFibGVfb2Zmc2V0KHZhKTsKICAgICAgICAgICAgIH0KIApAQCAtNTE1LDcgKzUxNSw3IEBAIHZv aWQgX19pbml0IHBhZ2luZ19pbml0KHZvaWQpCiAgICAgICAgICAgICBsM19yb19tcHQgPSBwYWdl X3RvX3ZpcnQobDNfcGcpOwogICAgICAgICAgICAgY2xlYXJfcGFnZShsM19yb19tcHQpOwogICAg ICAgICAgICAgbDRlX3dyaXRlKCZpZGxlX3BnX3RhYmxlW2w0X3RhYmxlX29mZnNldCh2YSldLAot ICAgICAgICAgICAgICAgICAgICAgIGw0ZV9mcm9tX3BhZ2UobDNfcGcsIF9fUEFHRV9IWVBFUlZJ U09SKSk7CisgICAgICAgICAgICAgICAgICAgICAgbDRlX2Zyb21fcGFnZShsM19wZywgX19QQUdF X0hZUEVSVklTT1JfUlcpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNTI1LDcgKzUyNSw3IEBA IHZvaWQgX19pbml0IHBhZ2luZ19pbml0KHZvaWQpCiAgICAgbDNfcm9fbXB0ID0gcGFnZV90b192 aXJ0KGwzX3BnKTsKICAgICBjbGVhcl9wYWdlKGwzX3JvX21wdCk7CiAgICAgbDRlX3dyaXRlKCZp ZGxlX3BnX3RhYmxlW2w0X3RhYmxlX29mZnNldChST19NUFRfVklSVF9TVEFSVCldLAotICAgICAg ICAgICAgICBsNGVfZnJvbV9wYWdlKGwzX3BnLCBfX1BBR0VfSFlQRVJWSVNPUiB8IF9QQUdFX1VT RVIpKTsKKyAgICAgICAgICAgICAgbDRlX2Zyb21fcGFnZShsM19wZywgX19QQUdFX0hZUEVSVklT T1JfUk8gfCBfUEFHRV9VU0VSKSk7CiAKICAgICAvKgogICAgICAqIEFsbG9jYXRlIGFuZCBtYXAg dGhlIG1hY2hpbmUtdG8tcGh5cyB0YWJsZS4KQEAgLTYxMiw3ICs2MTIsNyBAQCB2b2lkIF9faW5p dCBwYWdpbmdfaW5pdCh2b2lkKQogICAgICAgICAgICAgbDJfcm9fbXB0ID0gcGFnZV90b192aXJ0 KGwyX3BnKTsKICAgICAgICAgICAgIGNsZWFyX3BhZ2UobDJfcm9fbXB0KTsKICAgICAgICAgICAg IGwzZV93cml0ZSgmbDNfcm9fbXB0W2wzX3RhYmxlX29mZnNldCh2YSldLAotICAgICAgICAgICAg ICAgICAgICAgIGwzZV9mcm9tX3BhZ2UobDJfcGcsIF9fUEFHRV9IWVBFUlZJU09SIHwgX1BBR0Vf VVNFUikpOworICAgICAgICAgICAgICAgICAgICAgIGwzZV9mcm9tX3BhZ2UobDJfcGcsIF9fUEFH RV9IWVBFUlZJU09SX1JPIHwgX1BBR0VfVVNFUikpOwogICAgICAgICAgICAgQVNTRVJUKCFsMl90 YWJsZV9vZmZzZXQodmEpKTsKICAgICAgICAgfQogICAgICAgICAvKiBOQi4gQ2Fubm90IGJlIEdM T0JBTDogZ3Vlc3QgdXNlciBtb2RlIHNob3VsZCBub3Qgc2VlIGl0LiAqLwpAQCAtNjM0LDcgKzYz NCw3IEBAIHZvaWQgX19pbml0IHBhZ2luZ19pbml0KHZvaWQpCiAgICAgY29tcGF0X2lkbGVfcGdf dGFibGVfbDIgPSBsMl9yb19tcHQ7CiAgICAgY2xlYXJfcGFnZShsMl9yb19tcHQpOwogICAgIGwz ZV93cml0ZSgmbDNfcm9fbXB0W2wzX3RhYmxlX29mZnNldChISVJPX0NPTVBBVF9NUFRfVklSVF9T VEFSVCldLAotICAgICAgICAgICAgICBsM2VfZnJvbV9wYWRkcihfX3BhKGwyX3JvX21wdCksIF9f UEFHRV9IWVBFUlZJU09SKSk7CisgICAgICAgICAgICAgIGwzZV9mcm9tX3BhZGRyKF9fcGEobDJf cm9fbXB0KSwgX19QQUdFX0hZUEVSVklTT1JfUk8pKTsKICAgICBsMl9yb19tcHQgKz0gbDJfdGFi bGVfb2Zmc2V0KEhJUk9fQ09NUEFUX01QVF9WSVJUX1NUQVJUKTsKICAgICAvKiBBbGxvY2F0ZSBh bmQgbWFwIHRoZSBjb21wYXRpYmlsaXR5IG1vZGUgbWFjaGluZS10by1waHlzIHRhYmxlLiAqLwog ICAgIG1wdF9zaXplID0gKG1wdF9zaXplID4+IDEpICsgKDFVTCA8PCAoTDJfUEFHRVRBQkxFX1NI SUZUIC0gMSkpOwpAQCAtNjc5LDcgKzY3OSw3IEBAIHZvaWQgX19pbml0IHBhZ2luZ19pbml0KHZv aWQpCiAKICAgICAvKiBTZXQgdXAgbGluZWFyIHBhZ2UgdGFibGUgbWFwcGluZy4gKi8KICAgICBs NGVfd3JpdGUoJmlkbGVfcGdfdGFibGVbbDRfdGFibGVfb2Zmc2V0KExJTkVBUl9QVF9WSVJUX1NU QVJUKV0sCi0gICAgICAgICAgICAgIGw0ZV9mcm9tX3BhZGRyKF9fcGEoaWRsZV9wZ190YWJsZSks IF9fUEFHRV9IWVBFUlZJU09SKSk7CisgICAgICAgICAgICAgIGw0ZV9mcm9tX3BhZGRyKF9fcGEo aWRsZV9wZ190YWJsZSksIF9fUEFHRV9IWVBFUlZJU09SX1JXKSk7CiAgICAgcmV0dXJuOwogCiAg bm9tZW06Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=