From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mihai =?UTF-8?B?RG9uyJt1?= Subject: Re: [PATCH v4] xmalloc: add support for checking the pool integrity Date: Tue, 12 May 2015 21:14:50 +0300 Message-ID: <20150512211450.3658555e@bitdefender.com> References: <1418758405-32200-1-git-send-email-mdontu@bitdefender.com> <54AD8706.5020802@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <54AD8706.5020802@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Andrew Cooper Cc: keir@xen.org, ian.campbell@citrix.com, tim@xen.org, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org T24gV2VkbmVzZGF5IDA3IEphbnVhcnkgMjAxNSAxOToyMDozOCBBbmRyZXcgQ29vcGVyIHdyb3Rl Ogo+IE9uIDE2LzEyLzE0IDE5OjMzLCBNaWhhaSBEb27Im3Ugd3JvdGU6Cj4gPiBJbXBsZW1lbnRl ZCB4bWVtX3Bvb2xfY2hlY2soKSwgeG1lbV9wb29sX2NoZWNrX2xvY2tlZCgpIGFuZAo+ID4geG1l bV9wb29sX2NoZWNrX3VubG9ja2VkKCkgdG8gdmVyaXR5IHRoZSBpbnRlZ3JpdHkgb2YgdGhlIFRM U0YgbWF0cml4Lgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IE1paGFpIERvbsibdSA8bWRvbnR1QGJp dGRlZmVuZGVyLmNvbT4KPiAKPiBUaGlzIHJldmlldyBzdXBlcnNlZGVzIChhbmQgaXMgYWRqdXN0 ZWQgYWNjb3JkaW5nbHkgZm9yKSB0aGUgdHdvCj4gZGlzY3Vzc2lvbiB0aHJlYWRzIHdoaWNoIGhh cHBlbmVkIG9mZiBteSBmaXJzdCByZXZpZXcuCj4gCj4gPgo+ID4gLS0tCj4gPiBDaGFuZ2VzIHNp bmNlIHYzOgo+ID4gIC0gdHJ5IGhhcmRlciB0byByZXNwZWN0IHRoZSA4MCBjb2x1bW4gbGltaXQK PiA+ICAtIHVzZSAndW5zaWduZWQgaW50JyBpbnN0ZWFkIG9mICdpbnQnIHdoZXJlIHBvc3NpYmxl Cj4gPiAgLSBtYWRlIHRoZSBsb2dnZWQgbWVzc2FnZXMgZXZlbiBzaG9ydGVyCj4gPiAgLSBkcm9w cGVkIHRoZSB1c2Ugb2YgZ290byAoZGlkbid0IHJlYWxseSBtYWtlIHNlbnNlKQo+ID4KPiA+IENo YW5nZXMgc2luY2UgdjI6Cj4gPiAgLSBwcmludCB0aGUgbmFtZSBvZiB0aGUgY29ycnVwdGVkIHBv b2wKPiA+ICAtIGFkanVzdGVkIHRoZSBtZXNzYWdlcyB0byBiZXR0ZXIgZml0IHdpdGhpbiA4MCBj b2x1bW5zCj4gPiAgLSBtaW5vciBzdHlsZSBjaGFuZ2UgKGEgPyBhIDogYiAtPiBhID86IGIpCj4g Pgo+ID4gQ2hhbmdlcyBzaW5jZSB2MToKPiA+ICAtIGZpeGVkIHRoZSBjb2RpbmdzdHlsZQo+ID4g IC0gc3dhcGVkIF9sb2NrZWQvX3VubG9ja2VkIG5hbWluZwo+ID4gIC0gcmV3b3JrZWQgX194bWVt X3Bvb2xfY2hlY2tfbG9ja2VkKCkgYSBiaXQKPiA+ICAtIHVzZWQgYm9vbF90IHdoZXJlIGFwcHJv cHJpYXRlCj4gPiAgLSBtYWRlIHhtZW1fcG9vbF9jaGVjaygpIHRha2UgYSBwb29sIGFyZ3VtZW50 IHdoaWNoIGNhbiBiZSBOVUxMCj4gPiAtLS0KPiA+ICB4ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5j IHwgMTIxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ ICB4ZW4vaW5jbHVkZS94ZW4veG1hbGxvYy5oIHwgICA3ICsrKwo+ID4gIDIgZmlsZXMgY2hhbmdl ZCwgMTI2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBh L3hlbi9jb21tb24veG1hbGxvY190bHNmLmMgYi94ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jCj4g PiBpbmRleCBhNTc2OWM5Li5lY2E0ZjFjIDEwMDY0NAo+ID4gLS0tIGEveGVuL2NvbW1vbi94bWFs bG9jX3Rsc2YuYwo+ID4gKysrIGIveGVuL2NvbW1vbi94bWFsbG9jX3Rsc2YuYwo+ID4gQEAgLTEy MCw5ICsxMjAsMTIyIEBAIHN0cnVjdCB4bWVtX3Bvb2wgewo+ID4gICAgICBjaGFyIG5hbWVbTUFY X1BPT0xfTkFNRV9MRU5dOwo+ID4gIH07Cj4gPiAgCj4gPiArc3RhdGljIHN0cnVjdCB4bWVtX3Bv b2wgKnhlbnBvb2w7Cj4gPiArCj4gPiArc3RhdGljIGlubGluZSB2b2lkIE1BUFBJTkdfSU5TRVJU KHVuc2lnbmVkIGxvbmcgciwgaW50ICpmbCwgaW50ICpzbCk7Cj4gPiArCj4gPiAgLyoKPiA+ICAg KiBIZWxwaW5nIGZ1bmN0aW9ucwo+ID4gICAqLwo+ID4gKyNpZm5kZWYgTkRFQlVHCj4gPiArc3Rh dGljIGJvb2xfdCB4bWVtX3Bvb2xfY2hlY2tfc2l6ZShjb25zdCBzdHJ1Y3QgeG1lbV9wb29sICpw b29sLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZsLCBpbnQg c2wpCj4gPiArewo+ID4gKyAgICBjb25zdCBzdHJ1Y3QgYmhkciAqYiA9IHBvb2wtPm1hdHJpeFtm bF1bc2xdOwo+ID4gKwo+ID4gKyAgICB3aGlsZSAoIGIgKQo+ID4gKyAgICB7Cj4gPiArICAgICAg ICBpbnQgX19mbDsKPiA+ICsgICAgICAgIGludCBfX3NsOwo+ID4gKwo+ID4gKyAgICAgICAgTUFQ UElOR19JTlNFUlQoYi0+c2l6ZSwgJl9fZmwsICZfX3NsKTsKPiA+ICsgICAgICAgIGlmICggX19m bCAhPSBmbCB8fCBfX3NsICE9IHNsICkKPiA+ICsgICAgICAgIHsKPiA+ICsgICAgICAgICAgICBw cmludGsoWEVOTE9HX0VSUgo+ID4gKyAgICAgICAgICAgICAgICAgICAieG1lbV9wb29sOiAlczog bWlzcGxhY2VkIGJsb2NrICVwOiV1ICh7JWQsJWR9IC0+IHslZCwlZH0pXG4iLAo+ID4gKyAgICAg ICAgICAgICAgICAgICBwb29sLT5uYW1lLCBiLCBiLT5zaXplLCBmbCwgc2wsIF9fZmwsIF9fc2wp Owo+IAo+IElzIGl0IGxpYWJsZSB0byBnZXQgY29uZnVzaW5nIHdpdGggYSBoZXggbnVtYmVyIGFu ZCBhIGRlY2ltYWwgbnVtYmVyCj4gY29tYmluZWQgd2l0aCBqdXN0IGEgY29sb24/Cj4gCj4gSXMg YiBldmVuIGEgdXNlZnVsIHBvaW50ZXIgdG8gcHJpbnQ/IFlvdSBoYXZlIHRoZSBwb29sIG5hbWUs IGluZGljaWVzCj4gYW5kIHNpemUgd2hpY2ggc2VlbSB0byBiZSB0aGUgc2FsaWVudCBpbmZvcm1h dGlvbi4KPiAKCkkgdGhpbmsgeW91IGFyZSByaWdodC4gSSB3ZW50IGFoZWFkIGFuZCBwcmludGVk IGFsbCBpbmZvcm1hdGlvbgphdmFpbGFibGUganVzdCBiZWNhdXNlIEkgaGFkIGFjY2VzcyB0byBp dCB0aGlua2luZyBzb21lb25lIG90aGVyIHRoYW4KbXlzZWxmIG1pZ2h0IGZpbmQgaXQgdmFsdWFi bGUuCgo+ID4gKyAgICAgICAgICAgIHJldHVybiAwOwo+ID4gKyAgICAgICAgfQo+ID4gKyAgICAg ICAgYiA9IGItPnB0ci5mcmVlX3B0ci5uZXh0Owo+ID4gKyAgICB9Cj4gPiArICAgIHJldHVybiAx Owo+ID4gK30KPiA+ICsKPiA+ICsvKgo+ID4gKyAqIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxs ZWQgZnJvbSBhIGNvbnRleHQgd2hlcmUgcG9vbC0+bG9jayBpcwo+ID4gKyAqIGFscmVhZHkgYWNx dWlyZWQuCj4gPiArICoKPiA+ICsgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHBvb2wgaGFzIGJlZW4g Y29ycnVwdGVkLCBmYWxzZSBvdGhlcndpc2UKPiA+ICsgKi8KPiA+ICsjZGVmaW5lIHhtZW1fcG9v bF9jaGVja19sb2NrZWQocG9vbCkgXAo+ID4gKyAgICBfX3htZW1fcG9vbF9jaGVja19sb2NrZWQo X19GSUxFX18sIF9fTElORV9fLCBwb29sKQo+ID4gK3N0YXRpYyBib29sX3QgX194bWVtX3Bvb2xf Y2hlY2tfbG9ja2VkKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB4bWVtX3Bvb2wgKnBvb2wp Cj4gPiArewo+ID4gKyAgICB1bnNpZ25lZCBpbnQgaTsKPiA+ICsgICAgc3RhdGljIGJvb2xfdCBv bmNlID0gMTsKPiA+ICsKPiA+ICsgICAgaWYgKCAhb25jZSApCj4gPiArICAgICAgICByZXR1cm4g MTsKPiA+ICsgICAgZm9yICggaSA9IDA7IGkgPCBSRUFMX0ZMSTsgaSsrICkKPiA+ICsgICAgewo+ ID4gKyAgICAgICAgaW50IGZsID0gKHBvb2wtPmZsX2JpdG1hcCAmICgxIDw8IGkpKSA/IGkgOiAt MTsKPiA+ICsKPiA+ICsgICAgICAgIGlmICggZmwgPj0gMCApCj4gPiArICAgICAgICB7Cj4gPiAr ICAgICAgICAgICAgdW5zaWduZWQgaW50IGo7Cj4gPiArCj4gPiArICAgICAgICAgICAgaWYgKCAh cG9vbC0+c2xfYml0bWFwW2ZsXSApCj4gPiArICAgICAgICAgICAgewo+ID4gKyAgICAgICAgICAg ICAgICBwcmludGsoWEVOTE9HX0VSUgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgInhtZW1f cG9vbDogJXM6IFRMU0YgYml0bWFwIGNvcnJ1cHQgKCFlbXB0eSBGTCwgZW1wdHkgU0wpXG4iLAo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcG9vbC0+bmFtZSk7Cj4gPiArICAgICAgICAgICAg ICAgIF9fd2FybihmaWxlLCBsaW5lKTsKPiA+ICsgICAgICAgICAgICAgICAgb25jZSA9IDA7Cj4g PiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgICAgICAgIH0KPiA+ICsgICAgICAg ICAgICBmb3IgKCBqID0gMDsgaiA8IE1BWF9TTEk7IGorKyApCj4gPiArICAgICAgICAgICAgewo+ ID4gKyAgICAgICAgICAgICAgICBpbnQgc2wgPSAocG9vbC0+c2xfYml0bWFwW2ZsXSAmICgxIDw8 IGopKSA/IGogOiAtMTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICAgaWYgKCBzbCA8IDAgKQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gPiArICAgICAgICAgICAgICAgIGlm ICggIXBvb2wtPm1hdHJpeFtmbF1bc2xdICkKPiA+ICsgICAgICAgICAgICAgICAgewo+ID4gKyAg ICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAieG1lbV9wb29sOiAlczogVExTRiBiaXRtYXAgY29ycnVwdCAoIW1hdHJpeFsl ZF1bJWRdKVxuIiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBwb29sLT5uYW1lLCBm bCwgc2wpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgX193YXJuKGZpbGUsIGxpbmUpOwo+ID4g KyAgICAgICAgICAgICAgICAgICAgb25jZSA9IDA7Cj4gPiArICAgICAgICAgICAgICAgICAgICBi cmVhazsKPiA+ICsgICAgICAgICAgICAgICAgfQo+ID4gKyAgICAgICAgICAgICAgICBpZiAoICF4 bWVtX3Bvb2xfY2hlY2tfc2l6ZShwb29sLCBmbCwgc2wpICkKPiA+ICsgICAgICAgICAgICAgICAg ewo+ID4gKyAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgInhtZW1fcG9vbDog JXM6IFRMU0YgY2h1bmsgbWF0cml4IGNvcnJ1cHRcbiIsCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgcG9vbC0+bmFtZSk7Cj4gPiArICAgICAgICAgICAgICAgICAgICBfX3dhcm4oZmls ZSwgbGluZSk7Cj4gPiArICAgICAgICAgICAgICAgICAgICBvbmNlID0gMDsKPiA+ICsgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgICAgICAgICAgICB9Cj4gPiArICAgICAgICAg ICAgfQo+ID4gKyAgICAgICAgICAgIGlmICggIW9uY2UgKQo+ID4gKyAgICAgICAgICAgICAgICBi cmVhazsKPiA+ICsgICAgICAgIH0KPiA+ICsgICAgfQo+ID4gKyAgICByZXR1cm4gIW9uY2U7Cj4g PiArfQo+IAo+IEkgd2FudCB0byByZW1vdmUgX19idWcoKSBhbmQgX193YXJuKCkgYmVjYXVzZSB0 aGV5IGFyZSBjdXJyZW50bHkgdW51c2VkCj4gaW4gdGhlIGNvZGUsIGFuZCBhcmUgYSBjbHVkZ2Ug b24gQVJNIChsYWNrIG9mIHdvcmtpbmcKPiBydW5faW5fZXhjZXB0aW9uX2hhbmRsZXIoKSkuICBZ b3UgY2FuIHVzZSBCVUcoKS9XQVJOKCkgaW5zdGVhZCwgd2hpY2gKPiB3aWxsIHdvcmsgYXMgZXhw ZWN0ZWQgQVJNLgo+IAo+IEhvd2V2ZXIsIG9uY2UgbWVtb3J5IGNvcnJ1cHRpb24gaGFzIGJlZW4g ZGV0ZWN0ZWQsIGFsbCBiZXRzIGFyZSBvZmYKPiByZWdhcmRpbmcgY29ycmVjdCBmdW5jdGlvbmlu ZyBvZiB0aGUgaG9zdC4gIEkgd291bGQgc3VnZ2VzdCBwcmludGluZyBhcwo+IG11Y2ggZXJyb3Ig aW5mb3JtYXRpb24gYXMgcG9zc2libGUgYW5kIHVzaW5nIEJVRygpIHRvIGJyaW5nIFhlbiBkb3du LiAKPiBUaGlzIGFsbG93cyB5b3UgdG8gcmVtb3ZlICdvbmNlJyAoZHViaW91cyBiZWluZyBzdGF0 aWMsIHlldCBhcHBseWluZyB0bwo+IGFyYml0cmFyeSB4bWVtIHBvb2xzKSwgYW5kIHRvIGNoYW5n ZSB0aGUgZnVuY3Rpb24gdG8gYmUgdm9pZC4KPiAKCkkgdXNlZCB0aGUgJ29uY2UnIHZhcmlhYmxl IHRvIGtlZXAgdGhlIGNvZGUgZnJvbSBzcGFtbWluZyBkbWVzZy4gSQpmaWd1cmVkIG9uY2Ugb25l IHNlZXMgdGhlIG1lc3NhZ2UsIGhlL3NoZSBrbm93cyB0aGluZ3MgYXJlIGFib3V0IHRvIGdvCmRv d25oaWxsLgoKSSB3aWxsIHVzZSBCVUcoKS4KCj4gPiArCj4gPiArI2RlZmluZSB4bWVtX3Bvb2xf Y2hlY2tfdW5sb2NrZWQocG9vbCkgXAo+ID4gKyAgICBfX3htZW1fcG9vbF9jaGVja191bmxvY2tl ZChfX0ZJTEVfXywgX19MSU5FX18sIHBvb2wpCj4gPiArc3RhdGljIGJvb2xfdCBfX3htZW1fcG9v bF9jaGVja191bmxvY2tlZChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4bWVtX3Bvb2wgKnBvb2wp Cj4gPiArewo+ID4gKyAgICBib29sX3Qgb29wczsKPiA+ICsKPiA+ICsgICAgc3Bpbl9sb2NrKCZw b29sLT5sb2NrKTsKPiA+ICsgICAgb29wcyA9IF9feG1lbV9wb29sX2NoZWNrX2xvY2tlZChmaWxl LCBsaW5lLCBwb29sKTsKPiA+ICsgICAgc3Bpbl91bmxvY2soJnBvb2wtPmxvY2spOwo+ID4gKyAg ICByZXR1cm4gb29wczsKPiA+ICt9Cj4gPiArCj4gPiArYm9vbF90IF9feG1lbV9wb29sX2NoZWNr KGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCBzdHJ1Y3QgeG1lbV9wb29sICpwb29sKQo+ID4g K3sKPiA+ICsgICAgcmV0dXJuIF9feG1lbV9wb29sX2NoZWNrX3VubG9ja2VkKGZpbGUsIGxpbmUs IHBvb2wgPzogeGVucG9vbCk7Cj4gPiArfQo+ID4gKyNlbHNlCj4gPiArI2RlZmluZSB4bWVtX3Bv b2xfY2hlY2tfbG9ja2VkKHBvb2wpICgodm9pZCkocG9vbCkpCj4gPiArI2RlZmluZSB4bWVtX3Bv b2xfY2hlY2tfdW5sb2NrZWQocG9vbCkgKCh2b2lkKShwb29sKSkKPiA+ICsjZW5kaWYKPiA+ICAK PiA+ICAvKioKPiA+ICAgKiBSZXR1cm5zIGluZGV4ZXMgKGZsLCBzbCkgb2YgdGhlIGxpc3QgdXNl ZCB0byBzZXJ2ZSByZXF1ZXN0IG9mIHNpemUgcgo+ID4gQEAgLTM4MSw2ICs0OTQsOCBAQCB2b2lk ICp4bWVtX3Bvb2xfYWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCBzdHJ1Y3QgeG1lbV9wb29sICpw b29sKQo+ID4gICAgICBpbnQgZmwsIHNsOwo+ID4gICAgICB1bnNpZ25lZCBsb25nIHRtcF9zaXpl Owo+ID4gIAo+ID4gKyAgICB4bWVtX3Bvb2xfY2hlY2tfdW5sb2NrZWQocG9vbCk7Cj4gPiArCj4g PiAgICAgIGlmICggcG9vbC0+aW5pdF9yZWdpb24gPT0gTlVMTCApCj4gPiAgICAgIHsKPiA+ICAg ICAgICAgIGlmICggKHJlZ2lvbiA9IHBvb2wtPmdldF9tZW0ocG9vbC0+aW5pdF9zaXplKSkgPT0g TlVMTCApCj4gPiBAQCAtNDQyLDExICs1NTcsMTMgQEAgdm9pZCAqeG1lbV9wb29sX2FsbG9jKHVu c2lnbmVkIGxvbmcgc2l6ZSwgc3RydWN0IHhtZW1fcG9vbCAqcG9vbCkKPiA+ICAKPiA+ICAgICAg cG9vbC0+dXNlZF9zaXplICs9IChiLT5zaXplICYgQkxPQ0tfU0laRV9NQVNLKSArIEJIRFJfT1ZF UkhFQUQ7Cj4gPiAgCj4gPiArICAgIHhtZW1fcG9vbF9jaGVja19sb2NrZWQocG9vbCk7Cj4gPiAg ICAgIHNwaW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKPiA+ICAgICAgcmV0dXJuICh2b2lkICopYi0+ cHRyLmJ1ZmZlcjsKPiA+ICAKPiA+ICAgICAgLyogRmFpbGVkIGFsbG9jICovCj4gPiAgIG91dF9s b2NrZWQ6Cj4gPiArICAgIHhtZW1fcG9vbF9jaGVja19sb2NrZWQocG9vbCk7Cj4gPiAgICAgIHNw aW5fdW5sb2NrKCZwb29sLT5sb2NrKTsKPiA+ICAKPiA+ICAgb3V0Ogo+ID4gQEAgLTQ2NCw2ICs1 ODEsNyBAQCB2b2lkIHhtZW1fcG9vbF9mcmVlKHZvaWQgKnB0ciwgc3RydWN0IHhtZW1fcG9vbCAq cG9vbCkKPiA+ICAgICAgYiA9IChzdHJ1Y3QgYmhkciAqKSgoY2hhciAqKSBwdHIgLSBCSERSX09W RVJIRUFEKTsKPiA+ICAKPiA+ICAgICAgc3Bpbl9sb2NrKCZwb29sLT5sb2NrKTsKPiA+ICsgICAg eG1lbV9wb29sX2NoZWNrX2xvY2tlZChwb29sKTsKPiA+ICAgICAgYi0+c2l6ZSB8PSBGUkVFX0JM T0NLOwo+ID4gICAgICBwb29sLT51c2VkX3NpemUgLT0gKGItPnNpemUgJiBCTE9DS19TSVpFX01B U0spICsgQkhEUl9PVkVSSEVBRDsKPiA+ICAgICAgYi0+cHRyLmZyZWVfcHRyID0gKHN0cnVjdCBm cmVlX3B0cikgeyBOVUxMLCBOVUxMfTsKPiA+IEBAIC01MDAsNiArNjE4LDcgQEAgdm9pZCB4bWVt X3Bvb2xfZnJlZSh2b2lkICpwdHIsIHN0cnVjdCB4bWVtX3Bvb2wgKnBvb2wpCj4gPiAgICAgIHRt cF9iLT5zaXplIHw9IFBSRVZfRlJFRTsKPiA+ICAgICAgdG1wX2ItPnByZXZfaGRyID0gYjsKPiA+ ICAgb3V0Ogo+ID4gKyAgICB4bWVtX3Bvb2xfY2hlY2tfbG9ja2VkKHBvb2wpOwo+ID4gICAgICBz cGluX3VubG9jaygmcG9vbC0+bG9jayk7Cj4gPiAgfQo+ID4gIAo+ID4gQEAgLTUxMiw4ICs2MzEs NiBAQCBpbnQgeG1lbV9wb29sX21heGFsbG9jKHN0cnVjdCB4bWVtX3Bvb2wgKnBvb2wpCj4gPiAg ICogR2x1ZSBmb3IgeG1hbGxvYygpLgo+ID4gICAqLwo+ID4gIAo+ID4gLXN0YXRpYyBzdHJ1Y3Qg eG1lbV9wb29sICp4ZW5wb29sOwo+ID4gLQo+ID4gIHN0YXRpYyB2b2lkICp4bWFsbG9jX3Bvb2xf Z2V0KHVuc2lnbmVkIGxvbmcgc2l6ZSkKPiA+ICB7Cj4gPiAgICAgIEFTU0VSVChzaXplID09IFBB R0VfU0laRSk7Cj4gPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3htYWxsb2MuaCBiL3hl bi9pbmNsdWRlL3hlbi94bWFsbG9jLmgKPiA+IGluZGV4IDI0YTk5YWMuLmFkNDg5MzAgMTAwNjQ0 Cj4gPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4veG1hbGxvYy5oCj4gPiArKysgYi94ZW4vaW5jbHVk ZS94ZW4veG1hbGxvYy5oCj4gPiBAQCAtMTIzLDQgKzEyMywxMSBAQCB1bnNpZ25lZCBsb25nIHht ZW1fcG9vbF9nZXRfdXNlZF9zaXplKHN0cnVjdCB4bWVtX3Bvb2wgKnBvb2wpOwo+ID4gICAqLwo+ ID4gIHVuc2lnbmVkIGxvbmcgeG1lbV9wb29sX2dldF90b3RhbF9zaXplKHN0cnVjdCB4bWVtX3Bv b2wgKnBvb2wpOwo+ID4gIAo+ID4gKyNpZm5kZWYgTkRFQlVHCj4gPiArI2RlZmluZSB4bWVtX3Bv b2xfY2hlY2socG9vbCkgX194bWVtX3Bvb2xfY2hlY2soX19GSUxFX18sIF9fTElORV9fLCBwb29s KQo+ID4gK2Jvb2xfdCBfX3htZW1fcG9vbF9jaGVjayhjb25zdCBjaGFyICpmaWxlLCBpbnQgbGlu ZSwgc3RydWN0IHhtZW1fcG9vbCAqcG9vbCk7Cj4gPiArI2Vsc2UKPiA+ICsjZGVmaW5lIHhtZW1f cG9vbF9jaGVjayhwb29sKSAoKHZvaWQpMCkKPiAKPiBUaGlzIG5lZWRzIHRvIGJlICgodm9pZCko cG9vbCkpIHRvIGV2YWx1YXRlIHRoZSBwb3RlbnRpYWwgc2lkZSBlZmZlY3RzLgo+IAo+IAo+IFdo YXQgYXJlIHRoZSBvdmVyaGVhZHMgb2YgcG9vbCBjb25zaXN0ZW5jeSBjaGVja2luZz8gIEl0IGxv b2tzIHRvIGJlCj4gbW9kZXJhdGVseSBoaWdoLCBnaXZlbiBhIGZ1bGwgaW5zcGVjdGlvbiBvZiB0 aGUgbWF0cml4IG9uIGVhY2gKPiBhbGxvY2F0aW9uIGFuZCBmcmVlLiAgV291bGQgaXQgYmUgcG9z c2libGUgdG8gaGF2ZSBvbmUgZWFzaWVyLXRvLWFsdGVyCj4gY29tcGlsZSB0aW1lIGtub2Igc28g dGhlIGRlZmF1bHQgY2FuIGJlIG92ZXJyaWRkZW4gaW4gYSBzaW5nbGUgbG9jYXRpb24/CgpJbiBt eSB0ZXN0cywgSSBoYXZlIG5vdCBub3RpY2VkIGEgc2xvd2Rvd24sIG9yIG1heWJlIEhhc3dlbGxz IHRoZXNlCmRheXMgYXJlIHRoYXQgZ29vZC4KCj4gUGVyaGFwcyBzb21ldGhpbmcgbGlrZToKPiAK PiAjaWZuZGVmIE5ERUJVRwo+ICNkZWZpbmUgWE1FTV9QT09MX0NIRUNLUwo+ICNlbmRpZgo+IAo+ ICNpZmRlZiBYTUVNX1BPT0xfQ0hFQ0tTCj4gLi4uCj4gI2Vsc2UKPiAuLi4KPiAjZW5kaWYKClN1 cmUgdGhpbmcuIE15IGludGVyZXN0IGlzIGluIG9ubHkgaGF2aW5nIGFuIHVwc3RyZWFtIG1ldGhv ZCB0byBkZXRlY3QKdGhlc2UsIG90aGVyIHRoYW4gYSBwYXRjaCBzb21ld2hlcmUgb24gbXkgZGlz ay4KClRoYW5rIHlvdSwKCi0tIApNaWhhaSBET07ImlUKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==