From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Anders K. Pedersen | Cohaesio" Subject: [PATCH libnftnl] introduce rt expression Date: Sun, 16 Oct 2016 13:47:21 +0000 Message-ID: <1476625641.1038.13.camel@cohaesio.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 To: "netfilter-devel@vger.kernel.org" , "pablo@netfilter.org" Return-path: Received: from bender.cohaesio.com ([212.97.128.130]:55884 "EHLO mail.cohaesio.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754610AbcJPNrY (ORCPT ); Sun, 16 Oct 2016 09:47:24 -0400 Content-Language: en-US Content-ID: Sender: netfilter-devel-owner@vger.kernel.org List-ID: RnJvbTogQW5kZXJzIEsuIFBlZGVyc2VuIDxha3BAY29oYWVzaW8uY29tPg0KDQpJbnRyb2R1Y2Ug c3VwcG9ydCBmb3IgcnQgZXhwcmVzc2lvbiBmb3Igcm91dGluZyByZWxhdGVkIGRhdGEgYXMgaW1w bGVtZW50ZWQNCmluIGtlcm5lbC4NCg0KU2lnbmVkLW9mZi1ieTogQW5kZXJzIEsuIFBlZGVyc2Vu IDxha3BAY29oYWVzaW8uY29tPg0KLS0tDQogaW5jbHVkZS9saWJuZnRubC9leHByLmggICAgICAg ICAgICAgfCAgMTIgKysNCiBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci9uZl90YWJsZXMuaCB8ICAy NiArKysrDQogc3JjL01ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KIHNy Yy9leHByL3J0LmMgICAgICAgICAgICAgICAgICAgICAgIHwgMjY4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKw0KIHNyYy9leHByX29wcy5jICAgICAgICAgICAgICAgICAgICAg IHwgICAyICsNCiA1IGZpbGVzIGNoYW5nZWQsIDMwOSBpbnNlcnRpb25zKCspDQoNCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpYm5mdG5sL2V4cHIuaCBiL2luY2x1ZGUvbGlibmZ0bmwvZXhwci5oDQpp bmRleCA0Y2UyNTkyLi5lMDJlNWI3IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saWJuZnRubC9leHBy LmgNCisrKyBiL2luY2x1ZGUvbGlibmZ0bmwvZXhwci5oDQpAQCAtNjQsNiArNjQsMTIgQEAgZW51 bSB7DQogfTsNCiANCiBlbnVtIHsNCisJTkZUTkxfRVhQUl9SVF9LRVkJPSBORlROTF9FWFBSX0JB U0UsDQorCU5GVE5MX0VYUFJfUlRfRFJFRywNCisJTkZUTkxfRVhQUl9SVF9GQU1JTFksDQorfTsN CisNCitlbnVtIHsNCiAJTkZUTkxfRVhQUl9DTVBfU1JFRwk9IE5GVE5MX0VYUFJfQkFTRSwNCiAJ TkZUTkxfRVhQUl9DTVBfT1AsDQogCU5GVE5MX0VYUFJfQ01QX0RBVEEsDQpAQCAtMjY1LDYgKzI3 MSwxMiBAQCBlbnVtIHsNCiB9Ow0KIA0KIGVudW0gew0KKwlORlRfRVhQUl9SVF9LRVkJCT0gTkZU X1JVTEVfRVhQUl9BVFRSX0JBU0UsDQorCU5GVF9FWFBSX1JUX0RSRUcsDQorCU5GVF9FWFBSX1JU X0ZBTUlMWSwNCit9Ow0KKw0KK2VudW0gew0KIAlORlRfRVhQUl9DTVBfU1JFRwk9IE5GVF9SVUxF X0VYUFJfQVRUUl9CQVNFLA0KIAlORlRfRVhQUl9DTVBfT1AsDQogCU5GVF9FWFBSX0NNUF9EQVRB LA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyL25mX3RhYmxlcy5oIGIvaW5j bHVkZS9saW51eC9uZXRmaWx0ZXIvbmZfdGFibGVzLmgNCmluZGV4IDY4MTA4MmUuLjgxZWU0ZjAg MTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L25ldGZpbHRlci9uZl90YWJsZXMuaA0KKysrIGIv aW5jbHVkZS9saW51eC9uZXRmaWx0ZXIvbmZfdGFibGVzLmgNCkBAIC03MjQsNiArNzI0LDE2IEBA IGVudW0gbmZ0X21ldGFfa2V5cyB7DQogfTsNCiANCiAvKioNCisgKiBlbnVtIG5mdF9ydF9rZXlz IC0gbmZfdGFibGVzIHJvdXRpbmcgZXhwcmVzc2lvbiBrZXlzDQorICoNCisgKiBATkZUX01FVEFf TkVYVEhPUDogcm91dGluZyBuZXh0aG9wDQorICovDQorZW51bSBuZnRfcnRfa2V5cyB7DQorCU5G VF9SVF9DTEFTU0lELA0KKwlORlRfUlRfTkVYVEhPUCwNCit9Ow0KKw0KKy8qKg0KICAqIGVudW0g bmZ0X2hhc2hfYXR0cmlidXRlcyAtIG5mX3RhYmxlcyBoYXNoIGV4cHJlc3Npb24gbmV0bGluayBh dHRyaWJ1dGVzDQogICoNCiAgKiBATkZUQV9IQVNIX1NSRUc6IHNvdXJjZSByZWdpc3RlciAoTkxB X1UzMikNCkBAIC03NjIsNiArNzcyLDIyIEBAIGVudW0gbmZ0X21ldGFfYXR0cmlidXRlcyB7DQog I2RlZmluZSBORlRBX01FVEFfTUFYCQkoX19ORlRBX01FVEFfTUFYIC0gMSkNCiANCiAvKioNCisg KiBlbnVtIG5mdF9ydF9hdHRyaWJ1dGVzIC0gbmZfdGFibGVzIHJvdXRpbmcgZXhwcmVzc2lvbiBu ZXRsaW5rIGF0dHJpYnV0ZXMNCisgKg0KKyAqIEBORlRBX1JUX0RSRUc6IGRlc3RpbmF0aW9uIHJl Z2lzdGVyIChOTEFfVTMyKQ0KKyAqIEBORlRBX1JUX0tFWTogbWV0YSBkYXRhIGl0ZW0gdG8gbG9h ZCAoTkxBX1UzMjogbmZ0X3J0X2tleXMpDQorICogQE5GVEFfUlRfRkFNSUxZOiBBZGRyZXNzIGZh bWlseSAoTkxBX1UzMikNCisgKi8NCitlbnVtIG5mdF9ydF9hdHRyaWJ1dGVzIHsNCisJTkZUQV9S VF9VTlNQRUMsDQorCU5GVEFfUlRfRFJFRywNCisJTkZUQV9SVF9LRVksDQorCU5GVEFfUlRfRkFN SUxZLA0KKwlfX05GVEFfUlRfTUFYDQorfTsNCisjZGVmaW5lIE5GVEFfUlRfTUFYCQkoX19ORlRB X1JUX01BWCAtIDEpDQorDQorLyoqDQogICogZW51bSBuZnRfY3Rfa2V5cyAtIG5mX3RhYmxlcyBj dCBleHByZXNzaW9uIGtleXMNCiAgKg0KICAqIEBORlRfQ1RfU1RBVEU6IGNvbm50cmFjayBzdGF0 ZSAoYml0bWFzayBvZiBlbnVtIGlwX2Nvbm50cmFja19pbmZvKQ0KZGlmZiAtLWdpdCBhL3NyYy9N YWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQ0KaW5kZXggNGFiOGZjYS4uNDhmZjg1YSAxMDA2 NDQNCi0tLSBhL3NyYy9NYWtlZmlsZS5hbQ0KKysrIGIvc3JjL01ha2VmaWxlLmFtDQpAQCAtNDMs NiArNDMsNyBAQCBsaWJuZnRubF9sYV9TT1VSQ0VTID0gdXRpbHMuYwkJXA0KIAkJICAgICAgZXhw ci9xdWV1ZS5jCVwNCiAJCSAgICAgIGV4cHIvcXVvdGEuYwlcDQogCQkgICAgICBleHByL3JlamVj dC5jCVwNCisJCSAgICAgIGV4cHIvcnQuYwkJXA0KIAkJICAgICAgZXhwci90YXJnZXQuYwlcDQog CQkgICAgICBleHByL21hc3EuYwlcDQogCQkgICAgICBleHByL3JlZGlyLmMJXA0KZGlmZiAtLWdp dCBhL3NyYy9leHByL3J0LmMgYi9zcmMvZXhwci9ydC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMC4uZmE2NTllNw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvc3JjL2V4cHIvcnQu Yw0KQEAgLTAsMCArMSwyNjggQEANCisvKg0KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBbmRlcnMg Sy4gUGVkZXJzZW4gPGFrcEBjb2hhZXNpby5jb20+DQorICoNCisgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyAq IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkDQorICogYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLg0KKyAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNpbmNsdWRlIDxzdGRp bnQuaD4NCisjaW5jbHVkZSA8c3RyaW5nLmg+DQorI2luY2x1ZGUgPGFycGEvaW5ldC5oPg0KKyNp bmNsdWRlIDxlcnJuby5oPg0KKyNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXIvbmZfdGFibGVzLmg+ DQorDQorI2luY2x1ZGUgImludGVybmFsLmgiDQorI2luY2x1ZGUgPGxpYm1ubC9saWJtbmwuaD4N CisjaW5jbHVkZSA8bGlibmZ0bmwvZXhwci5oPg0KKyNpbmNsdWRlIDxsaWJuZnRubC9ydWxlLmg+ DQorDQorI2lmbmRlZiBORlRfUlRfTUFYDQorI2RlZmluZSBORlRfUlRfTUFYIChORlRfUlRfTkVY VEhPUCArIDEpDQorI2VuZGlmDQorDQorc3RydWN0IG5mdG5sX2V4cHJfcnQgew0KKwllbnVtIG5m dF9ydF9rZXlzCWtleTsNCisJZW51bSBuZnRfcmVnaXN0ZXJzCWRyZWc7DQorCWludAkJCWZhbWls eTsNCit9Ow0KKw0KK3N0YXRpYyBpbnQNCituZnRubF9leHByX3J0X3NldChzdHJ1Y3QgbmZ0bmxf ZXhwciAqZSwgdWludDE2X3QgdHlwZSwNCisJCSAgICAgICBjb25zdCB2b2lkICpkYXRhLCB1aW50 MzJfdCBkYXRhX2xlbikNCit7DQorCXN0cnVjdCBuZnRubF9leHByX3J0ICpydCA9IG5mdG5sX2V4 cHJfZGF0YShlKTsNCisNCisJc3dpdGNoICh0eXBlKSB7DQorCWNhc2UgTkZUTkxfRVhQUl9SVF9L RVk6DQorCQlydC0+a2V5ID0gKigodWludDMyX3QgKilkYXRhKTsNCisJCWJyZWFrOw0KKwljYXNl IE5GVE5MX0VYUFJfUlRfRFJFRzoNCisJCXJ0LT5kcmVnID0gKigodWludDMyX3QgKilkYXRhKTsN CisJCWJyZWFrOw0KKwljYXNlIE5GVE5MX0VYUFJfUlRfRkFNSUxZOg0KKwkJcnQtPmZhbWlseSA9 ICooKHVpbnQzMl90ICopZGF0YSk7DQorCQlicmVhazsNCisJZGVmYXVsdDoNCisJCXJldHVybiAt MTsNCisJfQ0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGNvbnN0IHZvaWQgKg0KK25mdG5s X2V4cHJfcnRfZ2V0KGNvbnN0IHN0cnVjdCBuZnRubF9leHByICplLCB1aW50MTZfdCB0eXBlLA0K KwkJICAgICAgIHVpbnQzMl90ICpkYXRhX2xlbikNCit7DQorCXN0cnVjdCBuZnRubF9leHByX3J0 ICpydCA9IG5mdG5sX2V4cHJfZGF0YShlKTsNCisNCisJc3dpdGNoICh0eXBlKSB7DQorCWNhc2Ug TkZUTkxfRVhQUl9SVF9LRVk6DQorCQkqZGF0YV9sZW4gPSBzaXplb2YocnQtPmtleSk7DQorCQly ZXR1cm4gJnJ0LT5rZXk7DQorCWNhc2UgTkZUTkxfRVhQUl9SVF9EUkVHOg0KKwkJKmRhdGFfbGVu ID0gc2l6ZW9mKHJ0LT5kcmVnKTsNCisJCXJldHVybiAmcnQtPmRyZWc7DQorCWNhc2UgTkZUTkxf RVhQUl9SVF9GQU1JTFk6DQorCQkqZGF0YV9sZW4gPSBzaXplb2YocnQtPmZhbWlseSk7DQorCQly ZXR1cm4gJnJ0LT5mYW1pbHk7DQorCX0NCisJcmV0dXJuIE5VTEw7DQorfQ0KKw0KK3N0YXRpYyBp bnQgbmZ0bmxfZXhwcl9ydF9jYihjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLCB2b2lkICpkYXRh KQ0KK3sNCisJY29uc3Qgc3RydWN0IG5sYXR0ciAqKnRiID0gZGF0YTsNCisJaW50IHR5cGUgPSBt bmxfYXR0cl9nZXRfdHlwZShhdHRyKTsNCisNCisJaWYgKG1ubF9hdHRyX3R5cGVfdmFsaWQoYXR0 ciwgTkZUQV9SVF9NQVgpIDwgMCkNCisJCXJldHVybiBNTkxfQ0JfT0s7DQorDQorCXN3aXRjaCAo dHlwZSkgew0KKwljYXNlIE5GVEFfUlRfS0VZOg0KKwljYXNlIE5GVEFfUlRfRFJFRzoNCisJY2Fz ZSBORlRBX1JUX0ZBTUlMWToNCisJCWlmIChtbmxfYXR0cl92YWxpZGF0ZShhdHRyLCBNTkxfVFlQ RV9VMzIpIDwgMCkNCisJCQlhYmlfYnJlYWthZ2UoKTsNCisJCWJyZWFrOw0KKwl9DQorDQorCXRi W3R5cGVdID0gYXR0cjsNCisJcmV0dXJuIE1OTF9DQl9PSzsNCit9DQorDQorc3RhdGljIHZvaWQN CituZnRubF9leHByX3J0X2J1aWxkKHN0cnVjdCBubG1zZ2hkciAqbmxoLCBjb25zdCBzdHJ1Y3Qg bmZ0bmxfZXhwciAqZSkNCit7DQorCXN0cnVjdCBuZnRubF9leHByX3J0ICpydCA9IG5mdG5sX2V4 cHJfZGF0YShlKTsNCisNCisJaWYgKGUtPmZsYWdzICYgKDEgPDwgTkZUTkxfRVhQUl9SVF9LRVkp KQ0KKwkJbW5sX2F0dHJfcHV0X3UzMihubGgsIE5GVEFfUlRfS0VZLCBodG9ubChydC0+a2V5KSk7 DQorCWlmIChlLT5mbGFncyAmICgxIDw8IE5GVE5MX0VYUFJfUlRfRFJFRykpDQorCQltbmxfYXR0 cl9wdXRfdTMyKG5saCwgTkZUQV9SVF9EUkVHLCBodG9ubChydC0+ZHJlZykpOw0KKwlpZiAoZS0+ ZmxhZ3MgJiAoMSA8PCBORlROTF9FWFBSX1JUX0ZBTUlMWSkpDQorCQltbmxfYXR0cl9wdXRfdTMy KG5saCwgTkZUQV9SVF9GQU1JTFksIGh0b25sKHJ0LT5mYW1pbHkpKTsNCit9DQorDQorc3RhdGlj IGludA0KK25mdG5sX2V4cHJfcnRfcGFyc2Uoc3RydWN0IG5mdG5sX2V4cHIgKmUsIHN0cnVjdCBu bGF0dHIgKmF0dHIpDQorew0KKwlzdHJ1Y3QgbmZ0bmxfZXhwcl9ydCAqcnQgPSBuZnRubF9leHBy X2RhdGEoZSk7DQorCXN0cnVjdCBubGF0dHIgKnRiW05GVEFfUlRfTUFYKzFdID0ge307DQorDQor CWlmIChtbmxfYXR0cl9wYXJzZV9uZXN0ZWQoYXR0ciwgbmZ0bmxfZXhwcl9ydF9jYiwgdGIpIDwg MCkNCisJCXJldHVybiAtMTsNCisNCisJaWYgKHRiW05GVEFfUlRfS0VZXSkgew0KKwkJcnQtPmtl eSA9IG50b2hsKG1ubF9hdHRyX2dldF91MzIodGJbTkZUQV9SVF9LRVldKSk7DQorCQllLT5mbGFn cyB8PSAoMSA8PCBORlROTF9FWFBSX1JUX0tFWSk7DQorCX0NCisJaWYgKHRiW05GVEFfUlRfRFJF R10pIHsNCisJCXJ0LT5kcmVnID0gbnRvaGwobW5sX2F0dHJfZ2V0X3UzMih0YltORlRBX1JUX0RS RUddKSk7DQorCQllLT5mbGFncyB8PSAoMSA8PCBORlROTF9FWFBSX1JUX0RSRUcpOw0KKwl9DQor CWlmICh0YltORlRBX1JUX0ZBTUlMWV0pIHsNCisJCXJ0LT5mYW1pbHkgPSBudG9obChtbmxfYXR0 cl9nZXRfdTMyKHRiW05GVEFfUlRfRkFNSUxZXSkpOw0KKwkJZS0+ZmxhZ3MgfD0gKDEgPDwgTkZU TkxfRVhQUl9SVF9GQU1JTFkpOw0KKwl9DQorDQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMg Y29uc3QgY2hhciAqcnRfa2V5MnN0cl9hcnJheVtORlRfUlRfTUFYXSA9IHsNCisJW05GVF9SVF9D TEFTU0lEXQk9ICJjbGFzc2lkIiwNCisJW05GVF9SVF9ORVhUSE9QXQk9ICJuZXh0aG9wIiwNCit9 Ow0KKw0KK3N0YXRpYyBjb25zdCBjaGFyICpydF9rZXkyc3RyKHVpbnQ4X3Qga2V5KQ0KK3sNCisJ aWYgKGtleSA8IE5GVF9SVF9NQVgpDQorCQlyZXR1cm4gcnRfa2V5MnN0cl9hcnJheVtrZXldOw0K Kw0KKwlyZXR1cm4gInVua25vd24iOw0KK30NCisNCitzdGF0aWMgaW5saW5lIGludCBzdHIycnRf a2V5KGNvbnN0IGNoYXIgKnN0cikNCit7DQorCWludCBpOw0KKw0KKwlmb3IgKGkgPSAwOyBpIDwg TkZUX1JUX01BWDsgaSsrKSB7DQorCQlpZiAoc3RyY21wKHN0ciwgcnRfa2V5MnN0cl9hcnJheVtp XSkgPT0gMCkNCisJCQlyZXR1cm4gaTsNCisJfQ0KKw0KKwllcnJubyA9IEVJTlZBTDsNCisJcmV0 dXJuIC0xOw0KK30NCisNCitzdGF0aWMgaW50IG5mdG5sX2V4cHJfcnRfanNvbl9wYXJzZShzdHJ1 Y3QgbmZ0bmxfZXhwciAqZSwganNvbl90ICpyb290LA0KKwkJCQkgICAgc3RydWN0IG5mdG5sX3Bh cnNlX2VyciAqZXJyKQ0KK3sNCisjaWZkZWYgSlNPTl9QQVJTSU5HDQorCWNvbnN0IGNoYXIgKnZh bF9zdHI7DQorCXVpbnQzMl90IHJlZzsNCisJaW50IHZhbDMyOw0KKw0KKwl2YWxfc3RyID0gbmZ0 bmxfamFuc3Nvbl9wYXJzZV9zdHIocm9vdCwgImtleSIsIGVycik7DQorCWlmICh2YWxfc3RyICE9 IE5VTEwpIHsNCisJCXZhbDMyID0gc3RyMnJ0X2tleSh2YWxfc3RyKTsNCisJCWlmICh2YWwzMiA+ PSAwKQ0KKwkJCW5mdG5sX2V4cHJfc2V0X3UzMihlLCBORlROTF9FWFBSX1JUX0tFWSwgdmFsMzIp Ow0KKwl9DQorDQorCWlmIChuZnRubF9qYW5zc29uX25vZGVfZXhpc3Qocm9vdCwgImRyZWciKSkg ew0KKwkJaWYgKG5mdG5sX2phbnNzb25fcGFyc2VfcmVnKHJvb3QsICJkcmVnIiwgTkZUTkxfVFlQ RV9VMzIsICZyZWcsDQorCQkJCQkgIGVycikgPT0gMCkNCisJCQluZnRubF9leHByX3NldF91MzIo ZSwgTkZUTkxfRVhQUl9SVF9EUkVHLCByZWcpOw0KKwl9DQorDQorCXZhbF9zdHIgPSBuZnRubF9q YW5zc29uX3BhcnNlX3N0cihyb290LCAiZmFtaWx5IiwgZXJyKTsNCisJaWYgKHZhbF9zdHIgIT0g TlVMTCkgew0KKwkJdmFsMzIgPSBuZnRubF9zdHIyZmFtaWx5KHZhbF9zdHIpOw0KKwkJaWYgKHZh bDMyID49IDApDQorCQkJbmZ0bmxfZXhwcl9zZXRfdTMyKGUsIE5GVE5MX0VYUFJfUlRfRkFNSUxZ LCB2YWwzMik7DQorCX0NCisNCisJcmV0dXJuIDA7DQorI2Vsc2UNCisJZXJybm8gPSBFT1BOT1RT VVBQOw0KKwlyZXR1cm4gLTE7DQorI2VuZGlmDQorfQ0KKw0KK3N0YXRpYyBpbnQNCituZnRubF9l eHByX3J0X3NucHJpbnRmX2RlZmF1bHQoY2hhciAqYnVmLCBzaXplX3QgbGVuLA0KKwkJCSAgICAg ICBjb25zdCBzdHJ1Y3QgbmZ0bmxfZXhwciAqZSkNCit7DQorCXN0cnVjdCBuZnRubF9leHByX3J0 ICpydCA9IG5mdG5sX2V4cHJfZGF0YShlKTsNCisNCisJaWYgKGUtPmZsYWdzICYgKDEgPDwgTkZU TkxfRVhQUl9SVF9EUkVHKSkgew0KKwkJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgbGVuLCAibG9hZCAl cyAlcyA9PiByZWcgJXUgIiwNCisJCQkJbmZ0bmxfZmFtaWx5MnN0cihydC0+ZmFtaWx5KSwNCisJ CQkJcnRfa2V5MnN0cihydC0+a2V5KSwgcnQtPmRyZWcpOw0KKwl9DQorCXJldHVybiAwOw0KK30N CisNCitzdGF0aWMgaW50IG5mdG5sX2V4cHJfcnRfZXhwb3J0KGNoYXIgKmJ1Ziwgc2l6ZV90IHNp emUsDQorCQkJCSAgY29uc3Qgc3RydWN0IG5mdG5sX2V4cHIgKmUsIGludCB0eXBlKQ0KK3sNCisJ c3RydWN0IG5mdG5sX2V4cHJfcnQgKnJ0ID0gbmZ0bmxfZXhwcl9kYXRhKGUpOw0KKwlORlROTF9C VUZfSU5JVChiLCBidWYsIHNpemUpOw0KKw0KKwlpZiAoZS0+ZmxhZ3MgJiAoMSA8PCBORlROTF9F WFBSX1JUX0RSRUcpKQ0KKwkJbmZ0bmxfYnVmX3UzMigmYiwgdHlwZSwgcnQtPmRyZWcsIERSRUcp Ow0KKwlpZiAoZS0+ZmxhZ3MgJiAoMSA8PCBORlROTF9FWFBSX1JUX0tFWSkpDQorCQluZnRubF9i dWZfc3RyKCZiLCB0eXBlLCBydF9rZXkyc3RyKHJ0LT5rZXkpLCBLRVkpOw0KKwlpZiAoZS0+Zmxh Z3MgJiAoMSA8PCBORlROTF9FWFBSX1JUX0ZBTUlMWSkpDQorCQluZnRubF9idWZfc3RyKCZiLCB0 eXBlLCBuZnRubF9mYW1pbHkyc3RyKHJ0LT5mYW1pbHkpLCBGQU1JTFkpOw0KKw0KKwlyZXR1cm4g bmZ0bmxfYnVmX2RvbmUoJmIpOw0KK30NCisNCitzdGF0aWMgaW50DQorbmZ0bmxfZXhwcl9ydF9z bnByaW50ZihjaGFyICpidWYsIHNpemVfdCBsZW4sIHVpbnQzMl90IHR5cGUsDQorCQkgICAgICAg dWludDMyX3QgZmxhZ3MsIGNvbnN0IHN0cnVjdCBuZnRubF9leHByICplKQ0KK3sNCisJc3dpdGNo ICh0eXBlKSB7DQorCWNhc2UgTkZUTkxfT1VUUFVUX0RFRkFVTFQ6DQorCQlyZXR1cm4gbmZ0bmxf ZXhwcl9ydF9zbnByaW50Zl9kZWZhdWx0KGJ1ZiwgbGVuLCBlKTsNCisJY2FzZSBORlROTF9PVVRQ VVRfWE1MOg0KKwljYXNlIE5GVE5MX09VVFBVVF9KU09OOg0KKwkJcmV0dXJuIG5mdG5sX2V4cHJf cnRfZXhwb3J0KGJ1ZiwgbGVuLCBlLCB0eXBlKTsNCisJZGVmYXVsdDoNCisJCWJyZWFrOw0KKwl9 DQorCXJldHVybiAtMTsNCit9DQorDQorc3RhdGljIGJvb2wgbmZ0bmxfZXhwcl9ydF9jbXAoY29u c3Qgc3RydWN0IG5mdG5sX2V4cHIgKmUxLA0KKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBuZnRubF9l eHByICplMikNCit7DQorCXN0cnVjdCBuZnRubF9leHByX3J0ICpyMSA9IG5mdG5sX2V4cHJfZGF0 YShlMSk7DQorCXN0cnVjdCBuZnRubF9leHByX3J0ICpyMiA9IG5mdG5sX2V4cHJfZGF0YShlMik7 DQorCWJvb2wgZXEgPSB0cnVlOw0KKw0KKwlpZiAoZTEtPmZsYWdzICYgKDEgPDwgTkZUTkxfRVhQ Ul9SVF9LRVkpKQ0KKwkJZXEgJj0gKHIxLT5rZXkgPT0gcjItPmtleSk7DQorCWlmIChlMS0+Zmxh Z3MgJiAoMSA8PCBORlROTF9FWFBSX1JUX0RSRUcpKQ0KKwkJZXEgJj0gKHIxLT5kcmVnID09IHIy LT5kcmVnKTsNCisJaWYgKGUxLT5mbGFncyAmICgxIDw8IE5GVE5MX0VYUFJfUlRfRkFNSUxZKSkN CisJCWVxICY9IChyMS0+ZmFtaWx5ID09IHIyLT5mYW1pbHkpOw0KKw0KKwlyZXR1cm4gZXE7DQor fQ0KKw0KK3N0cnVjdCBleHByX29wcyBleHByX29wc19ydCA9IHsNCisJLm5hbWUJCT0gInJ0IiwN CisJLmFsbG9jX2xlbgk9IHNpemVvZihzdHJ1Y3QgbmZ0bmxfZXhwcl9ydCksDQorCS5tYXhfYXR0 cgk9IE5GVEFfUlRfTUFYLA0KKwkuY21wCQk9IG5mdG5sX2V4cHJfcnRfY21wLA0KKwkuc2V0CQk9 IG5mdG5sX2V4cHJfcnRfc2V0LA0KKwkuZ2V0CQk9IG5mdG5sX2V4cHJfcnRfZ2V0LA0KKwkucGFy c2UJCT0gbmZ0bmxfZXhwcl9ydF9wYXJzZSwNCisJLmJ1aWxkCQk9IG5mdG5sX2V4cHJfcnRfYnVp bGQsDQorCS5zbnByaW50Zgk9IG5mdG5sX2V4cHJfcnRfc25wcmludGYsDQorCS5qc29uX3BhcnNl CT0gbmZ0bmxfZXhwcl9ydF9qc29uX3BhcnNlLA0KK307DQpkaWZmIC0tZ2l0IGEvc3JjL2V4cHJf b3BzLmMgYi9zcmMvZXhwcl9vcHMuYw0KaW5kZXggMmEwNDdkMi4uN2MwZTg5MSAxMDA2NDQNCi0t LSBhL3NyYy9leHByX29wcy5jDQorKysgYi9zcmMvZXhwcl9vcHMuYw0KQEAgLTI0LDYgKzI0LDcg QEAgZXh0ZXJuIHN0cnVjdCBleHByX29wcyBleHByX29wc19uYXQ7DQogZXh0ZXJuIHN0cnVjdCBl eHByX29wcyBleHByX29wc19wYXlsb2FkOw0KIGV4dGVybiBzdHJ1Y3QgZXhwcl9vcHMgZXhwcl9v cHNfcmVkaXI7DQogZXh0ZXJuIHN0cnVjdCBleHByX29wcyBleHByX29wc19yZWplY3Q7DQorZXh0 ZXJuIHN0cnVjdCBleHByX29wcyBleHByX29wc19ydDsNCiBleHRlcm4gc3RydWN0IGV4cHJfb3Bz IGV4cHJfb3BzX3F1ZXVlOw0KIGV4dGVybiBzdHJ1Y3QgZXhwcl9vcHMgZXhwcl9vcHNfcXVvdGE7 DQogZXh0ZXJuIHN0cnVjdCBleHByX29wcyBleHByX29wc190YXJnZXQ7DQpAQCAtNTEsNiArNTIs NyBAQCBzdGF0aWMgc3RydWN0IGV4cHJfb3BzICpleHByX29wc1tdID0gew0KIAkmZXhwcl9vcHNf cGF5bG9hZCwNCiAJJmV4cHJfb3BzX3JlZGlyLA0KIAkmZXhwcl9vcHNfcmVqZWN0LA0KKwkmZXhw cl9vcHNfcnQsDQogCSZleHByX29wc19xdWV1ZSwNCiAJJmV4cHJfb3BzX3F1b3RhLA0KIAkmZXhw cl9vcHNfdGFyZ2V0LA0K