From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH v4] xmalloc: add support for checking the pool integrity Date: Tue, 16 Dec 2014 20:28:19 +0000 Message-ID: <549095E3.30202@citrix.com> References: <1418758405-32200-1-git-send-email-mdontu@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1418758405-32200-1-git-send-email-mdontu@bitdefender.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: =?UTF-8?B?TWloYWkgRG9uyJt1?= , xen-devel@lists.xen.org Cc: ian.jackson@eu.citrix.com, keir@xen.org, ian.campbell@citrix.com, jbeulich@suse.com, tim@xen.org List-Id: xen-devel@lists.xenproject.org T24gMTYvMTIvMTQgMTk6MzMsIE1paGFpIERvbsibdSB3cm90ZToKPiBJbXBsZW1lbnRlZCB4bWVt X3Bvb2xfY2hlY2soKSwgeG1lbV9wb29sX2NoZWNrX2xvY2tlZCgpIGFuZAo+IHhtZW1fcG9vbF9j aGVja191bmxvY2tlZCgpIHRvIHZlcml0eSB0aGUgaW50ZWdyaXR5IG9mIHRoZSBUTFNGIG1hdHJp eC4KPgo+IFNpZ25lZC1vZmYtYnk6IE1paGFpIERvbsibdSA8bWRvbnR1QGJpdGRlZmVuZGVyLmNv bT4KPgo+IC0tLQo+IENoYW5nZXMgc2luY2UgdjM6Cj4gIC0gdHJ5IGhhcmRlciB0byByZXNwZWN0 IHRoZSA4MCBjb2x1bW4gbGltaXQKPiAgLSB1c2UgJ3Vuc2lnbmVkIGludCcgaW5zdGVhZCBvZiAn aW50JyB3aGVyZSBwb3NzaWJsZQo+ICAtIG1hZGUgdGhlIGxvZ2dlZCBtZXNzYWdlcyBldmVuIHNo b3J0ZXIKPiAgLSBkcm9wcGVkIHRoZSB1c2Ugb2YgZ290byAoZGlkbid0IHJlYWxseSBtYWtlIHNl bnNlKQo+Cj4gQ2hhbmdlcyBzaW5jZSB2MjoKPiAgLSBwcmludCB0aGUgbmFtZSBvZiB0aGUgY29y cnVwdGVkIHBvb2wKPiAgLSBhZGp1c3RlZCB0aGUgbWVzc2FnZXMgdG8gYmV0dGVyIGZpdCB3aXRo aW4gODAgY29sdW1ucwo+ICAtIG1pbm9yIHN0eWxlIGNoYW5nZSAoYSA/IGEgOiBiIC0+IGEgPzog YikKPgo+IENoYW5nZXMgc2luY2UgdjE6Cj4gIC0gZml4ZWQgdGhlIGNvZGluZ3N0eWxlCj4gIC0g c3dhcGVkIF9sb2NrZWQvX3VubG9ja2VkIG5hbWluZwo+ICAtIHJld29ya2VkIF9feG1lbV9wb29s X2NoZWNrX2xvY2tlZCgpIGEgYml0Cj4gIC0gdXNlZCBib29sX3Qgd2hlcmUgYXBwcm9wcmlhdGUK PiAgLSBtYWRlIHhtZW1fcG9vbF9jaGVjaygpIHRha2UgYSBwb29sIGFyZ3VtZW50IHdoaWNoIGNh biBiZSBOVUxMCj4gLS0tCj4gIHhlbi9jb21tb24veG1hbGxvY190bHNmLmMgfCAxMjEgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICB4ZW4vaW5jbHVkZS94 ZW4veG1hbGxvYy5oIHwgICA3ICsrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDEyNiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24veG1hbGxvY190 bHNmLmMgYi94ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jCj4gaW5kZXggYTU3NjljOS4uZWNhNGYx YyAxMDA2NDQKPiAtLS0gYS94ZW4vY29tbW9uL3htYWxsb2NfdGxzZi5jCj4gKysrIGIveGVuL2Nv bW1vbi94bWFsbG9jX3Rsc2YuYwo+IEBAIC0xMjAsOSArMTIwLDEyMiBAQCBzdHJ1Y3QgeG1lbV9w b29sIHsKPiAgICAgIGNoYXIgbmFtZVtNQVhfUE9PTF9OQU1FX0xFTl07Cj4gIH07Cj4gIAo+ICtz dGF0aWMgc3RydWN0IHhtZW1fcG9vbCAqeGVucG9vbDsKPiArCj4gK3N0YXRpYyBpbmxpbmUgdm9p ZCBNQVBQSU5HX0lOU0VSVCh1bnNpZ25lZCBsb25nIHIsIGludCAqZmwsIGludCAqc2wpOwo+ICsK PiAgLyoKPiAgICogSGVscGluZyBmdW5jdGlvbnMKPiAgICovCj4gKyNpZm5kZWYgTkRFQlVHCj4g K3N0YXRpYyBib29sX3QgeG1lbV9wb29sX2NoZWNrX3NpemUoY29uc3Qgc3RydWN0IHhtZW1fcG9v bCAqcG9vbCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmwsIGlu dCBzbCkKPiArewo+ICsgICAgY29uc3Qgc3RydWN0IGJoZHIgKmIgPSBwb29sLT5tYXRyaXhbZmxd W3NsXTsKPiArCj4gKyAgICB3aGlsZSAoIGIgKQo+ICsgICAgewo+ICsgICAgICAgIGludCBfX2Zs Owo+ICsgICAgICAgIGludCBfX3NsOwo+ICsKPiArICAgICAgICBNQVBQSU5HX0lOU0VSVChiLT5z aXplLCAmX19mbCwgJl9fc2wpOwo+ICsgICAgICAgIGlmICggX19mbCAhPSBmbCB8fCBfX3NsICE9 IHNsICkKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCj4gKyAg ICAgICAgICAgICAgICAgICAieG1lbV9wb29sOiAlczogbWlzcGxhY2VkIGJsb2NrICVwOiV1ICh7 JWQsJWR9IC0+IHslZCwlZH0pXG4iLAoKSXMgaXQgbGlhYmxlIHRvIGdldCBjb25mdXNpbmcgd2l0 aCBhIGhleCBudW1iZXIgYW5kIGEgZGVjaW1hbCBudW1iZXIKY29tYmluZWQgd2l0aCBqdXN0IGEg Y29sb24/CgpJcyBiIGV2ZW4gdXNlZnVsPyAgWW91IGhhdmUgdGhlIHBvb2wgbmFtZSwgaW5kaWNp ZXMgYW5kIHNpemUgd2hpY2ggc2VlbQp0byBiZSB0aGUgc2FsaWVudCBpbmZvcm1hdGlvbi4KCj4g KyAgICAgICAgICAgICAgICAgICBwb29sLT5uYW1lLCBiLCBiLT5zaXplLCBmbCwgc2wsIF9fZmws IF9fc2wpOwo+ICsgICAgICAgICAgICByZXR1cm4gMDsKPiArICAgICAgICB9Cj4gKyAgICAgICAg YiA9IGItPnB0ci5mcmVlX3B0ci5uZXh0Owo+ICsgICAgfQo+ICsgICAgcmV0dXJuIDE7Cj4gK30K PiArCj4gKy8qCj4gKyAqIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgZnJvbSBhIGNvbnRl eHQgd2hlcmUgcG9vbC0+bG9jayBpcwo+ICsgKiBhbHJlYWR5IGFjcXVpcmVkLgo+ICsgKgo+ICsg KiBSZXR1cm5zIHRydWUgaWYgdGhlIHBvb2wgaGFzIGJlZW4gY29ycnVwdGVkLCBmYWxzZSBvdGhl cndpc2UKPiArICovCj4gKyNkZWZpbmUgeG1lbV9wb29sX2NoZWNrX2xvY2tlZChwb29sKSBcCj4g KyAgICBfX3htZW1fcG9vbF9jaGVja19sb2NrZWQoX19GSUxFX18sIF9fTElORV9fLCBwb29sKQo+ ICtzdGF0aWMgYm9vbF90IF9feG1lbV9wb29sX2NoZWNrX2xvY2tlZChjb25zdCBjaGFyICpmaWxl LCBpbnQgbGluZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IHhtZW1fcG9vbCAqcG9vbCkKPiArewo+ICsgICAgdW5zaWduZWQgaW50IGk7Cj4g KyAgICBzdGF0aWMgYm9vbF90IG9uY2UgPSAxOwoKV2hhdCBpcyB0aGlzIHN0YXRpYyBkb2luZz8g IFN1cmVseSBjb3JydXB0aW9uIGNvcnJ1cHRpb24gaW4gb25lIHBvb2wgaGFzCm5vIGVmZmVjdCBv biBjb3JydXB0aW9uIGluIGEgc2VwYXJhdGUgcG9vbCAob3RoZXIgdGhhbiB0aGUgdXN1YWwgc2lk ZQplZmZlY3RzIG9mIGdlbmVyYWwgbWVtb3J5IGNvcnJ1cHRpb24sIHdoaWNoIHRlbmQgdG8gYmUg YmFkKS4KCkl0IGxvb2tzIGFzIGlmIGl0IHdhbnRzIHRvIGJlIGFuIGV4dHJhIGZpZWxkIGluIGFu IHhtZW1fcG9vbC4KCj4gKwo+ICsgICAgaWYgKCAhb25jZSApCj4gKyAgICAgICAgcmV0dXJuIDE7 Cj4gKyAgICBmb3IgKCBpID0gMDsgaSA8IFJFQUxfRkxJOyBpKysgKQo+ICsgICAgewo+ICsgICAg ICAgIGludCBmbCA9IChwb29sLT5mbF9iaXRtYXAgJiAoMSA8PCBpKSkgPyBpIDogLTE7Cj4gKwo+ ICsgICAgICAgIGlmICggZmwgPj0gMCApCj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICB1bnNp Z25lZCBpbnQgajsKPiArCj4gKyAgICAgICAgICAgIGlmICggIXBvb2wtPnNsX2JpdG1hcFtmbF0g KQo+ICsgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgo+ ICsgICAgICAgICAgICAgICAgICAgICAgICJ4bWVtX3Bvb2w6ICVzOiBUTFNGIGJpdG1hcCBjb3Jy dXB0ICghZW1wdHkgRkwsIGVtcHR5IFNMKVxuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICBw b29sLT5uYW1lKTsKPiArICAgICAgICAgICAgICAgIF9fd2FybihmaWxlLCBsaW5lKTsKClRoZSBf X3dhcm4oKXMgaGVyZSB3aWxsIGN1cnJlbnRseSBkbyBhIGZ1bGwgcmVnaXN0ZXIgZHVtcCwgYXMg d2VsbCBhcwpzdGFjayBkdW1wIGFuZCBzdGFjayB0cmFjZS4gIEl0IG9jY3VycyB0byBtZSB0aGF0 IG9ubHkgdGhlIHN0YWNrIHRyYWNlCml0c2VsZiBpcyB1c2VmdWwgYXQgdGhpcyBwb2ludC4KCl9f YnVnIGFuZCBfX3dhcm4oKSBhcmUgY3VycmVudGx5IHVudXNlZCAoSSBhbSBzdHJ1Z2dsaW5nIHRv IHdvcmsgb3V0CmV4YWN0bHkgd2hlbiB0aGV5IHdlcmUgb3JwaGFuZWQ7IHRoZXkgZG8gbm90IGZv cm0gcGFydCBvZiByZWd1bGFyCkJVRygpL1dBUk4oKSBvcGVyYXRpb25zLCB3aGljaCBhcmUgaGFu ZGxlZCBpbiBkb19pbnZhbGlkX29wKCkpLiAgVGhleQphcmUgYWxzbyBub3QgZmFudGFzdGljYWxs eSB1c2VmdWwgYXMgdGhleSB3aWxsIGFsd2F5cyBpZGVudGlmeQp0aGVtc2VsdmVzIGluIHRoZSBw cmludGVkIGluZm9ybWF0aW9uLCBub3QgdGhlaXIgY2FsbGVyLiAgSSBzdXNwZWN0IHRoZXkKY2Fu IGp1c3QgYmUgZHJvcHBlZCBjb21wbGV0ZWx5LgoKSSBzdXNwZWN0IHlvdSBhbHNvIHdvdWxkIGJl IGJldHRlciwgYW5kIGNlcnRhaW5seSBtb3JlIGJyaWVmLCB3aXRoCiJydW5faW5fZXhjZXB0aW9u X2hhbmRsZXIoc2hvd19zdGFjaykiIGluc3RlYWQsIHdoaWNoIHdpbGwganVzdCBwcmludCBhCnN0 YWNrIHRyYWNlLCBidXQgbm90aGluZyBtb3JlLgoKPiArICAgICAgICAgICAgICAgIG9uY2UgPSAw Owo+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAg ICAgZm9yICggaiA9IDA7IGogPCBNQVhfU0xJOyBqKysgKQo+ICsgICAgICAgICAgICB7Cj4gKyAg ICAgICAgICAgICAgICBpbnQgc2wgPSAocG9vbC0+c2xfYml0bWFwW2ZsXSAmICgxIDw8IGopKSA/ IGogOiAtMTsKPiArCj4gKyAgICAgICAgICAgICAgICBpZiAoIHNsIDwgMCApCj4gKyAgICAgICAg ICAgICAgICAgICAgY29udGludWU7Cj4gKyAgICAgICAgICAgICAgICBpZiAoICFwb29sLT5tYXRy aXhbZmxdW3NsXSApCj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICAgICAg cHJpbnRrKFhFTkxPR19FUlIKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtZW1fcG9v bDogJXM6IFRMU0YgYml0bWFwIGNvcnJ1cHQgKCFtYXRyaXhbJWRdWyVkXSlcbiIsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBvb2wtPm5hbWUsIGZsLCBzbCk7Cj4gKyAgICAgICAgICAg ICAgICAgICAgX193YXJuKGZpbGUsIGxpbmUpOwo+ICsgICAgICAgICAgICAgICAgICAgIG9uY2Ug PSAwOwo+ICsgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAgICAgfQo+ ICsgICAgICAgICAgICAgICAgaWYgKCAheG1lbV9wb29sX2NoZWNrX3NpemUocG9vbCwgZmwsIHNs KSApCj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19FUlIgInhtZW1fcG9vbDogJXM6IFRMU0YgY2h1bmsgbWF0cml4IGNvcnJ1cHRcbiIsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvb2wtPm5hbWUpOwo+ICsgICAgICAgICAgICAg ICAgICAgIF9fd2FybihmaWxlLCBsaW5lKTsKPiArICAgICAgICAgICAgICAgICAgICBvbmNlID0g MDsKPiArICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgICAgIH0KPiAr ICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICBpZiAoICFvbmNlICkKPiArICAgICAgICAgICAg ICAgIGJyZWFrOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArICAgIHJldHVybiAhb25jZTsKPiAr fQo+ICsKPiArI2RlZmluZSB4bWVtX3Bvb2xfY2hlY2tfdW5sb2NrZWQocG9vbCkgXAo+ICsgICAg X194bWVtX3Bvb2xfY2hlY2tfdW5sb2NrZWQoX19GSUxFX18sIF9fTElORV9fLCBwb29sKQo+ICtz dGF0aWMgYm9vbF90IF9feG1lbV9wb29sX2NoZWNrX3VubG9ja2VkKGNvbnN0IGNoYXIgKmZpbGUs IGludCBsaW5lLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB4bWVtX3Bvb2wgKnBvb2wpCj4gK3sKPiArICAgIGJvb2xfdCBvb3BzOwo+ICsKPiArICAg IHNwaW5fbG9jaygmcG9vbC0+bG9jayk7Cj4gKyAgICBvb3BzID0gX194bWVtX3Bvb2xfY2hlY2tf bG9ja2VkKGZpbGUsIGxpbmUsIHBvb2wpOwo+ICsgICAgc3Bpbl91bmxvY2soJnBvb2wtPmxvY2sp Owo+ICsgICAgcmV0dXJuIG9vcHM7Cj4gK30KPiArCj4gK2Jvb2xfdCBfX3htZW1fcG9vbF9jaGVj ayhjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgc3RydWN0IHhtZW1fcG9vbCAqcG9vbCkKPiAr ewo+ICsgICAgcmV0dXJuIF9feG1lbV9wb29sX2NoZWNrX3VubG9ja2VkKGZpbGUsIGxpbmUsIHBv b2wgPzogeGVucG9vbCk7CgpXaHkgc2hvdWxkIGEgTlVMTCBwb29sIGJlIHRvbGVyYXRlZCBoZXJl PyAgVGhpcyBpcyBkZWJ1ZyBjb2RlIG9ubHksIHNvCndlIGNhbiByZXF1aXJlIGFuZCB0cnVzdCB0 aGF0IHdlIGFyZSBjYWxsZWQgYXBwcm9wcmlhdGVseS4KCj4gK30KPiArI2Vsc2UKPiArI2RlZmlu ZSB4bWVtX3Bvb2xfY2hlY2tfbG9ja2VkKHBvb2wpICgodm9pZCkocG9vbCkpCj4gKyNkZWZpbmUg eG1lbV9wb29sX2NoZWNrX3VubG9ja2VkKHBvb2wpICgodm9pZCkocG9vbCkpCj4gKyNlbmRpZgo+ ICAKPiAgLyoqCj4gICAqIFJldHVybnMgaW5kZXhlcyAoZmwsIHNsKSBvZiB0aGUgbGlzdCB1c2Vk IHRvIHNlcnZlIHJlcXVlc3Qgb2Ygc2l6ZSByCj4gQEAgLTM4MSw2ICs0OTQsOCBAQCB2b2lkICp4 bWVtX3Bvb2xfYWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCBzdHJ1Y3QgeG1lbV9wb29sICpwb29s KQo+ICAgICAgaW50IGZsLCBzbDsKPiAgICAgIHVuc2lnbmVkIGxvbmcgdG1wX3NpemU7Cj4gIAo+ ICsgICAgeG1lbV9wb29sX2NoZWNrX3VubG9ja2VkKHBvb2wpOwo+ICsKPiAgICAgIGlmICggcG9v bC0+aW5pdF9yZWdpb24gPT0gTlVMTCApCj4gICAgICB7Cj4gICAgICAgICAgaWYgKCAocmVnaW9u ID0gcG9vbC0+Z2V0X21lbShwb29sLT5pbml0X3NpemUpKSA9PSBOVUxMICkKPiBAQCAtNDQyLDEx ICs1NTcsMTMgQEAgdm9pZCAqeG1lbV9wb29sX2FsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSwgc3Ry dWN0IHhtZW1fcG9vbCAqcG9vbCkKPiAgCj4gICAgICBwb29sLT51c2VkX3NpemUgKz0gKGItPnNp emUgJiBCTE9DS19TSVpFX01BU0spICsgQkhEUl9PVkVSSEVBRDsKPiAgCj4gKyAgICB4bWVtX3Bv b2xfY2hlY2tfbG9ja2VkKHBvb2wpOwo+ICAgICAgc3Bpbl91bmxvY2soJnBvb2wtPmxvY2spOwo+ ICAgICAgcmV0dXJuICh2b2lkICopYi0+cHRyLmJ1ZmZlcjsKPiAgCj4gICAgICAvKiBGYWlsZWQg YWxsb2MgKi8KPiAgIG91dF9sb2NrZWQ6Cj4gKyAgICB4bWVtX3Bvb2xfY2hlY2tfbG9ja2VkKHBv b2wpOwo+ICAgICAgc3Bpbl91bmxvY2soJnBvb2wtPmxvY2spOwo+ICAKPiAgIG91dDoKPiBAQCAt NDY0LDYgKzU4MSw3IEBAIHZvaWQgeG1lbV9wb29sX2ZyZWUodm9pZCAqcHRyLCBzdHJ1Y3QgeG1l bV9wb29sICpwb29sKQo+ICAgICAgYiA9IChzdHJ1Y3QgYmhkciAqKSgoY2hhciAqKSBwdHIgLSBC SERSX09WRVJIRUFEKTsKPiAgCj4gICAgICBzcGluX2xvY2soJnBvb2wtPmxvY2spOwo+ICsgICAg eG1lbV9wb29sX2NoZWNrX2xvY2tlZChwb29sKTsKPiAgICAgIGItPnNpemUgfD0gRlJFRV9CTE9D SzsKPiAgICAgIHBvb2wtPnVzZWRfc2l6ZSAtPSAoYi0+c2l6ZSAmIEJMT0NLX1NJWkVfTUFTSykg KyBCSERSX09WRVJIRUFEOwo+ICAgICAgYi0+cHRyLmZyZWVfcHRyID0gKHN0cnVjdCBmcmVlX3B0 cikgeyBOVUxMLCBOVUxMfTsKPiBAQCAtNTAwLDYgKzYxOCw3IEBAIHZvaWQgeG1lbV9wb29sX2Zy ZWUodm9pZCAqcHRyLCBzdHJ1Y3QgeG1lbV9wb29sICpwb29sKQo+ICAgICAgdG1wX2ItPnNpemUg fD0gUFJFVl9GUkVFOwo+ICAgICAgdG1wX2ItPnByZXZfaGRyID0gYjsKPiAgIG91dDoKPiArICAg IHhtZW1fcG9vbF9jaGVja19sb2NrZWQocG9vbCk7Cj4gICAgICBzcGluX3VubG9jaygmcG9vbC0+ bG9jayk7Cj4gIH0KPiAgCj4gQEAgLTUxMiw4ICs2MzEsNiBAQCBpbnQgeG1lbV9wb29sX21heGFs bG9jKHN0cnVjdCB4bWVtX3Bvb2wgKnBvb2wpCj4gICAqIEdsdWUgZm9yIHhtYWxsb2MoKS4KPiAg ICovCj4gIAo+IC1zdGF0aWMgc3RydWN0IHhtZW1fcG9vbCAqeGVucG9vbDsKPiAtCj4gIHN0YXRp YyB2b2lkICp4bWFsbG9jX3Bvb2xfZ2V0KHVuc2lnbmVkIGxvbmcgc2l6ZSkKPiAgewo+ICAgICAg QVNTRVJUKHNpemUgPT0gUEFHRV9TSVpFKTsKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVu L3htYWxsb2MuaCBiL3hlbi9pbmNsdWRlL3hlbi94bWFsbG9jLmgKPiBpbmRleCAyNGE5OWFjLi5h ZDQ4OTMwIDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi94bWFsbG9jLmgKPiArKysgYi94 ZW4vaW5jbHVkZS94ZW4veG1hbGxvYy5oCj4gQEAgLTEyMyw0ICsxMjMsMTEgQEAgdW5zaWduZWQg bG9uZyB4bWVtX3Bvb2xfZ2V0X3VzZWRfc2l6ZShzdHJ1Y3QgeG1lbV9wb29sICpwb29sKTsKPiAg ICovCj4gIHVuc2lnbmVkIGxvbmcgeG1lbV9wb29sX2dldF90b3RhbF9zaXplKHN0cnVjdCB4bWVt X3Bvb2wgKnBvb2wpOwo+ICAKPiArI2lmbmRlZiBOREVCVUcKPiArI2RlZmluZSB4bWVtX3Bvb2xf Y2hlY2socG9vbCkgX194bWVtX3Bvb2xfY2hlY2soX19GSUxFX18sIF9fTElORV9fLCBwb29sKQo+ ICtib29sX3QgX194bWVtX3Bvb2xfY2hlY2soY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIHN0 cnVjdCB4bWVtX3Bvb2wgKnBvb2wpOwo+ICsjZWxzZQo+ICsjZGVmaW5lIHhtZW1fcG9vbF9jaGVj ayhwb29sKSAoKHZvaWQpMCkKClRoaXMgbmVlZHMgdG8gYmUgKCh2b2lkKShwb29sKSkgdG8gZXZh bHVhdGUgdGhlIHBvdGVudGlhbCBzaWRlIGVmZmVjdHMuIApIb3dldmVyLCBJIHRoaW5rIHlvdSBu ZWVkIHRvIGNvbmRpdGlvbmFsbHkgY2hhbmdlIF9feG1lbV9wb29sX2NoZWNrKCkKYW5kIG1vdmUg I2RlZmluZSB4bWVtX3Bvb2xfY2hlY2sgb3V0c2lkZSB0aGUgY29uZGl0aW9uYWwsIHRvIGNvdmVy CmZ1dHVyZSBjb25zdW1lcnMgd2hvIG1pZ2h0IGNob29zZSB0byBjYWxsIF9feG1lbV9wb29sX2No ZWNrKCkgZGlyZWN0bHkuCgoKV2hhdCBhcmUgdGhlIG92ZXJoZWFkcyBvZiBwb29sIGNvbnNpc3Rl bmN5IGNoZWNraW5nPyAgSXQgbG9va3MgdG8gYmUKbW9kZXJhdGVseSBoaWdoLCBnaXZlbiBhIGZ1 bGwgaW5zcGVjdGlvbiBvZiB0aGUgbWF0cml4IG9uIGVhY2gKYWxsb2NhdGlvbiBhbmQgZnJlZS4g IFdvdWxkIGl0IGJlIHBvc3NpYmxlIHRvIGhhdmUgb25lIGVhc3ktdG8tYWx0ZXIKY29tcGlsZSB0 aW1lIGtub2Igc28gdGhlIGRlZmF1bHQgY2FuIGJlIG92ZXJyaWRkZW4gaW4gYSBzaW5nbGUgbG9j YXRpb24/CgpQZXJoYXBzIHNvbWV0aGluZyBsaWtlOgoKI2lmbmRlZiBOREVCVUcKI2RlZmluZSBY TUVNX1BPT0xfQ0hFQ0tTCiNlbmRpZgoKI2lmZGVmIFhNRU1fUE9PTF9DSEVDS1MKLi4uCiNlbHNl Ci4uLgojZW5kaWYKCn5BbmRyZXcKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=