From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: [PATCH 1/2] vm_event: Sanitize vm_event response handling Date: Tue, 13 Sep 2016 12:12:22 -0600 Message-ID: <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 1bjsCF-00087F-AP for xen-devel@lists.xenproject.org; Tue, 13 Sep 2016 18:12:39 +0000 Received: by mail-pf0-f196.google.com with SMTP id 128so9886432pfb.0 for ; Tue, 13 Sep 2016 11:12:37 -0700 (PDT) List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Razvan Cojocaru , George Dunlap , Tamas K Lengyel , Julien Grall , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org U2V0dGluZyByZXNwb25zZSBmbGFncyBpbiB2bV9ldmVudCBhcmUgb25seSBldmVyIHNhZmUgaWYg dGhlIHZDUFVzIGFyZSBwYXVzZWQuClRvIHJlZmxlY3QgdGhpcyB3ZSBtb3ZlIGFsbCBjaGVja3Mg d2l0aGluIHRoZSBpZiBibG9jayB0aGF0IGFscmVhZHkgY2hlY2tzCndoZXRoZXIgdGhpcyBpcyB0 aGUgY2FzZS4gQ2hlY2tzIHRoYXQgYXJlIG9ubHkgc3VwcG9ydGVkIG9uIG9uZSBhcmNoaXRlY3R1 cmUKd2UgcmVsb2NhdGUgdGhlIGJpdG1hc2sgb3BlcmF0aW9ucyB0byB0aGUgYXJjaC1zcGVjaWZp YyBoYW5kbGVycyB0byBhdm9pZAp0aGUgb3ZlcmhlYWQgb24gYXJjaGl0ZWN0dXJlcyB0aGF0IGRv bid0IHN1cHBvcnQgaXQuCgpGdXJ0aGVybW9yZSwgd2UgY2xlYW4tdXAgdGhlIGVtdWxhdGlvbiBj aGVja3Mgc28gaXQgbW9yZSBjbGVhcmx5IHJlcHJlc2VudHMgdGhlCmRlY2lzaW9uLWxvZ2ljIHdo ZW4gZW11bGF0aW9uIHNob3VsZCB0YWtlIHBsYWNlLiBBcyBwYXJ0IG9mIHRoaXMgd2UgYWxzbwpz ZXQgdGhlIHN0YWdlIHRvIGFsbG93IGVtdWxhdGlvbiBpbiByZXNwb25zZSB0byBvdGhlciB0eXBl cyBvZiBldmVudHMsIG5vdCBqdXN0Cm1lbV9hY2Nlc3MgdmlvbGF0aW9ucy4KClNpZ25lZC1vZmYt Ynk6IFRhbWFzIEsgTGVuZ3llbCA8dGFtYXMubGVuZ3llbEB6ZW50aWZpYy5jb20+Ci0tLQpDYzog R2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA Y2l0cml4LmNvbT4KQ2M6IFJhenZhbiBDb2pvY2FydSA8cmNvam9jYXJ1QGJpdGRlZmVuZGVyLmNv bT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEp1 bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Ci0tLQogeGVuL2FyY2gveDg2L21tL3Ay bS5jICAgICAgICAgIHwgODEgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiB4ZW4vYXJjaC94ODYvdm1fZXZlbnQuYyAgICAgICAgfCAzNSArKysrKysrKysrKysrKysr Ky0KIHhlbi9jb21tb24vdm1fZXZlbnQuYyAgICAgICAgICB8IDUzICsrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaCAgICAgIHwgIDQgKy0tCiB4ZW4v aW5jbHVkZS9hc20tYXJtL3ZtX2V2ZW50LmggfCAgOSArKysrLQogeGVuL2luY2x1ZGUvYXNtLXg4 Ni9wMm0uaCAgICAgIHwgIDQgKy0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L3ZtX2V2ZW50LmggfCAg NSArKy0KIHhlbi9pbmNsdWRlL3hlbi9tZW1fYWNjZXNzLmggICB8IDEyIC0tLS0tLS0KIDggZmls ZXMgY2hhbmdlZCwgMTEzIGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCA3 ZDE0YzNiLi42YzAxODY4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIv eGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC0xNTg4LDYyICsxNTg4LDU1IEBAIHZvaWQgcDJtX21l bV9wYWdpbmdfcmVzdW1lKHN0cnVjdCBkb21haW4gKmQsIHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJz cCkKICAgICB9CiB9CiAKLXZvaWQgcDJtX21lbV9hY2Nlc3NfZW11bGF0ZV9jaGVjayhzdHJ1Y3Qg dmNwdSAqdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2bV9ldmVu dF9yZXNwb25zZV90ICpyc3ApCitib29sX3QgcDJtX21lbV9hY2Nlc3NfZW11bGF0ZV9jaGVjayhz dHJ1Y3QgdmNwdSAqdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkKIHsKLSAgICAvKiBNYXJrIHZjcHUgZm9yIHNraXBw aW5nIG9uZSBpbnN0cnVjdGlvbiB1cG9uIHJlc2NoZWR1bGluZy4gKi8KLSAgICBpZiAoIHJzcC0+ ZmxhZ3MgJiBWTV9FVkVOVF9GTEFHX0VNVUxBVEUgKQotICAgIHsKLSAgICAgICAgeGVubWVtX2Fj Y2Vzc190IGFjY2VzczsKLSAgICAgICAgYm9vbF90IHZpb2xhdGlvbiA9IDE7Ci0gICAgICAgIGNv bnN0IHN0cnVjdCB2bV9ldmVudF9tZW1fYWNjZXNzICpkYXRhID0gJnJzcC0+dS5tZW1fYWNjZXNz OworICAgIHhlbm1lbV9hY2Nlc3NfdCBhY2Nlc3M7CisgICAgYm9vbF90IHZpb2xhdGlvbiA9IDE7 CisgICAgY29uc3Qgc3RydWN0IHZtX2V2ZW50X21lbV9hY2Nlc3MgKmRhdGEgPSAmcnNwLT51Lm1l bV9hY2Nlc3M7CiAKLSAgICAgICAgaWYgKCBwMm1fZ2V0X21lbV9hY2Nlc3Modi0+ZG9tYWluLCBf Z2ZuKGRhdGEtPmdmbiksICZhY2Nlc3MpID09IDAgKQorICAgIGlmICggcDJtX2dldF9tZW1fYWNj ZXNzKHYtPmRvbWFpbiwgX2dmbihkYXRhLT5nZm4pLCAmYWNjZXNzKSA9PSAwICkKKyAgICB7Cisg ICAgICAgIHN3aXRjaCAoIGFjY2VzcyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN3aXRjaCAo IGFjY2VzcyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICBjYXNlIFhFTk1FTV9hY2Nlc3Nf bjoKLSAgICAgICAgICAgIGNhc2UgWEVOTUVNX2FjY2Vzc19uMnJ3eDoKLSAgICAgICAgICAgIGRl ZmF1bHQ6Ci0gICAgICAgICAgICAgICAgdmlvbGF0aW9uID0gZGF0YS0+ZmxhZ3MgJiBNRU1fQUND RVNTX1JXWDsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYRU5NRU1fYWNj ZXNzX246CisgICAgICAgIGNhc2UgWEVOTUVNX2FjY2Vzc19uMnJ3eDoKKyAgICAgICAgZGVmYXVs dDoKKyAgICAgICAgICAgIHZpb2xhdGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19SV1g7 CisgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX3I6 Ci0gICAgICAgICAgICAgICAgdmlvbGF0aW9uID0gZGF0YS0+ZmxhZ3MgJiBNRU1fQUNDRVNTX1dY OwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhFTk1FTV9hY2Nlc3NfcjoK KyAgICAgICAgICAgIHZpb2xhdGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19XWDsKKyAg ICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBjYXNlIFhFTk1FTV9hY2Nlc3NfdzoKLSAg ICAgICAgICAgICAgICB2aW9sYXRpb24gPSBkYXRhLT5mbGFncyAmIE1FTV9BQ0NFU1NfUlg7Ci0g ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWEVOTUVNX2FjY2Vzc193OgorICAg ICAgICAgICAgdmlvbGF0aW9uID0gZGF0YS0+ZmxhZ3MgJiBNRU1fQUNDRVNTX1JYOworICAgICAg ICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIGNhc2UgWEVOTUVNX2FjY2Vzc194OgotICAgICAg ICAgICAgICAgIHZpb2xhdGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19SVzsKLSAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX3g6CisgICAgICAg ICAgICB2aW9sYXRpb24gPSBkYXRhLT5mbGFncyAmIE1FTV9BQ0NFU1NfUlc7CisgICAgICAgICAg ICBicmVhazsKIAotICAgICAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX3J4OgotICAgICAgICAg ICAgY2FzZSBYRU5NRU1fYWNjZXNzX3J4MnJ3OgotICAgICAgICAgICAgICAgIHZpb2xhdGlvbiA9 IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19XOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICBjYXNlIFhFTk1FTV9hY2Nlc3Nfcng6CisgICAgICAgIGNhc2UgWEVOTUVNX2FjY2Vzc19y eDJydzoKKyAgICAgICAgICAgIHZpb2xhdGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19X OworICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIGNhc2UgWEVOTUVNX2FjY2Vzc193 eDoKLSAgICAgICAgICAgICAgICB2aW9sYXRpb24gPSBkYXRhLT5mbGFncyAmIE1FTV9BQ0NFU1Nf UjsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX3d4 OgorICAgICAgICAgICAgdmlvbGF0aW9uID0gZGF0YS0+ZmxhZ3MgJiBNRU1fQUNDRVNTX1I7Cisg ICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgY2FzZSBYRU5NRU1fYWNjZXNzX3J3Ogot ICAgICAgICAgICAgICAgIHZpb2xhdGlvbiA9IGRhdGEtPmZsYWdzICYgTUVNX0FDQ0VTU19YOwot ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFhFTk1FTV9hY2Nlc3Nfcnc6Cisg ICAgICAgICAgICB2aW9sYXRpb24gPSBkYXRhLT5mbGFncyAmIE1FTV9BQ0NFU1NfWDsKKyAgICAg ICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBjYXNlIFhFTk1FTV9hY2Nlc3Nfcnd4OgotICAg ICAgICAgICAgICAgIHZpb2xhdGlvbiA9IDA7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgICAgICB9CisgICAgICAgIGNhc2UgWEVOTUVNX2FjY2Vzc19yd3g6CisgICAgICAgICAgICB2 aW9sYXRpb24gPSAwOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLQotICAgICAgICB2 LT5hcmNoLnZtX2V2ZW50LT5lbXVsYXRlX2ZsYWdzID0gdmlvbGF0aW9uID8gcnNwLT5mbGFncyA6 IDA7Ci0KLSAgICAgICAgaWYgKCAocnNwLT5mbGFncyAmIFZNX0VWRU5UX0ZMQUdfU0VUX0VNVUxf UkVBRF9EQVRBKSApCi0gICAgICAgICAgICB2LT5hcmNoLnZtX2V2ZW50LT5lbXVsX3JlYWRfZGF0 YSA9IHJzcC0+ZGF0YS5lbXVsX3JlYWRfZGF0YTsKICAgICB9CisKKyAgICByZXR1cm4gdmlvbGF0 aW9uOwogfQogCiB2b2lkIHAybV9hbHRwMm1fY2hlY2soc3RydWN0IHZjcHUgKnYsIHVpbnQxNl90 IGlkeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5jIGIveGVuL2FyY2gveDg2 L3ZtX2V2ZW50LmMKaW5kZXggZTkzOGNhMy4uMzQzYjljOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L3ZtX2V2ZW50LmMKKysrIGIveGVuL2FyY2gveDg2L3ZtX2V2ZW50LmMKQEAgLTE4LDYgKzE4 LDcgQEAKICAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICAqLwogCisjaW5jbHVkZSA8YXNtL3AybS5o PgogI2luY2x1ZGUgPGFzbS92bV9ldmVudC5oPgogCiAvKiBJbXBsaWNpdGx5IHNlcmlhbGl6ZWQg YnkgdGhlIGRvbWN0bCBsb2NrLiAqLwpAQCAtNTYsOCArNTcsMTIgQEAgdm9pZCB2bV9ldmVudF9j bGVhbnVwX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkKQogICAgIGQtPmFyY2gubWVtX2FjY2Vzc19l bXVsYXRlX2VhY2hfcmVwID0gMDsKIH0KIAotdm9pZCB2bV9ldmVudF90b2dnbGVfc2luZ2xlc3Rl cChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgdmNwdSAqdikKK3ZvaWQgdm1fZXZlbnRfdG9nZ2xl X3NpbmdsZXN0ZXAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHZjcHUgKnYsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkKIHsKKyAgICBp ZiAoICEocnNwLT5mbGFncyAmIFZNX0VWRU5UX0ZMQUdfVE9HR0xFX1NJTkdMRVNURVApICkKKyAg ICAgICAgcmV0dXJuOworCiAgICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCiAgICAgICAgIHJl dHVybjsKIApAQCAtMTg2LDYgKzE5MSwzNCBAQCB2b2lkIHZtX2V2ZW50X2ZpbGxfcmVncyh2bV9l dmVudF9yZXF1ZXN0X3QgKnJlcSkKICAgICByZXEtPmRhdGEucmVncy54ODYuY3NfYXJieXRlcyA9 IHNlZy5hdHRyLmJ5dGVzOwogfQogCit2b2lkIHZtX2V2ZW50X2VtdWxhdGVfY2hlY2soc3RydWN0 IHZjcHUgKnYsIHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkKK3sKKyAgICBpZiAoICEocnNwLT5m bGFncyAmIFZNX0VWRU5UX0ZMQUdfRU1VTEFURSkgKQorICAgIHsKKyAgICAgICAgdi0+YXJjaC52 bV9ldmVudC0+ZW11bGF0ZV9mbGFncyA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg ICBzd2l0Y2ggKCByc3AtPnJlYXNvbiApCisgICAgeworICAgIGNhc2UgVk1fRVZFTlRfUkVBU09O X01FTV9BQ0NFU1M6CisgICAgICAgIC8qCisgICAgICAgICAqIEVtdWxhdGUgaWZmIHRoaXMgaXMg YSByZXNwb25zZSB0byBhIG1lbV9hY2Nlc3MgdmlvbGF0aW9uIGFuZCB0aGVyZQorICAgICAgICAg KiBhcmUgc3RpbGwgY29uZmxpY3RpbmcgbWVtX2FjY2VzcyBwZXJtaXNzaW9ucyBpbi1wbGFjZS4K KyAgICAgICAgICovCisgICAgICAgIGlmICggcDJtX21lbV9hY2Nlc3NfZW11bGF0ZV9jaGVjayh2 LCByc3ApICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCByc3AtPmZsYWdzICYgVk1fRVZF TlRfRkxBR19TRVRfRU1VTF9SRUFEX0RBVEEgKQorICAgICAgICAgICAgICAgIHYtPmFyY2gudm1f ZXZlbnQtPmVtdWxfcmVhZF9kYXRhID0gcnNwLT5kYXRhLmVtdWxfcmVhZF9kYXRhOworCisgICAg ICAgICAgICB2LT5hcmNoLnZtX2V2ZW50LT5lbXVsYXRlX2ZsYWdzID0gcnNwLT5mbGFnczsKKyAg ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAg ICB9OworfQorCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi92bV9ldmVudC5jIGIveGVuL2NvbW1vbi92bV9ldmVudC5jCmluZGV4IDgz OThhZjcuLjkwN2FiNDAgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vdm1fZXZlbnQuYworKysgYi94 ZW4vY29tbW9uL3ZtX2V2ZW50LmMKQEAgLTM5OCw0MiArMzk4LDQxIEBAIHZvaWQgdm1fZXZlbnRf cmVzdW1lKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2bV9ldmVudF9kb21haW4gKnZlZCkKICAg ICAgICAgICogSW4gc29tZSBjYXNlcyB0aGUgcmVzcG9uc2UgdHlwZSBuZWVkcyBleHRyYSBoYW5k bGluZywgc28gaGVyZQogICAgICAgICAgKiB3ZSBjYWxsIHRoZSBhcHByb3ByaWF0ZSBoYW5kbGVy cy4KICAgICAgICAgICovCi0gICAgICAgIHN3aXRjaCAoIHJzcC5yZWFzb24gKQotICAgICAgICB7 Ci0jaWZkZWYgQ09ORklHX1g4NgotICAgICAgICBjYXNlIFZNX0VWRU5UX1JFQVNPTl9NT1ZfVE9f TVNSOgotI2VuZGlmCi0gICAgICAgIGNhc2UgVk1fRVZFTlRfUkVBU09OX1dSSVRFX0NUUkxSRUc6 Ci0gICAgICAgICAgICB2bV9ldmVudF9yZWdpc3Rlcl93cml0ZV9yZXN1bWUodiwgJnJzcCk7Ci0g ICAgICAgICAgICBicmVhazsKLQotI2lmZGVmIENPTkZJR19IQVNfTUVNX0FDQ0VTUwotICAgICAg ICBjYXNlIFZNX0VWRU5UX1JFQVNPTl9NRU1fQUNDRVNTOgotICAgICAgICAgICAgbWVtX2FjY2Vz c19yZXN1bWUodiwgJnJzcCk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgogCisgICAgICAg IC8qIENoZWNrIGZsYWdzIHdoaWNoIGFwcGx5IG9ubHkgd2hlbiB0aGUgdkNQVSBpcyBwYXVzZWQg Ki8KKyAgICAgICAgaWYgKCBhdG9taWNfcmVhZCgmdi0+dm1fZXZlbnRfcGF1c2VfY291bnQpICkK KyAgICAgICAgewogI2lmZGVmIENPTkZJR19IQVNfTUVNX1BBR0lORwotICAgICAgICBjYXNlIFZN X0VWRU5UX1JFQVNPTl9NRU1fUEFHSU5HOgotICAgICAgICAgICAgcDJtX21lbV9wYWdpbmdfcmVz dW1lKGQsICZyc3ApOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAoIHJzcC5y ZWFzb24gPT0gVk1fRVZFTlRfUkVBU09OX01FTV9QQUdJTkcgKQorICAgICAgICAgICAgICAgIHAy bV9tZW1fcGFnaW5nX3Jlc3VtZShkLCAmcnNwKTsKICNlbmRpZgogCi0gICAgICAgIH07CisgICAg ICAgICAgICAvKgorICAgICAgICAgICAgICogQ2hlY2sgZW11bGF0aW9uIGZsYWdzIGluIHRoZSBh cmNoLXNwZWNpZmljIGhhbmRsZXIgb25seSwgYXMgaXQKKyAgICAgICAgICAgICAqIGhhcyB0byBz ZXQgYXJjaC1zcGVjaWZpYyBmbGFncyB3aGVuIHN1cHBvcnRlZCwgYW5kIHRvIGF2b2lkCisgICAg ICAgICAgICAgKiBiaXRtYXNrIG92ZXJoZWFkIHdoZW4gaXQgaXNuJ3Qgc3VwcG9ydGVkLgorICAg ICAgICAgICAgICovCisgICAgICAgICAgICB2bV9ldmVudF9lbXVsYXRlX2NoZWNrKHYsICZyc3Ap OworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogQ2hlY2sgaW4gYXJjaC1zcGVjaWZp YyBoYW5kbGVyIHRvIGF2b2lkIGJpdG1hc2sgb3ZlcmhlYWQgd2hlbgorICAgICAgICAgICAgICog bm90IHN1cHBvcnRlZC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgdm1fZXZlbnRfcmVn aXN0ZXJfd3JpdGVfcmVzdW1lKHYsICZyc3ApOwogCi0gICAgICAgIC8qIENoZWNrIGZvciBhbHRw Mm0gc3dpdGNoICovCi0gICAgICAgIGlmICggcnNwLmZsYWdzICYgVk1fRVZFTlRfRkxBR19BTFRF Uk5BVEVfUDJNICkKLSAgICAgICAgICAgIHAybV9hbHRwMm1fY2hlY2sodiwgcnNwLmFsdHAybV9p ZHgpOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIENoZWNrIGluIGFyY2gtc3BlY2lm aWMgaGFuZGxlciB0byBhdm9pZCBiaXRtYXNrIG92ZXJoZWFkIHdoZW4KKyAgICAgICAgICAgICAq IG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHZtX2V2ZW50X3Rv Z2dsZV9zaW5nbGVzdGVwKGQsIHYsICZyc3ApOworCisgICAgICAgICAgICAvKiBDaGVjayBmb3Ig YWx0cDJtIHN3aXRjaCAqLworICAgICAgICAgICAgaWYgKCByc3AuZmxhZ3MgJiBWTV9FVkVOVF9G TEFHX0FMVEVSTkFURV9QMk0gKQorICAgICAgICAgICAgICAgIHAybV9hbHRwMm1fY2hlY2sodiwg cnNwLmFsdHAybV9pZHgpOwogCi0gICAgICAgIC8qIENoZWNrIGZsYWdzIHdoaWNoIGFwcGx5IG9u bHkgd2hlbiB0aGUgdkNQVSBpcyBwYXVzZWQgKi8KLSAgICAgICAgaWYgKCBhdG9taWNfcmVhZCgm di0+dm1fZXZlbnRfcGF1c2VfY291bnQpICkKLSAgICAgICAgewogICAgICAgICAgICAgaWYgKCBy c3AuZmxhZ3MgJiBWTV9FVkVOVF9GTEFHX1NFVF9SRUdJU1RFUlMgKQogICAgICAgICAgICAgICAg IHZtX2V2ZW50X3NldF9yZWdpc3RlcnModiwgJnJzcCk7CiAKLSAgICAgICAgICAgIGlmICggcnNw LmZsYWdzICYgVk1fRVZFTlRfRkxBR19UT0dHTEVfU0lOR0xFU1RFUCApCi0gICAgICAgICAgICAg ICAgdm1fZXZlbnRfdG9nZ2xlX3NpbmdsZXN0ZXAoZCwgdik7Ci0KICAgICAgICAgICAgIGlmICgg cnNwLmZsYWdzICYgVk1fRVZFTlRfRkxBR19WQ1BVX1BBVVNFRCApCiAgICAgICAgICAgICAgICAg dm1fZXZlbnRfdmNwdV91bnBhdXNlKHYpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20tYXJtL3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaAppbmRleCA1M2M0 ZDc4Li41ZTliYzU0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCisrKyBi L3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKQEAgLTEyMSwxMCArMTIxLDEwIEBAIHR5cGVkZWYg ZW51bSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV90b19tYXNrKHAybV9tYXBf Zm9yZWlnbikpKQogCiBzdGF0aWMgaW5saW5lCi12b2lkIHAybV9tZW1fYWNjZXNzX2VtdWxhdGVf Y2hlY2soc3RydWN0IHZjcHUgKnYsCitib29sX3QgcDJtX21lbV9hY2Nlc3NfZW11bGF0ZV9jaGVj ayhzdHJ1Y3QgdmNwdSAqdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCB2bV9ldmVudF9yZXNwb25zZV90ICpyc3ApCiB7Ci0gICAgLyogTm90IHN1cHBvcnRlZCBvbiBB Uk0uICovCisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgaW5saW5lCmRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS9hc20tYXJtL3ZtX2V2ZW50LmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3Zt X2V2ZW50LmgKaW5kZXggOTQ4MjYzNi4uNjZmMjQ3NCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv YXNtLWFybS92bV9ldmVudC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vdm1fZXZlbnQuaApA QCAtMzQsNyArMzQsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdm1fZXZlbnRfY2xlYW51cF9kb21h aW4oc3RydWN0IGRvbWFpbiAqZCkKICAgICBtZW1zZXQoJmQtPm1vbml0b3IsIDAsIHNpemVvZihk LT5tb25pdG9yKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCB2bV9ldmVudF90b2dnbGVfc2lu Z2xlc3RlcChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgdmNwdSAqdikKK3N0YXRpYyBpbmxpbmUg dm9pZCB2bV9ldmVudF90b2dnbGVfc2luZ2xlc3RlcChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qg dmNwdSAqdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 bV9ldmVudF9yZXNwb25zZV90ICpyc3ApCiB7CiAgICAgLyogTm90IHN1cHBvcnRlZCBvbiBBUk0u ICovCiB9CkBAIC00NSw0ICs0NiwxMCBAQCB2b2lkIHZtX2V2ZW50X3JlZ2lzdGVyX3dyaXRlX3Jl c3VtZShzdHJ1Y3QgdmNwdSAqdiwgdm1fZXZlbnRfcmVzcG9uc2VfdCAqcnNwKQogICAgIC8qIE5v dCBzdXBwb3J0ZWQgb24gQVJNLiAqLwogfQogCitzdGF0aWMgaW5saW5lCit2b2lkIHZtX2V2ZW50 X2VtdWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYsIHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkK K3sKKyAgICAvKiBOb3Qgc3VwcG9ydGVkIG9uIEFSTS4gKi8KK30KKwogI2VuZGlmIC8qIF9fQVNN X0FSTV9WTV9FVkVOVF9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJt LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCmluZGV4IDlmYzllYWQuLjE4OTdkZWYgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9wMm0uaApAQCAtNjc3LDggKzY3Nyw4IEBAIGJvb2xfdCBwMm1fbWVtX2FjY2Vzc19jaGVj ayhwYWRkcl90IGdwYSwgdW5zaWduZWQgbG9uZyBnbGEsCiAKIC8qIENoZWNrIGZvciBlbXVsYXRp b24gYW5kIG1hcmsgdmNwdSBmb3Igc2tpcHBpbmcgb25lIGluc3RydWN0aW9uCiAgKiB1cG9uIHJl c2NoZWR1bGluZyBpZiByZXF1aXJlZC4gKi8KLXZvaWQgcDJtX21lbV9hY2Nlc3NfZW11bGF0ZV9j aGVjayhzdHJ1Y3QgdmNwdSAqdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCB2bV9ldmVudF9yZXNwb25zZV90ICpyc3ApOworYm9vbF90IHAybV9tZW1fYWNjZXNzX2Vt dWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCB2bV9ldmVudF9yZXNwb25zZV90ICpyc3ApOwogCiAvKiBTYW5pdHkgY2hl Y2sgZm9yIG1lbV9hY2Nlc3MgaGFyZHdhcmUgc3VwcG9ydCAqLwogc3RhdGljIGlubGluZSBib29s X3QgcDJtX21lbV9hY2Nlc3Nfc2FuaXR5X2NoZWNrKHN0cnVjdCBkb21haW4gKmQpCmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3ZtX2V2ZW50LmggYi94ZW4vaW5jbHVkZS9hc20teDg2 L3ZtX2V2ZW50LmgKaW5kZXggMjk0ZGVmNi4uZWJiNWQ4OCAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni92bV9ldmVudC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvdm1fZXZlbnQu aApAQCAtMzUsOCArMzUsMTEgQEAgaW50IHZtX2V2ZW50X2luaXRfZG9tYWluKHN0cnVjdCBkb21h aW4gKmQpOwogCiB2b2lkIHZtX2V2ZW50X2NsZWFudXBfZG9tYWluKHN0cnVjdCBkb21haW4gKmQp OwogCi12b2lkIHZtX2V2ZW50X3RvZ2dsZV9zaW5nbGVzdGVwKHN0cnVjdCBkb21haW4gKmQsIHN0 cnVjdCB2Y3B1ICp2KTsKK3ZvaWQgdm1fZXZlbnRfdG9nZ2xlX3NpbmdsZXN0ZXAoc3RydWN0IGRv bWFpbiAqZCwgc3RydWN0IHZjcHUgKnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCk7CiAKIHZvaWQgdm1fZXZlbnRfcmVnaXN0ZXJfd3Jp dGVfcmVzdW1lKHN0cnVjdCB2Y3B1ICp2LCB2bV9ldmVudF9yZXNwb25zZV90ICpyc3ApOwogCit2 b2lkIHZtX2V2ZW50X2VtdWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYsIHZtX2V2ZW50X3Jlc3Bv bnNlX3QgKnJzcCk7CisKICNlbmRpZiAvKiBfX0FTTV9YODZfVk1fRVZFTlRfSF9fICovCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbWVtX2FjY2Vzcy5oIGIveGVuL2luY2x1ZGUveGVuL21l bV9hY2Nlc3MuaAppbmRleCAzZDA1NGUwLi5kYTM2ZTA3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vbWVtX2FjY2Vzcy5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9tZW1fYWNjZXNzLmgKQEAg LTMwLDEyICszMCw2IEBACiBpbnQgbWVtX2FjY2Vzc19tZW1vcCh1bnNpZ25lZCBsb25nIGNtZCwK ICAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX21lbV9hY2Nl c3Nfb3BfdCkgYXJnKTsKIAotc3RhdGljIGlubGluZQotdm9pZCBtZW1fYWNjZXNzX3Jlc3VtZShz dHJ1Y3QgdmNwdSAqdiwgdm1fZXZlbnRfcmVzcG9uc2VfdCAqcnNwKQotewotICAgIHAybV9tZW1f YWNjZXNzX2VtdWxhdGVfY2hlY2sodiwgcnNwKTsKLX0KLQogI2Vsc2UKIAogc3RhdGljIGlubGlu ZQpAQCAtNDUsMTIgKzM5LDYgQEAgaW50IG1lbV9hY2Nlc3NfbWVtb3AodW5zaWduZWQgbG9uZyBj bWQsCiAgICAgcmV0dXJuIC1FTk9TWVM7CiB9CiAKLXN0YXRpYyBpbmxpbmUKLXZvaWQgbWVtX2Fj Y2Vzc19yZXN1bWUoc3RydWN0IHZjcHUgKnZjcHUsIHZtX2V2ZW50X3Jlc3BvbnNlX3QgKnJzcCkK LXsKLSAgICAvKiBOb3RoaW5nIHRvIGRvLiAqLwotfQotCiAjZW5kaWYgLyogSEFTX01FTV9BQ0NF U1MgKi8KIAogI2VuZGlmIC8qIF9YRU5fQVNNX01FTV9BQ0NFU1NfSCAqLwotLSAKMi45LjMKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK