From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755890AbYAHKqJ (ORCPT ); Tue, 8 Jan 2008 05:46:09 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751156AbYAHKop (ORCPT ); Tue, 8 Jan 2008 05:44:45 -0500 Received: from ms0.nttdata.co.jp ([163.135.193.231]:42773 "EHLO ms0.nttdata.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752536AbYAHKol (ORCPT ); Tue, 8 Jan 2008 05:44:41 -0500 Message-Id: <20080108094958.366090601@nttdata.co.jp> References: <20080108094903.484613061@nttdata.co.jp> User-Agent: quilt/0.46-1 Date: Tue, 08 Jan 2008 18:49:08 +0900 From: Kentaro Takeda To: akpm@linux-foundation.org Cc: linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, Kentaro Takeda , Tetsuo Handa Subject: [TOMOYO #6 05/21] Add packet filtering based on processs security context. X-OriginalArrivalTime: 08 Jan 2008 09:49:58.0459 (UTC) FILETIME=[D47B30B0:01C851DB] MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="boundary-1" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --boundary-1 Content-Disposition: inline; filename="add-packet-filtering-based-on-process-security-context.patch" Content-Type: application/octect-stream Content-Transfer-Encoding: base64 VGhpcyBwYXRjaCBhbGxvd3MgTFNNIG1vZHVsZXMgZmlsdGVyIGluY29taW5nIGNvbm5lY3Rpb25z L2RhdGFncmFtcw0KYmFzZWQgb24gdGhlIHByb2Nlc3MncyBzZWN1cml0eSBjb250ZXh0IHdobyBp cyBhdHRlbXB0aW5nIHRvIHBpY2sgdXAuDQoNClRoZXJlIGFyZSBhbHJlYWR5IGhvb2tzIHRvIGZp bHRlciBpbmNvbWluZyBjb25uZWN0aW9ucy9kYXRhZ3JhbXMNCmJhc2VkIG9uIHRoZSBzb2NrZXQn cyBzZWN1cml0eSBjb250ZXh0LCBidXQgdGhlc2UgaG9va3MgYXJlIG5vdA0KYXBwbGljYWJsZSB3 aGVuIG9uZSB3YW50cyB0byBkbyBUQ1AgV3JhcHBlci1saWtlIGZpbHRlcmluZw0KKGUuZy4gQXBw MSBpcyBwZXJtaXR0ZWQgdG8gYWNjZXB0IFRDUCBjb25uZWN0aW9ucyBmcm9tIDE5Mi4xNjguMC4w LzE2KS4NCg0KUHJlY2F1dGlvbnM6IFRoaXMgYXBwcm9hY2ggaGFzIGEgc2lkZSBlZmZlY3Qgd2hp Y2ggdW5saWtlbHkgb2NjdXJzLg0KDQpJZiBhIHNvY2tldCBpcyBzaGFyZWQgYnkgbXVsdGlwbGUg cHJvY2Vzc2VzIHdpdGggZGlmZmVybnQgcG9saWN5LA0KdGhlIHByb2Nlc3Mgd2hvIHNob3VsZCBi ZSBhYmxlIHRvIGFjY2VwdCB0aGlzIGNvbm5lY3Rpb24NCndpbGwgbm90IGJlIGFibGUgdG8gYWNj ZXB0IHRoaXMgY29ubmVjdGlvbg0KYmVjYXVzZSBzb2NrZXRfcG9zdF9hY2NlcHQoKSBhYm9ydHMg dGhpcyBjb25uZWN0aW9uLg0KQnV0IGlmIHNvY2tldF9wb3N0X2FjY2VwdCgpIGRvZXNuJ3QgYWJv cnQgdGhpcyBjb25uZWN0aW9uLA0KdGhlIHByb2Nlc3Mgd2hvIG11c3Qgbm90IGJlIGFibGUgdG8g YWNjZXB0IHRoaXMgY29ubmVjdGlvbg0Kd2lsbCByZXBlYXQgYWNjZXB0KCkgZm9yZXZlciwgd2hp Y2ggaXMgYSB3b3JzZSBzaWRlIGVmZmVjdC4NCg0KU2ltaWxhcmx5LCBpZiBhIHNvY2tldCBpcyBz aGFyZWQgYnkgbXVsdGlwbGUgcHJvY2Vzc2VzIHdpdGggZGlmZmVybnQgcG9saWN5LA0KdGhlIHBy b2Nlc3Mgd2hvIHNob3VsZCBiZSBhYmxlIHRvIHBpY2sgdXAgdGhpcyBkYXRhZ3JhbQ0Kd2lsbCBu b3QgYmUgYWJsZSB0byBwaWNrIHVwIHRoaXMgZGF0YWdyYW0NCmJlY2F1c2Ugc29ja2V0X3Bvc3Rf cmVjdl9kYXRhZ3JhbSgpIGRpc2NhcmRzIHRoaXMgZGF0YWdyYW0uDQpCdXQgaWYgc29ja2V0X3Bv c3RfcmVjdl9kYXRhZ3JhbSgpIGRvZXNuJ3QgZGlzY2FyZCB0aGlzIGRhdGFncmFtLA0KdGhlIHBy b2Nlc3Mgd2hvIG11c3Qgbm90IGJlIGFibGUgdG8gcGljayB1cCB0aGlzIGRhdGFncmFtDQp3aWxs IHJlcGVhdCByZWN2bXNnKCkgZm9yZXZlciwgd2hpY2ggaXMgYSB3b3JzZSBzaWRlIGVmZmVjdC4N Cg0KU28sIGRvbid0IGdpdmUgZGlmZmVyZW50IHBlcm1pc3Npb25zIGJldHdlZW4gcHJvY2Vzc2Vz IHdobyBzaGFyZXMgb25lIHNvY2tldC4NCk90aGVyd2lzZSwgc29tZSBjb25uZWN0aW9ucy9kYXRh Z3JhbXMgY2Fubm90IGJlIGRlbGl2ZXJlZCB0byBpbnRlbmRlZCBwcm9jZXNzLg0KDQpTaWduZWQt b2ZmLWJ5OiBLZW50YXJvIFRha2VkYSA8dGFrZWRha25AbnR0ZGF0YS5jby5qcD4NClNpZ25lZC1v ZmYtYnk6IFRldHN1byBIYW5kYSA8cGVuZ3Vpbi1rZXJuZWxASS1sb3ZlLlNBS1VSQS5uZS5qcD4N Ci0tLQ0KIGluY2x1ZGUvbGludXgvc2VjdXJpdHkuaCB8ICAgMzQgKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLQ0KIG5ldC9jb3JlL2RhdGFncmFtLmMgICAgICB8ICAgMjkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0NCiBuZXQvc29ja2V0LmMgICAgICAgICAgICAgfCAgICA3 ICsrKysrLS0NCiBzZWN1cml0eS9kdW1teS5jICAgICAgICAgfCAgIDEzICsrKysrKysrKystLS0N CiBzZWN1cml0eS9zZWN1cml0eS5jICAgICAgfCAgIDEwICsrKysrKysrLS0NCiA1IGZpbGVzIGNo YW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQ0KDQotLS0gbGludXgtMi42 LW1tLm9yaWcvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oDQorKysgbGludXgtMi42LW1tL2luY2x1 ZGUvbGludXgvc2VjdXJpdHkuaA0KQEAgLTc5NSw4ICs3OTUsMTIgQEAgc3RydWN0IHJlcXVlc3Rf c29jazsNCiAgKiBAc29ja2V0X3Bvc3RfYWNjZXB0Og0KICAqCVRoaXMgaG9vayBhbGxvd3MgYSBz ZWN1cml0eSBtb2R1bGUgdG8gY29weSBzZWN1cml0eQ0KICAqCWluZm9ybWF0aW9uIGludG8gdGhl IG5ld2x5IGNyZWF0ZWQgc29ja2V0J3MgaW5vZGUuDQorICoJVGhpcyBob29rIGFsc28gYWxsb3dz IGEgc2VjdXJpdHkgbW9kdWxlIHRvIGZpbHRlciBjb25uZWN0aW9ucw0KKyAqCWZyb20gdW53YW50 ZWQgcGVlcnMgYmFzZWQgb24gdGhlIHByb2Nlc3MgYWNjZXB0aW5nIHRoaXMgY29ubmVjdGlvbi4N CisgKglUaGUgY29ubmVjdGlvbiB3aWxsIGJlIGFib3J0ZWQgaWYgdGhpcyBob29rIHJldHVybnMg bm9uemVyby4NCiAgKglAc29jayBjb250YWlucyB0aGUgbGlzdGVuaW5nIHNvY2tldCBzdHJ1Y3R1 cmUuDQogICoJQG5ld3NvY2sgY29udGFpbnMgdGhlIG5ld2x5IGNyZWF0ZWQgc2VydmVyIHNvY2tl dCBmb3IgY29ubmVjdGlvbi4NCisgKglSZXR1cm4gMCBpZiBwZXJtaXNzaW9uIGlzIGdyYW50ZWQu DQogICogQHNvY2tldF9zZW5kbXNnOg0KICAqCUNoZWNrIHBlcm1pc3Npb24gYmVmb3JlIHRyYW5z bWl0dGluZyBhIG1lc3NhZ2UgdG8gYW5vdGhlciBzb2NrZXQuDQogICoJQHNvY2sgY29udGFpbnMg dGhlIHNvY2tldCBzdHJ1Y3R1cmUuDQpAQCAtODEwLDYgKzgxNCwxNSBAQCBzdHJ1Y3QgcmVxdWVz dF9zb2NrOw0KICAqCUBzaXplIGNvbnRhaW5zIHRoZSBzaXplIG9mIG1lc3NhZ2Ugc3RydWN0dXJl Lg0KICAqCUBmbGFncyBjb250YWlucyB0aGUgb3BlcmF0aW9uYWwgZmxhZ3MuDQogICoJUmV0dXJu IDAgaWYgcGVybWlzc2lvbiBpcyBncmFudGVkLiAgDQorICogQHNvY2tldF9wb3N0X3JlY3ZfZGF0 YWdyYW06DQorICoJQ2hlY2sgcGVybWlzc2lvbiBhZnRlciByZWNlaXZpbmcgYSBkYXRhZ3JhbS4N CisgKglUaGlzIGhvb2sgYWxsb3dzIGEgc2VjdXJpdHkgbW9kdWxlIHRvIGZpbHRlciBwYWNrZXRz DQorICoJZnJvbSB1bndhbnRlZCBwZWVycyBiYXNlZCBvbiB0aGUgcHJvY2VzcyByZWNlaXZpbmcg dGhpcyBkYXRhZ3JhbS4NCisgKglUaGUgcGFja2V0IHdpbGwgYmUgZGlzY2FyZGVkIGlmIHRoaXMg aG9vayByZXR1cm5zIG5vbnplcm8uDQorICoJQHNrIGNvbnRhaW5zIHRoZSBzb2NrZXQuDQorICoJ QHNrYiBjb250YWlucyB0aGUgc29ja2V0IGJ1ZmZlci4NCisgKglAZmxhZ3MgY29udGFpbnMgdGhl IG9wZXJhdGlvbmFsIGZsYWdzLg0KKyAqCVJldHVybiAwIGlmIHBlcm1pc3Npb24gaXMgZ3JhbnRl ZC4NCiAgKiBAc29ja2V0X2dldHNvY2tuYW1lOg0KICAqCUNoZWNrIHBlcm1pc3Npb24gYmVmb3Jl IHRoZSBsb2NhbCBhZGRyZXNzIChuYW1lKSBvZiB0aGUgc29ja2V0IG9iamVjdA0KICAqCUBzb2Nr IGlzIHJldHJpZXZlZC4NCkBAIC0xNDE3LDEyICsxNDMwLDEzIEBAIHN0cnVjdCBzZWN1cml0eV9v cGVyYXRpb25zIHsNCiAJCQkgICAgICAgc3RydWN0IHNvY2thZGRyICogYWRkcmVzcywgaW50IGFk ZHJsZW4pOw0KIAlpbnQgKCpzb2NrZXRfbGlzdGVuKSAoc3RydWN0IHNvY2tldCAqIHNvY2ssIGlu dCBiYWNrbG9nKTsNCiAJaW50ICgqc29ja2V0X2FjY2VwdCkgKHN0cnVjdCBzb2NrZXQgKiBzb2Nr LCBzdHJ1Y3Qgc29ja2V0ICogbmV3c29jayk7DQotCXZvaWQgKCpzb2NrZXRfcG9zdF9hY2NlcHQp IChzdHJ1Y3Qgc29ja2V0ICogc29jaywNCi0JCQkJICAgIHN0cnVjdCBzb2NrZXQgKiBuZXdzb2Nr KTsNCisJaW50ICgqc29ja2V0X3Bvc3RfYWNjZXB0KSAoc3RydWN0IHNvY2tldCAqc29jaywgc3Ry dWN0IHNvY2tldCAqbmV3c29jayk7DQogCWludCAoKnNvY2tldF9zZW5kbXNnKSAoc3RydWN0IHNv Y2tldCAqIHNvY2ssDQogCQkJICAgICAgIHN0cnVjdCBtc2doZHIgKiBtc2csIGludCBzaXplKTsN CiAJaW50ICgqc29ja2V0X3JlY3Ztc2cpIChzdHJ1Y3Qgc29ja2V0ICogc29jaywNCiAJCQkgICAg ICAgc3RydWN0IG1zZ2hkciAqIG1zZywgaW50IHNpemUsIGludCBmbGFncyk7DQorCWludCAoKnNv Y2tldF9wb3N0X3JlY3ZfZGF0YWdyYW0pIChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZm ICpza2IsDQorCQkJCQkgIHVuc2lnbmVkIGludCBmbGFncyk7DQogCWludCAoKnNvY2tldF9nZXRz b2NrbmFtZSkgKHN0cnVjdCBzb2NrZXQgKiBzb2NrKTsNCiAJaW50ICgqc29ja2V0X2dldHBlZXJu YW1lKSAoc3RydWN0IHNvY2tldCAqIHNvY2spOw0KIAlpbnQgKCpzb2NrZXRfZ2V0c29ja29wdCkg KHN0cnVjdCBzb2NrZXQgKiBzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lKTsNCkBAIC0yMzQz LDEwICsyMzU3LDEyIEBAIGludCBzZWN1cml0eV9zb2NrZXRfYmluZChzdHJ1Y3Qgc29ja2V0ICoN CiBpbnQgc2VjdXJpdHlfc29ja2V0X2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0 IHNvY2thZGRyICphZGRyZXNzLCBpbnQgYWRkcmxlbik7DQogaW50IHNlY3VyaXR5X3NvY2tldF9s aXN0ZW4oc3RydWN0IHNvY2tldCAqc29jaywgaW50IGJhY2tsb2cpOw0KIGludCBzZWN1cml0eV9z b2NrZXRfYWNjZXB0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrZXQgKm5ld3NvY2sp Ow0KLXZvaWQgc2VjdXJpdHlfc29ja2V0X3Bvc3RfYWNjZXB0KHN0cnVjdCBzb2NrZXQgKnNvY2ss IHN0cnVjdCBzb2NrZXQgKm5ld3NvY2spOw0KK2ludCBzZWN1cml0eV9zb2NrZXRfcG9zdF9hY2Nl cHQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAqbmV3c29jayk7DQogaW50IHNl Y3VyaXR5X3NvY2tldF9zZW5kbXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIg Km1zZywgaW50IHNpemUpOw0KIGludCBzZWN1cml0eV9zb2NrZXRfcmVjdm1zZyhzdHJ1Y3Qgc29j a2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptc2csDQogCQkJICAgIGludCBzaXplLCBpbnQgZmxh Z3MpOw0KK2ludCBzZWN1cml0eV9zb2NrZXRfcG9zdF9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwNCisJCQkJICAgICAgIHVuc2lnbmVkIGludCBmbGFn cyk7DQogaW50IHNlY3VyaXR5X3NvY2tldF9nZXRzb2NrbmFtZShzdHJ1Y3Qgc29ja2V0ICpzb2Nr KTsNCiBpbnQgc2VjdXJpdHlfc29ja2V0X2dldHBlZXJuYW1lKHN0cnVjdCBzb2NrZXQgKnNvY2sp Ow0KIGludCBzZWN1cml0eV9zb2NrZXRfZ2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBp bnQgbGV2ZWwsIGludCBvcHRuYW1lKTsNCkBAIC0yNDIzLDkgKzI0MzksMTAgQEAgc3RhdGljIGlu bGluZSBpbnQgc2VjdXJpdHlfc29ja2V0X2FjY2VwdA0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3Rh dGljIGlubGluZSB2b2lkIHNlY3VyaXR5X3NvY2tldF9wb3N0X2FjY2VwdChzdHJ1Y3Qgc29ja2V0 ICogc29jaywgDQotCQkJCQkgICAgICAgc3RydWN0IHNvY2tldCAqIG5ld3NvY2spDQorc3RhdGlj IGlubGluZSBpbnQgc2VjdXJpdHlfc29ja2V0X3Bvc3RfYWNjZXB0KHN0cnVjdCBzb2NrZXQgKnNv Y2ssDQorCQkJCQkgICAgICBzdHJ1Y3Qgc29ja2V0ICpuZXdzb2NrKQ0KIHsNCisJcmV0dXJuIDA7 DQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X3NvY2tldF9zZW5kbXNnKHN0cnVj dCBzb2NrZXQgKiBzb2NrLCANCkBAIC0yNDQxLDYgKzI0NTgsMTMgQEAgc3RhdGljIGlubGluZSBp bnQgc2VjdXJpdHlfc29ja2V0X3JlY3Ztcw0KIAlyZXR1cm4gMDsNCiB9DQogDQorc3RhdGljIGlu bGluZSBpbnQgc2VjdXJpdHlfc29ja2V0X3Bvc3RfcmVjdl9kYXRhZ3JhbShzdHJ1Y3Qgc29jayAq c2ssDQorCQkJCQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KKwkJCQkJCSAgICAgdW5zaWdu ZWQgaW50IGZsYWdzKQ0KK3sNCisJcmV0dXJuIDA7DQorfQ0KKw0KIHN0YXRpYyBpbmxpbmUgaW50 IHNlY3VyaXR5X3NvY2tldF9nZXRzb2NrbmFtZShzdHJ1Y3Qgc29ja2V0ICogc29jaykNCiB7DQog CXJldHVybiAwOw0KLS0tIGxpbnV4LTIuNi1tbS5vcmlnL25ldC9zb2NrZXQuYw0KKysrIGxpbnV4 LTIuNi1tbS9uZXQvc29ja2V0LmMNCkBAIC0xNDU0LDEzICsxNDU0LDE2IEBAIGFzbWxpbmthZ2Ug bG9uZyBzeXNfYWNjZXB0KGludCBmZCwgc3RydWMNCiAJCQlnb3RvIG91dF9mZDsNCiAJfQ0KIA0K KwkvKiBGaWx0ZXIgY29ubmVjdGlvbnMgZnJvbSB1bndhbnRlZCBwZWVycy4gKi8NCisJZXJyID0g c2VjdXJpdHlfc29ja2V0X3Bvc3RfYWNjZXB0KHNvY2ssIG5ld3NvY2spOw0KKwlpZiAoZXJyKQ0K KwkJZ290byBvdXRfZmQ7DQorDQogCS8qIEZpbGUgZmxhZ3MgYXJlIG5vdCBpbmhlcml0ZWQgdmlh IGFjY2VwdCgpIHVubGlrZSBhbm90aGVyIE9TZXMuICovDQogDQogCWZkX2luc3RhbGwobmV3ZmQs IG5ld2ZpbGUpOw0KIAllcnIgPSBuZXdmZDsNCiANCi0Jc2VjdXJpdHlfc29ja2V0X3Bvc3RfYWNj ZXB0KHNvY2ssIG5ld3NvY2spOw0KLQ0KIG91dF9wdXQ6DQogCWZwdXRfbGlnaHQoc29jay0+Zmls ZSwgZnB1dF9uZWVkZWQpOw0KIG91dDoNCi0tLSBsaW51eC0yLjYtbW0ub3JpZy9zZWN1cml0eS9k dW1teS5jDQorKysgbGludXgtMi42LW1tL3NlY3VyaXR5L2R1bW15LmMNCkBAIC03NzYsMTAgKzc3 NiwxMCBAQCBzdGF0aWMgaW50IGR1bW15X3NvY2tldF9hY2NlcHQgKHN0cnVjdCBzDQogCXJldHVy biAwOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBkdW1teV9zb2NrZXRfcG9zdF9hY2NlcHQgKHN0cnVj dCBzb2NrZXQgKnNvY2ssIA0KLQkJCQkgICAgICBzdHJ1Y3Qgc29ja2V0ICpuZXdzb2NrKQ0KK3N0 YXRpYyBpbnQgZHVtbXlfc29ja2V0X3Bvc3RfYWNjZXB0KHN0cnVjdCBzb2NrZXQgKnNvY2ssDQor CQkJCSAgICBzdHJ1Y3Qgc29ja2V0ICpuZXdzb2NrKQ0KIHsNCi0JcmV0dXJuOw0KKwlyZXR1cm4g MDsNCiB9DQogDQogc3RhdGljIGludCBkdW1teV9zb2NrZXRfc2VuZG1zZyAoc3RydWN0IHNvY2tl dCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLA0KQEAgLTc5NCw2ICs3OTQsMTIgQEAgc3RhdGlj IGludCBkdW1teV9zb2NrZXRfcmVjdm1zZyAoc3RydWN0IA0KIAlyZXR1cm4gMDsNCiB9DQogDQor c3RhdGljIGludCBkdW1teV9zb2NrZXRfcG9zdF9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHNrX2J1ZmYgKnNrYiwNCisJCQkJCSAgIHVuc2lnbmVkIGludCBmbGFncykNCit7 DQorCXJldHVybiAwOw0KK30NCisNCiBzdGF0aWMgaW50IGR1bW15X3NvY2tldF9nZXRzb2NrbmFt ZSAoc3RydWN0IHNvY2tldCAqc29jaykNCiB7DQogCXJldHVybiAwOw0KQEAgLTExNDEsNiArMTE0 Nyw3IEBAIHZvaWQgc2VjdXJpdHlfZml4dXBfb3BzIChzdHJ1Y3Qgc2VjdXJpdHkNCiAJc2V0X3Rv X2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfcG9zdF9hY2NlcHQpOw0KIAlzZXRfdG9fZHVtbXlf aWZfbnVsbChvcHMsIHNvY2tldF9zZW5kbXNnKTsNCiAJc2V0X3RvX2R1bW15X2lmX251bGwob3Bz LCBzb2NrZXRfcmVjdm1zZyk7DQorCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X3Bv c3RfcmVjdl9kYXRhZ3JhbSk7DQogCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2dl dHNvY2tuYW1lKTsNCiAJc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfZ2V0cGVlcm5h bWUpOw0KIAlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9zZXRzb2Nrb3B0KTsNCi0t LSBsaW51eC0yLjYtbW0ub3JpZy9uZXQvY29yZS9kYXRhZ3JhbS5jDQorKysgbGludXgtMi42LW1t L25ldC9jb3JlL2RhdGFncmFtLmMNCkBAIC01NSw2ICs1NSw3IEBADQogI2luY2x1ZGUgPG5ldC9j aGVja3N1bS5oPg0KICNpbmNsdWRlIDxuZXQvc29jay5oPg0KICNpbmNsdWRlIDxuZXQvdGNwX3N0 YXRlcy5oPg0KKyNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPg0KIA0KIC8qDQogICoJSXMgYSBz b2NrZXQgJ2Nvbm5lY3Rpb24gb3JpZW50ZWQnID8NCkBAIC0xNDgsNiArMTQ5LDcgQEAgc3RydWN0 IHNrX2J1ZmYgKl9fc2tiX3JlY3ZfZGF0YWdyYW0oc3RydQ0KIHsNCiAJc3RydWN0IHNrX2J1ZmYg KnNrYjsNCiAJbG9uZyB0aW1lbzsNCisJdW5zaWduZWQgbG9uZyBjcHVfZmxhZ3M7DQogCS8qDQog CSAqIENhbGxlciBpcyBhbGxvd2VkIG5vdCB0byBjaGVjayBzay0+c2tfZXJyIGJlZm9yZSBza2Jf cmVjdl9kYXRhZ3JhbSgpDQogCSAqLw0KQEAgLTE2NSw3ICsxNjcsNiBAQCBzdHJ1Y3Qgc2tfYnVm ZiAqX19za2JfcmVjdl9kYXRhZ3JhbShzdHJ1DQogCQkgKiBMb29rIGF0IGN1cnJlbnQgbmZzIGNs aWVudCBieSB0aGUgd2F5Li4uDQogCQkgKiBIb3dldmVyLCB0aGlzIGZ1bmN0aW9uIHdhcyBjb3Jy ZW50IGluIGFueSBjYXNlLiA4KQ0KIAkJICovDQotCQl1bnNpZ25lZCBsb25nIGNwdV9mbGFnczsN CiANCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZS5sb2NrLCBjcHVf ZmxhZ3MpOw0KIAkJc2tiID0gc2tiX3BlZWsoJnNrLT5za19yZWNlaXZlX3F1ZXVlKTsNCkBAIC0x NzksNiArMTgwLDE0IEBAIHN0cnVjdCBza19idWZmICpfX3NrYl9yZWN2X2RhdGFncmFtKHN0cnUN CiAJCX0NCiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNrLT5za19yZWNlaXZlX3F1ZXVlLmxv Y2ssIGNwdV9mbGFncyk7DQogDQorCQkvKiBGaWx0ZXIgcGFja2V0cyBmcm9tIHVud2FudGVkIHBl ZXJzLiAqLw0KKwkJaWYgKHNrYikgew0KKwkJCWVycm9yID0gc2VjdXJpdHlfc29ja2V0X3Bvc3Rf cmVjdl9kYXRhZ3JhbShzaywgc2tiLA0KKwkJCQkJCQkJICAgZmxhZ3MpOw0KKwkJCWlmIChlcnJv cikNCisJCQkJZ290byBmb3JjZV9kZXF1ZXVlOw0KKwkJfQ0KKw0KIAkJaWYgKHNrYikNCiAJCQly ZXR1cm4gc2tiOw0KIA0KQEAgLTE5MSw2ICsyMDAsMjQgQEAgc3RydWN0IHNrX2J1ZmYgKl9fc2ti X3JlY3ZfZGF0YWdyYW0oc3RydQ0KIA0KIAlyZXR1cm4gTlVMTDsNCiANCitmb3JjZV9kZXF1ZXVl Og0KKwkvKiBEcm9wIHRoaXMgcGFja2V0IGJlY2F1c2UgTFNNIHNheXMgIkRvbid0IHBhc3MgaXQg dG8gdGhlIGNhbGxlciIuICovDQorCWlmICghKGZsYWdzICYgTVNHX1BFRUspKQ0KKwkJZ290byBu b19wZWVrOw0KKwkvKg0KKwkgKiBJZiB0aGlzIHBhY2tldCBpcyBNU0dfUEVFSydlZCwgZGVxdWV1 ZSBpdCBmb3JjaWJseQ0KKwkgKiBzbyB0aGF0IHRoaXMgcGFja2V0IHdvbid0IHByZXZlbnQgdGhl IGNhbGxlciBmcm9tIHBpY2tpbmcgdXANCisJICogbmV4dCBwYWNrZXQuDQorCSAqLw0KKwlzcGlu X2xvY2tfaXJxc2F2ZSgmc2stPnNrX3JlY2VpdmVfcXVldWUubG9jaywgY3B1X2ZsYWdzKTsNCisJ aWYgKHNrYiA9PSBza2JfcGVlaygmc2stPnNrX3JlY2VpdmVfcXVldWUpKSB7DQorCQlfX3NrYl91 bmxpbmsoc2tiLCAmc2stPnNrX3JlY2VpdmVfcXVldWUpOw0KKwkJYXRvbWljX2RlYygmc2tiLT51 c2Vycyk7DQorCQkvKiBEbyBJIGhhdmUgc29tZXRoaW5nIHRvIGRvIHdpdGggc2tiLT5wZWVrZWQg PyAqLw0KKwl9DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNrLT5za19yZWNlaXZlX3F1ZXVl LmxvY2ssIGNwdV9mbGFncyk7DQorbm9fcGVlazoNCisJa2ZyZWVfc2tiKHNrYik7DQogbm9fcGFj a2V0Og0KIAkqZXJyID0gZXJyb3I7DQogCXJldHVybiBOVUxMOw0KLS0tIGxpbnV4LTIuNi1tbS5v cmlnL3NlY3VyaXR5L3NlY3VyaXR5LmMNCisrKyBsaW51eC0yLjYtbW0vc2VjdXJpdHkvc2VjdXJp dHkuYw0KQEAgLTg5NSw5ICs4OTUsOSBAQCBpbnQgc2VjdXJpdHlfc29ja2V0X2FjY2VwdChzdHJ1 Y3Qgc29ja2V0DQogCXJldHVybiBzZWN1cml0eV9vcHMtPnNvY2tldF9hY2NlcHQoc29jaywgbmV3 c29jayk7DQogfQ0KIA0KLXZvaWQgc2VjdXJpdHlfc29ja2V0X3Bvc3RfYWNjZXB0KHN0cnVjdCBz b2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrZXQgKm5ld3NvY2spDQoraW50IHNlY3VyaXR5X3NvY2tl dF9wb3N0X2FjY2VwdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0ICpuZXdzb2Nr KQ0KIHsNCi0Jc2VjdXJpdHlfb3BzLT5zb2NrZXRfcG9zdF9hY2NlcHQoc29jaywgbmV3c29jayk7 DQorCXJldHVybiBzZWN1cml0eV9vcHMtPnNvY2tldF9wb3N0X2FjY2VwdChzb2NrLCBuZXdzb2Nr KTsNCiB9DQogDQogaW50IHNlY3VyaXR5X3NvY2tldF9zZW5kbXNnKHN0cnVjdCBzb2NrZXQgKnNv Y2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50IHNpemUpDQpAQCAtOTExLDYgKzkxMSwxMiBAQCBp bnQgc2VjdXJpdHlfc29ja2V0X3JlY3Ztc2coc3RydWN0IHNvY2tlDQogCXJldHVybiBzZWN1cml0 eV9vcHMtPnNvY2tldF9yZWN2bXNnKHNvY2ssIG1zZywgc2l6ZSwgZmxhZ3MpOw0KIH0NCiANCitp bnQgc2VjdXJpdHlfc29ja2V0X3Bvc3RfcmVjdl9kYXRhZ3JhbShzdHJ1Y3Qgc29jayAqc2ssIHN0 cnVjdCBza19idWZmICpza2IsDQorCQkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorew0K KwlyZXR1cm4gc2VjdXJpdHlfb3BzLT5zb2NrZXRfcG9zdF9yZWN2X2RhdGFncmFtKHNrLCBza2Is IGZsYWdzKTsNCit9DQorDQogaW50IHNlY3VyaXR5X3NvY2tldF9nZXRzb2NrbmFtZShzdHJ1Y3Qg c29ja2V0ICpzb2NrKQ0KIHsNCiAJcmV0dXJuIHNlY3VyaXR5X29wcy0+c29ja2V0X2dldHNvY2tu YW1lKHNvY2spOw0KDQotLSANCg== --boundary-1--