From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: Re: [PATCH 1/2] vm_event: Sanitize vm_event response handling Date: Wed, 14 Sep 2016 09:11:00 -0600 Message-ID: References: <20160913181223.1459-1-tamas.lengyel@zentific.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bkBq3-0004YP-Ru for xen-devel@lists.xenproject.org; Wed, 14 Sep 2016 15:11:04 +0000 Received: by mail-yw0-f194.google.com with SMTP id t67so1024710ywg.1 for ; Wed, 14 Sep 2016 08:11:01 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: George Dunlap Cc: Stefano Stabellini , Razvan Cojocaru , George Dunlap , Andrew Cooper , Julien Grall , Jan Beulich , "xen-devel@lists.xenproject.org" List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBTZXAgMTQsIDIwMTYgYXQgNzozOCBBTSwgR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1 bmxhcEBjaXRyaXguY29tPiB3cm90ZToKPiBPbiAxMy8wOS8xNiAxOToxMiwgVGFtYXMgSyBMZW5n eWVsIHdyb3RlOgo+PiBTZXR0aW5nIHJlc3BvbnNlIGZsYWdzIGluIHZtX2V2ZW50IGFyZSBvbmx5 IGV2ZXIgc2FmZSBpZiB0aGUgdkNQVXMgYXJlIHBhdXNlZC4KPj4gVG8gcmVmbGVjdCB0aGlzIHdl IG1vdmUgYWxsIGNoZWNrcyB3aXRoaW4gdGhlIGlmIGJsb2NrIHRoYXQgYWxyZWFkeSBjaGVja3MK Pj4gd2hldGhlciB0aGlzIGlzIHRoZSBjYXNlLiBDaGVja3MgdGhhdCBhcmUgb25seSBzdXBwb3J0 ZWQgb24gb25lIGFyY2hpdGVjdHVyZQo+PiB3ZSByZWxvY2F0ZSB0aGUgYml0bWFzayBvcGVyYXRp b25zIHRvIHRoZSBhcmNoLXNwZWNpZmljIGhhbmRsZXJzIHRvIGF2b2lkCj4+IHRoZSBvdmVyaGVh ZCBvbiBhcmNoaXRlY3R1cmVzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBpdC4KPj4KPj4gRnVydGhlcm1v cmUsIHdlIGNsZWFuLXVwIHRoZSBlbXVsYXRpb24gY2hlY2tzIHNvIGl0IG1vcmUgY2xlYXJseSBy ZXByZXNlbnRzIHRoZQo+PiBkZWNpc2lvbi1sb2dpYyB3aGVuIGVtdWxhdGlvbiBzaG91bGQgdGFr ZSBwbGFjZS4gQXMgcGFydCBvZiB0aGlzIHdlIGFsc28KPj4gc2V0IHRoZSBzdGFnZSB0byBhbGxv dyBlbXVsYXRpb24gaW4gcmVzcG9uc2UgdG8gb3RoZXIgdHlwZXMgb2YgZXZlbnRzLCBub3QganVz dAo+PiBtZW1fYWNjZXNzIHZpb2xhdGlvbnMuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFRhbWFzIEsg TGVuZ3llbCA8dGFtYXMubGVuZ3llbEB6ZW50aWZpYy5jb20+Cj4KPiBUYW1hcywKPgo+IFdvdWxk IHlvdSBsaWtlIGEgZGV0YWlsZWQgcmV2aWV3IGZyb20gbWUgZm9yIHRoaXM/ICBJJ20gaGFwcHkg dG8gYWNrIHRoZQo+IHAybSBiaXRzIG9uIHRoZSBiYXNpcyB0aGF0IHRoZXkncmUgb25seSB0b3Vj aGluZyBtZW1fYWNjZXNzIGNvZGUuICBBCj4gZnVsbCByZXZpZXcgbWF5IGdldCBzdHVjayBiZWhp bmQgYSBwcmV0dHkgbG9uZyByZXZpZXcgYmFja2xvZy4gOi0oCj4KPiAgLUdlb3JnZQoKSGkgR2Vv cmdlLAphY2tpbmcganVzdCB0aGUgcDJtIGJpdHMgc2hvdWxkIHN1ZmZpY2UhCgpUaGFua3MsClRh bWFzCgo+PiAtLS0KPj4gQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4 LmNvbT4KPj4gQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KPj4gQ2M6IEFuZHJl dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Cj4+IENjOiBSYXp2YW4gQ29qb2Nh cnUgPHJjb2pvY2FydUBiaXRkZWZlbmRlci5jb20+Cj4+IENjOiBTdGVmYW5vIFN0YWJlbGxpbmkg PHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+Cj4+IENjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFs bEBhcm0uY29tPgo+PiAtLS0KPj4gIHhlbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAgICAgICB8IDgx ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgeGVuL2FyY2gv eDg2L3ZtX2V2ZW50LmMgICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKystCj4+ICB4ZW4vY29t bW9uL3ZtX2V2ZW50LmMgICAgICAgICAgfCA1MyArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0K Pj4gIHhlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmggICAgICB8ICA0ICstLQo+PiAgeGVuL2luY2x1 ZGUvYXNtLWFybS92bV9ldmVudC5oIHwgIDkgKysrKy0KPj4gIHhlbi9pbmNsdWRlL2FzbS14ODYv cDJtLmggICAgICB8ICA0ICstLQo+PiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni92bV9ldmVudC5oIHwg IDUgKystCj4+ICB4ZW4vaW5jbHVkZS94ZW4vbWVtX2FjY2Vzcy5oICAgfCAxMiAtLS0tLS0tCj4+ ICA4IGZpbGVzIGNoYW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCA5MCBkZWxldGlvbnMoLSkKPj4K Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9w Mm0uYwo+PiBpbmRleCA3ZDE0YzNiLi42YzAxODY4IDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJjaC94 ODYvbW0vcDJtLmMKPj4gKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCj4+IEBAIC0xNTg4LDYy ICsxNTg4LDU1IEBAIHZvaWQgcDJtX21lbV9wYWdpbmdfcmVzdW1lKHN0cnVjdCBkb21haW4gKmQs IHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkKPj4gICAgICB9Cj4+ICB9Cj4+Cj4+IC12b2lkIHAy bV9tZW1fYWNjZXNzX2VtdWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYsCj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm1fZXZlbnRfcmVzcG9uc2VfdCAqcnNwKQo+ PiArYm9vbF90IHAybV9tZW1fYWNjZXNzX2VtdWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2bV9ldmVudF9yZXNw b25zZV90ICpyc3ApCj4+ICB7Cj4+IC0gICAgLyogTWFyayB2Y3B1IGZvciBza2lwcGluZyBvbmUg aW5zdHJ1Y3Rpb24gdXBvbiByZXNjaGVkdWxpbmcuICovCj4+IC0gICAgaWYgKCByc3AtPmZsYWdz ICYgVk1fRVZFTlRfRkxBR19FTVVMQVRFICkKPj4gLSAgICB7Cj4+IC0gICAgICAgIHhlbm1lbV9h Y2Nlc3NfdCBhY2Nlc3M7Cj4+IC0gICAgICAgIGJvb2xfdCB2aW9sYXRpb24gPSAxOwo+PiAtICAg ICAgICBjb25zdCBzdHJ1Y3Qgdm1fZXZlbnRfbWVtX2FjY2VzcyAqZGF0YSA9ICZyc3AtPnUubWVt X2FjY2VzczsKPj4gKyAgICB4ZW5tZW1fYWNjZXNzX3QgYWNjZXNzOwo+PiArICAgIGJvb2xfdCB2 aW9sYXRpb24gPSAxOwo+PiArICAgIGNvbnN0IHN0cnVjdCB2bV9ldmVudF9tZW1fYWNjZXNzICpk YXRhID0gJnJzcC0+dS5tZW1fYWNjZXNzOwo+Pgo+PiAtICAgICAgICBpZiAoIHAybV9nZXRfbWVt X2FjY2Vzcyh2LT5kb21haW4sIF9nZm4oZGF0YS0+Z2ZuKSwgJmFjY2VzcykgPT0gMCApCj4+ICsg ICAgaWYgKCBwMm1fZ2V0X21lbV9hY2Nlc3Modi0+ZG9tYWluLCBfZ2ZuKGRhdGEtPmdmbiksICZh Y2Nlc3MpID09IDAgKQo+PiArICAgIHsKPj4gKyAgICAgICAgc3dpdGNoICggYWNjZXNzICkKPj4g ICAgICAgICAgewo+PiAtICAgICAgICAgICAgc3dpdGNoICggYWNjZXNzICkKPj4gLSAgICAgICAg ICAgIHsKPj4gLSAgICAgICAgICAgIGNhc2UgWEVOTUVNX2FjY2Vzc19uOgo+PiAtICAgICAgICAg ICAgY2FzZSBYRU5NRU1fYWNjZXNzX24ycnd4Ogo+PiAtICAgICAgICAgICAgZGVmYXVsdDoKPj4g LSAgICAgICAgICAgICAgICB2aW9sYXRpb24gPSBkYXRhLT5mbGFncyAmIE1FTV9BQ0NFU1NfUldY Owo+PiAtICAgICAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAgICBjYXNlIFhFTk1FTV9hY2Nl c3NfbjoKPj4gKyAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX24ycnd4Ogo+PiArICAgICAgICBk ZWZhdWx0Ogo+PiArICAgICAgICAgICAgdmlvbGF0aW9uID0gZGF0YS0+ZmxhZ3MgJiBNRU1fQUND RVNTX1JXWDsKPj4gKyAgICAgICAgICAgIGJyZWFrOwo+Pgo+PiAtICAgICAgICAgICAgY2FzZSBY RU5NRU1fYWNjZXNzX3I6Cj4+IC0gICAgICAgICAgICAgICAgdmlvbGF0aW9uID0gZGF0YS0+Zmxh Z3MgJiBNRU1fQUNDRVNTX1dYOwo+PiAtICAgICAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAg ICBjYXNlIFhFTk1FTV9hY2Nlc3NfcjoKPj4gKyAgICAgICAgICAgIHZpb2xhdGlvbiA9IGRhdGEt PmZsYWdzICYgTUVNX0FDQ0VTU19XWDsKPj4gKyAgICAgICAgICAgIGJyZWFrOwo+Pgo+PiAtICAg ICAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX3c6Cj4+IC0gICAgICAgICAgICAgICAgdmlvbGF0 aW9uID0gZGF0YS0+ZmxhZ3MgJiBNRU1fQUNDRVNTX1JYOwo+PiAtICAgICAgICAgICAgICAgIGJy ZWFrOwo+PiArICAgICAgICBjYXNlIFhFTk1FTV9hY2Nlc3NfdzoKPj4gKyAgICAgICAgICAgIHZp b2xhdGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19SWDsKPj4gKyAgICAgICAgICAgIGJy ZWFrOwo+Pgo+PiAtICAgICAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX3g6Cj4+IC0gICAgICAg ICAgICAgICAgdmlvbGF0aW9uID0gZGF0YS0+ZmxhZ3MgJiBNRU1fQUNDRVNTX1JXOwo+PiAtICAg ICAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAgICBjYXNlIFhFTk1FTV9hY2Nlc3NfeDoKPj4g KyAgICAgICAgICAgIHZpb2xhdGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19SVzsKPj4g KyAgICAgICAgICAgIGJyZWFrOwo+Pgo+PiAtICAgICAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNz X3J4Ogo+PiAtICAgICAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX3J4MnJ3Ogo+PiAtICAgICAg ICAgICAgICAgIHZpb2xhdGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19XOwo+PiAtICAg ICAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAgICBjYXNlIFhFTk1FTV9hY2Nlc3Nfcng6Cj4+ ICsgICAgICAgIGNhc2UgWEVOTUVNX2FjY2Vzc19yeDJydzoKPj4gKyAgICAgICAgICAgIHZpb2xh dGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19XOwo+PiArICAgICAgICAgICAgYnJlYWs7 Cj4+Cj4+IC0gICAgICAgICAgICBjYXNlIFhFTk1FTV9hY2Nlc3Nfd3g6Cj4+IC0gICAgICAgICAg ICAgICAgdmlvbGF0aW9uID0gZGF0YS0+ZmxhZ3MgJiBNRU1fQUNDRVNTX1I7Cj4+IC0gICAgICAg ICAgICAgICAgYnJlYWs7Cj4+ICsgICAgICAgIGNhc2UgWEVOTUVNX2FjY2Vzc193eDoKPj4gKyAg ICAgICAgICAgIHZpb2xhdGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19SOwo+PiArICAg ICAgICAgICAgYnJlYWs7Cj4+Cj4+IC0gICAgICAgICAgICBjYXNlIFhFTk1FTV9hY2Nlc3Nfcnc6 Cj4+IC0gICAgICAgICAgICAgICAgdmlvbGF0aW9uID0gZGF0YS0+ZmxhZ3MgJiBNRU1fQUNDRVNT X1g7Cj4+IC0gICAgICAgICAgICAgICAgYnJlYWs7Cj4+ICsgICAgICAgIGNhc2UgWEVOTUVNX2Fj Y2Vzc19ydzoKPj4gKyAgICAgICAgICAgIHZpb2xhdGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FD Q0VTU19YOwo+PiArICAgICAgICAgICAgYnJlYWs7Cj4+Cj4+IC0gICAgICAgICAgICBjYXNlIFhF Tk1FTV9hY2Nlc3Nfcnd4Ogo+PiAtICAgICAgICAgICAgICAgIHZpb2xhdGlvbiA9IDA7Cj4+IC0g ICAgICAgICAgICAgICAgYnJlYWs7Cj4+IC0gICAgICAgICAgICB9Cj4+ICsgICAgICAgIGNhc2Ug WEVOTUVNX2FjY2Vzc19yd3g6Cj4+ICsgICAgICAgICAgICB2aW9sYXRpb24gPSAwOwo+PiArICAg ICAgICAgICAgYnJlYWs7Cj4+ICAgICAgICAgIH0KPj4gLQo+PiAtICAgICAgICB2LT5hcmNoLnZt X2V2ZW50LT5lbXVsYXRlX2ZsYWdzID0gdmlvbGF0aW9uID8gcnNwLT5mbGFncyA6IDA7Cj4+IC0K Pj4gLSAgICAgICAgaWYgKCAocnNwLT5mbGFncyAmIFZNX0VWRU5UX0ZMQUdfU0VUX0VNVUxfUkVB RF9EQVRBKSApCj4+IC0gICAgICAgICAgICB2LT5hcmNoLnZtX2V2ZW50LT5lbXVsX3JlYWRfZGF0 YSA9IHJzcC0+ZGF0YS5lbXVsX3JlYWRfZGF0YTsKPj4gICAgICB9Cj4+ICsKPj4gKyAgICByZXR1 cm4gdmlvbGF0aW9uOwo+PiAgfQo+Pgo+PiAgdm9pZCBwMm1fYWx0cDJtX2NoZWNrKHN0cnVjdCB2 Y3B1ICp2LCB1aW50MTZfdCBpZHgpCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdm1fZXZl bnQuYyBiL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5jCj4+IGluZGV4IGU5MzhjYTMuLjM0M2I5Yzgg MTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5jCj4+ICsrKyBiL3hlbi9hcmNo L3g4Ni92bV9ldmVudC5jCj4+IEBAIC0xOCw2ICsxOCw3IEBACj4+ICAgKiBMaWNlbnNlIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCj4+ICAgKi8KPj4KPj4gKyNpbmNsdWRlIDxhc20vcDJtLmg+Cj4+ICAjaW5jbHVkZSA8 YXNtL3ZtX2V2ZW50Lmg+Cj4+Cj4+ICAvKiBJbXBsaWNpdGx5IHNlcmlhbGl6ZWQgYnkgdGhlIGRv bWN0bCBsb2NrLiAqLwo+PiBAQCAtNTYsOCArNTcsMTIgQEAgdm9pZCB2bV9ldmVudF9jbGVhbnVw X2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkKQo+PiAgICAgIGQtPmFyY2gubWVtX2FjY2Vzc19lbXVs YXRlX2VhY2hfcmVwID0gMDsKPj4gIH0KPj4KPj4gLXZvaWQgdm1fZXZlbnRfdG9nZ2xlX3Npbmds ZXN0ZXAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHZjcHUgKnYpCj4+ICt2b2lkIHZtX2V2ZW50 X3RvZ2dsZV9zaW5nbGVzdGVwKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2Y3B1ICp2LAo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bV9ldmVudF9yZXNwb25zZV90ICpyc3Ap Cj4+ICB7Cj4+ICsgICAgaWYgKCAhKHJzcC0+ZmxhZ3MgJiBWTV9FVkVOVF9GTEFHX1RPR0dMRV9T SU5HTEVTVEVQKSApCj4+ICsgICAgICAgIHJldHVybjsKPj4gKwo+PiAgICAgIGlmICggIWlzX2h2 bV9kb21haW4oZCkgKQo+PiAgICAgICAgICByZXR1cm47Cj4+Cj4+IEBAIC0xODYsNiArMTkxLDM0 IEBAIHZvaWQgdm1fZXZlbnRfZmlsbF9yZWdzKHZtX2V2ZW50X3JlcXVlc3RfdCAqcmVxKQo+PiAg ICAgIHJlcS0+ZGF0YS5yZWdzLng4Ni5jc19hcmJ5dGVzID0gc2VnLmF0dHIuYnl0ZXM7Cj4+ICB9 Cj4+Cj4+ICt2b2lkIHZtX2V2ZW50X2VtdWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYsIHZtX2V2 ZW50X3Jlc3BvbnNlX3QgKnJzcCkKPj4gK3sKPj4gKyAgICBpZiAoICEocnNwLT5mbGFncyAmIFZN X0VWRU5UX0ZMQUdfRU1VTEFURSkgKQo+PiArICAgIHsKPj4gKyAgICAgICAgdi0+YXJjaC52bV9l dmVudC0+ZW11bGF0ZV9mbGFncyA9IDA7Cj4+ICsgICAgICAgIHJldHVybjsKPj4gKyAgICB9Cj4+ ICsKPj4gKyAgICBzd2l0Y2ggKCByc3AtPnJlYXNvbiApCj4+ICsgICAgewo+PiArICAgIGNhc2Ug Vk1fRVZFTlRfUkVBU09OX01FTV9BQ0NFU1M6Cj4+ICsgICAgICAgIC8qCj4+ICsgICAgICAgICAq IEVtdWxhdGUgaWZmIHRoaXMgaXMgYSByZXNwb25zZSB0byBhIG1lbV9hY2Nlc3MgdmlvbGF0aW9u IGFuZCB0aGVyZQo+PiArICAgICAgICAgKiBhcmUgc3RpbGwgY29uZmxpY3RpbmcgbWVtX2FjY2Vz cyBwZXJtaXNzaW9ucyBpbi1wbGFjZS4KPj4gKyAgICAgICAgICovCj4+ICsgICAgICAgIGlmICgg cDJtX21lbV9hY2Nlc3NfZW11bGF0ZV9jaGVjayh2LCByc3ApICkKPj4gKyAgICAgICAgewo+PiAr ICAgICAgICAgICAgaWYgKCByc3AtPmZsYWdzICYgVk1fRVZFTlRfRkxBR19TRVRfRU1VTF9SRUFE X0RBVEEgKQo+PiArICAgICAgICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPmVtdWxfcmVhZF9k YXRhID0gcnNwLT5kYXRhLmVtdWxfcmVhZF9kYXRhOwo+PiArCj4+ICsgICAgICAgICAgICB2LT5h cmNoLnZtX2V2ZW50LT5lbXVsYXRlX2ZsYWdzID0gcnNwLT5mbGFnczsKPj4gKyAgICAgICAgfQo+ PiArICAgICAgICBicmVhazsKPj4gKyAgICBkZWZhdWx0Ogo+PiArICAgICAgICBicmVhazsKPj4g KyAgICB9Owo+PiArfQo+PiArCj4+ICAvKgo+PiAgICogTG9jYWwgdmFyaWFibGVzOgo+PiAgICog bW9kZTogQwo+PiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi92bV9ldmVudC5jIGIveGVuL2NvbW1v bi92bV9ldmVudC5jCj4+IGluZGV4IDgzOThhZjcuLjkwN2FiNDAgMTAwNjQ0Cj4+IC0tLSBhL3hl bi9jb21tb24vdm1fZXZlbnQuYwo+PiArKysgYi94ZW4vY29tbW9uL3ZtX2V2ZW50LmMKPj4gQEAg LTM5OCw0MiArMzk4LDQxIEBAIHZvaWQgdm1fZXZlbnRfcmVzdW1lKHN0cnVjdCBkb21haW4gKmQs IHN0cnVjdCB2bV9ldmVudF9kb21haW4gKnZlZCkKPj4gICAgICAgICAgICogSW4gc29tZSBjYXNl cyB0aGUgcmVzcG9uc2UgdHlwZSBuZWVkcyBleHRyYSBoYW5kbGluZywgc28gaGVyZQo+PiAgICAg ICAgICAgKiB3ZSBjYWxsIHRoZSBhcHByb3ByaWF0ZSBoYW5kbGVycy4KPj4gICAgICAgICAgICov Cj4+IC0gICAgICAgIHN3aXRjaCAoIHJzcC5yZWFzb24gKQo+PiAtICAgICAgICB7Cj4+IC0jaWZk ZWYgQ09ORklHX1g4Ngo+PiAtICAgICAgICBjYXNlIFZNX0VWRU5UX1JFQVNPTl9NT1ZfVE9fTVNS Ogo+PiAtI2VuZGlmCj4+IC0gICAgICAgIGNhc2UgVk1fRVZFTlRfUkVBU09OX1dSSVRFX0NUUkxS RUc6Cj4+IC0gICAgICAgICAgICB2bV9ldmVudF9yZWdpc3Rlcl93cml0ZV9yZXN1bWUodiwgJnJz cCk7Cj4+IC0gICAgICAgICAgICBicmVhazsKPj4gLQo+PiAtI2lmZGVmIENPTkZJR19IQVNfTUVN X0FDQ0VTUwo+PiAtICAgICAgICBjYXNlIFZNX0VWRU5UX1JFQVNPTl9NRU1fQUNDRVNTOgo+PiAt ICAgICAgICAgICAgbWVtX2FjY2Vzc19yZXN1bWUodiwgJnJzcCk7Cj4+IC0gICAgICAgICAgICBi cmVhazsKPj4gLSNlbmRpZgo+Pgo+PiArICAgICAgICAvKiBDaGVjayBmbGFncyB3aGljaCBhcHBs eSBvbmx5IHdoZW4gdGhlIHZDUFUgaXMgcGF1c2VkICovCj4+ICsgICAgICAgIGlmICggYXRvbWlj X3JlYWQoJnYtPnZtX2V2ZW50X3BhdXNlX2NvdW50KSApCj4+ICsgICAgICAgIHsKPj4gICNpZmRl ZiBDT05GSUdfSEFTX01FTV9QQUdJTkcKPj4gLSAgICAgICAgY2FzZSBWTV9FVkVOVF9SRUFTT05f TUVNX1BBR0lORzoKPj4gLSAgICAgICAgICAgIHAybV9tZW1fcGFnaW5nX3Jlc3VtZShkLCAmcnNw KTsKPj4gLSAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAgICAgICAgaWYgKCByc3AucmVhc29u ID09IFZNX0VWRU5UX1JFQVNPTl9NRU1fUEFHSU5HICkKPj4gKyAgICAgICAgICAgICAgICBwMm1f bWVtX3BhZ2luZ19yZXN1bWUoZCwgJnJzcCk7Cj4+ICAjZW5kaWYKPj4KPj4gLSAgICAgICAgfTsK Pj4gKyAgICAgICAgICAgIC8qCj4+ICsgICAgICAgICAgICAgKiBDaGVjayBlbXVsYXRpb24gZmxh Z3MgaW4gdGhlIGFyY2gtc3BlY2lmaWMgaGFuZGxlciBvbmx5LCBhcyBpdAo+PiArICAgICAgICAg ICAgICogaGFzIHRvIHNldCBhcmNoLXNwZWNpZmljIGZsYWdzIHdoZW4gc3VwcG9ydGVkLCBhbmQg dG8gYXZvaWQKPj4gKyAgICAgICAgICAgICAqIGJpdG1hc2sgb3ZlcmhlYWQgd2hlbiBpdCBpc24n dCBzdXBwb3J0ZWQuCj4+ICsgICAgICAgICAgICAgKi8KPj4gKyAgICAgICAgICAgIHZtX2V2ZW50 X2VtdWxhdGVfY2hlY2sodiwgJnJzcCk7Cj4+ICsKPj4gKyAgICAgICAgICAgIC8qCj4+ICsgICAg ICAgICAgICAgKiBDaGVjayBpbiBhcmNoLXNwZWNpZmljIGhhbmRsZXIgdG8gYXZvaWQgYml0bWFz ayBvdmVyaGVhZCB3aGVuCj4+ICsgICAgICAgICAgICAgKiBub3Qgc3VwcG9ydGVkLgo+PiArICAg ICAgICAgICAgICovCj4+ICsgICAgICAgICAgICB2bV9ldmVudF9yZWdpc3Rlcl93cml0ZV9yZXN1 bWUodiwgJnJzcCk7Cj4+Cj4+IC0gICAgICAgIC8qIENoZWNrIGZvciBhbHRwMm0gc3dpdGNoICov Cj4+IC0gICAgICAgIGlmICggcnNwLmZsYWdzICYgVk1fRVZFTlRfRkxBR19BTFRFUk5BVEVfUDJN ICkKPj4gLSAgICAgICAgICAgIHAybV9hbHRwMm1fY2hlY2sodiwgcnNwLmFsdHAybV9pZHgpOwo+ PiArICAgICAgICAgICAgLyoKPj4gKyAgICAgICAgICAgICAqIENoZWNrIGluIGFyY2gtc3BlY2lm aWMgaGFuZGxlciB0byBhdm9pZCBiaXRtYXNrIG92ZXJoZWFkIHdoZW4KPj4gKyAgICAgICAgICAg ICAqIG5vdCBzdXBwb3J0ZWQuCj4+ICsgICAgICAgICAgICAgKi8KPj4gKyAgICAgICAgICAgIHZt X2V2ZW50X3RvZ2dsZV9zaW5nbGVzdGVwKGQsIHYsICZyc3ApOwo+PiArCj4+ICsgICAgICAgICAg ICAvKiBDaGVjayBmb3IgYWx0cDJtIHN3aXRjaCAqLwo+PiArICAgICAgICAgICAgaWYgKCByc3Au ZmxhZ3MgJiBWTV9FVkVOVF9GTEFHX0FMVEVSTkFURV9QMk0gKQo+PiArICAgICAgICAgICAgICAg IHAybV9hbHRwMm1fY2hlY2sodiwgcnNwLmFsdHAybV9pZHgpOwo+Pgo+PiAtICAgICAgICAvKiBD aGVjayBmbGFncyB3aGljaCBhcHBseSBvbmx5IHdoZW4gdGhlIHZDUFUgaXMgcGF1c2VkICovCj4+ IC0gICAgICAgIGlmICggYXRvbWljX3JlYWQoJnYtPnZtX2V2ZW50X3BhdXNlX2NvdW50KSApCj4+ IC0gICAgICAgIHsKPj4gICAgICAgICAgICAgIGlmICggcnNwLmZsYWdzICYgVk1fRVZFTlRfRkxB R19TRVRfUkVHSVNURVJTICkKPj4gICAgICAgICAgICAgICAgICB2bV9ldmVudF9zZXRfcmVnaXN0 ZXJzKHYsICZyc3ApOwo+Pgo+PiAtICAgICAgICAgICAgaWYgKCByc3AuZmxhZ3MgJiBWTV9FVkVO VF9GTEFHX1RPR0dMRV9TSU5HTEVTVEVQICkKPj4gLSAgICAgICAgICAgICAgICB2bV9ldmVudF90 b2dnbGVfc2luZ2xlc3RlcChkLCB2KTsKPj4gLQo+PiAgICAgICAgICAgICAgaWYgKCByc3AuZmxh Z3MgJiBWTV9FVkVOVF9GTEFHX1ZDUFVfUEFVU0VEICkKPj4gICAgICAgICAgICAgICAgICB2bV9l dmVudF92Y3B1X3VucGF1c2Uodik7Cj4+ICAgICAgICAgIH0KPj4gZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS1hcm0vcDJtLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCj4+IGluZGV4 IDUzYzRkNzguLjVlOWJjNTQgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJt LmgKPj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaAo+PiBAQCAtMTIxLDEwICsxMjEs MTAgQEAgdHlwZWRlZiBlbnVtIHsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJt X3RvX21hc2socDJtX21hcF9mb3JlaWduKSkpCj4+Cj4+ICBzdGF0aWMgaW5saW5lCj4+IC12b2lk IHAybV9tZW1fYWNjZXNzX2VtdWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYsCj4+ICtib29sX3Qg cDJtX21lbV9hY2Nlc3NfZW11bGF0ZV9jaGVjayhzdHJ1Y3QgdmNwdSAqdiwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2bV9ldmVudF9yZXNwb25zZV90ICpyc3Ap Cj4+ICB7Cj4+IC0gICAgLyogTm90IHN1cHBvcnRlZCBvbiBBUk0uICovCj4+ICsgICAgcmV0dXJu IGZhbHNlOwo+PiAgfQo+Pgo+PiAgc3RhdGljIGlubGluZQo+PiBkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLWFybS92bV9ldmVudC5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS92bV9ldmVudC5o Cj4+IGluZGV4IDk0ODI2MzYuLjY2ZjI0NzQgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL2Fz bS1hcm0vdm1fZXZlbnQuaAo+PiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3ZtX2V2ZW50LmgK Pj4gQEAgLTM0LDcgKzM0LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHZtX2V2ZW50X2NsZWFudXBf ZG9tYWluKHN0cnVjdCBkb21haW4gKmQpCj4+ICAgICAgbWVtc2V0KCZkLT5tb25pdG9yLCAwLCBz aXplb2YoZC0+bW9uaXRvcikpOwo+PiAgfQo+Pgo+PiAtc3RhdGljIGlubGluZSB2b2lkIHZtX2V2 ZW50X3RvZ2dsZV9zaW5nbGVzdGVwKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2Y3B1ICp2KQo+ PiArc3RhdGljIGlubGluZSB2b2lkIHZtX2V2ZW50X3RvZ2dsZV9zaW5nbGVzdGVwKHN0cnVjdCBk b21haW4gKmQsIHN0cnVjdCB2Y3B1ICp2LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkKPj4gIHsKPj4gICAg ICAvKiBOb3Qgc3VwcG9ydGVkIG9uIEFSTS4gKi8KPj4gIH0KPj4gQEAgLTQ1LDQgKzQ2LDEwIEBA IHZvaWQgdm1fZXZlbnRfcmVnaXN0ZXJfd3JpdGVfcmVzdW1lKHN0cnVjdCB2Y3B1ICp2LCB2bV9l dmVudF9yZXNwb25zZV90ICpyc3ApCj4+ICAgICAgLyogTm90IHN1cHBvcnRlZCBvbiBBUk0uICov Cj4+ICB9Cj4+Cj4+ICtzdGF0aWMgaW5saW5lCj4+ICt2b2lkIHZtX2V2ZW50X2VtdWxhdGVfY2hl Y2soc3RydWN0IHZjcHUgKnYsIHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkKPj4gK3sKPj4gKyAg ICAvKiBOb3Qgc3VwcG9ydGVkIG9uIEFSTS4gKi8KPj4gK30KPj4gKwo+PiAgI2VuZGlmIC8qIF9f QVNNX0FSTV9WTV9FVkVOVF9IX18gKi8KPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvcDJtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCj4+IGluZGV4IDlmYzllYWQuLjE4 OTdkZWYgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKPj4gKysrIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAo+PiBAQCAtNjc3LDggKzY3Nyw4IEBAIGJvb2xfdCBw Mm1fbWVtX2FjY2Vzc19jaGVjayhwYWRkcl90IGdwYSwgdW5zaWduZWQgbG9uZyBnbGEsCj4+Cj4+ ICAvKiBDaGVjayBmb3IgZW11bGF0aW9uIGFuZCBtYXJrIHZjcHUgZm9yIHNraXBwaW5nIG9uZSBp bnN0cnVjdGlvbgo+PiAgICogdXBvbiByZXNjaGVkdWxpbmcgaWYgcmVxdWlyZWQuICovCj4+IC12 b2lkIHAybV9tZW1fYWNjZXNzX2VtdWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYsCj4+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm1fZXZlbnRfcmVzcG9uc2VfdCAq cnNwKTsKPj4gK2Jvb2xfdCBwMm1fbWVtX2FjY2Vzc19lbXVsYXRlX2NoZWNrKHN0cnVjdCB2Y3B1 ICp2LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm1fZXZl bnRfcmVzcG9uc2VfdCAqcnNwKTsKPj4KPj4gIC8qIFNhbml0eSBjaGVjayBmb3IgbWVtX2FjY2Vz cyBoYXJkd2FyZSBzdXBwb3J0ICovCj4+ICBzdGF0aWMgaW5saW5lIGJvb2xfdCBwMm1fbWVtX2Fj Y2Vzc19zYW5pdHlfY2hlY2soc3RydWN0IGRvbWFpbiAqZCkKPj4gZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS14ODYvdm1fZXZlbnQuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvdm1fZXZlbnQu aAo+PiBpbmRleCAyOTRkZWY2Li5lYmI1ZDg4IDEwMDY0NAo+PiAtLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L3ZtX2V2ZW50LmgKPj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni92bV9ldmVudC5o Cj4+IEBAIC0zNSw4ICszNSwxMSBAQCBpbnQgdm1fZXZlbnRfaW5pdF9kb21haW4oc3RydWN0IGRv bWFpbiAqZCk7Cj4+Cj4+ICB2b2lkIHZtX2V2ZW50X2NsZWFudXBfZG9tYWluKHN0cnVjdCBkb21h aW4gKmQpOwo+Pgo+PiAtdm9pZCB2bV9ldmVudF90b2dnbGVfc2luZ2xlc3RlcChzdHJ1Y3QgZG9t YWluICpkLCBzdHJ1Y3QgdmNwdSAqdik7Cj4+ICt2b2lkIHZtX2V2ZW50X3RvZ2dsZV9zaW5nbGVz dGVwKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2Y3B1ICp2LAo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2bV9ldmVudF9yZXNwb25zZV90ICpyc3ApOwo+Pgo+PiAgdm9pZCB2 bV9ldmVudF9yZWdpc3Rlcl93cml0ZV9yZXN1bWUoc3RydWN0IHZjcHUgKnYsIHZtX2V2ZW50X3Jl c3BvbnNlX3QgKnJzcCk7Cj4+Cj4+ICt2b2lkIHZtX2V2ZW50X2VtdWxhdGVfY2hlY2soc3RydWN0 IHZjcHUgKnYsIHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCk7Cj4+ICsKPj4gICNlbmRpZiAvKiBf X0FTTV9YODZfVk1fRVZFTlRfSF9fICovCj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4v bWVtX2FjY2Vzcy5oIGIveGVuL2luY2x1ZGUveGVuL21lbV9hY2Nlc3MuaAo+PiBpbmRleCAzZDA1 NGUwLi5kYTM2ZTA3IDEwMDY0NAo+PiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vbWVtX2FjY2Vzcy5o Cj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9tZW1fYWNjZXNzLmgKPj4gQEAgLTMwLDEyICszMCw2 IEBACj4+ICBpbnQgbWVtX2FjY2Vzc19tZW1vcCh1bnNpZ25lZCBsb25nIGNtZCwKPj4gICAgICAg ICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX21lbV9hY2Nlc3Nfb3Bf dCkgYXJnKTsKPj4KPj4gLXN0YXRpYyBpbmxpbmUKPj4gLXZvaWQgbWVtX2FjY2Vzc19yZXN1bWUo c3RydWN0IHZjcHUgKnYsIHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkKPj4gLXsKPj4gLSAgICBw Mm1fbWVtX2FjY2Vzc19lbXVsYXRlX2NoZWNrKHYsIHJzcCk7Cj4+IC19Cj4+IC0KPj4gICNlbHNl Cj4+Cj4+ICBzdGF0aWMgaW5saW5lCj4+IEBAIC00NSwxMiArMzksNiBAQCBpbnQgbWVtX2FjY2Vz c19tZW1vcCh1bnNpZ25lZCBsb25nIGNtZCwKPj4gICAgICByZXR1cm4gLUVOT1NZUzsKPj4gIH0K Pj4KPj4gLXN0YXRpYyBpbmxpbmUKPj4gLXZvaWQgbWVtX2FjY2Vzc19yZXN1bWUoc3RydWN0IHZj cHUgKnZjcHUsIHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkKPj4gLXsKPj4gLSAgICAvKiBOb3Ro aW5nIHRvIGRvLiAqLwo+PiAtfQo+PiAtCj4+ICAjZW5kaWYgLyogSEFTX01FTV9BQ0NFU1MgKi8K Pj4KPj4gICNlbmRpZiAvKiBfWEVOX0FTTV9NRU1fQUNDRVNTX0ggKi8KPj4KPgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==