From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4B99934E.2030802@ak.jp.nec.com> Date: Fri, 12 Mar 2010 10:05:18 +0900 From: KaiGai Kohei MIME-Version: 1.0 To: Andy Warner CC: Eamon Walsh , KaiGai Kohei , selinux@tycho.nsa.gov Subject: Re: [PATCH] libselinux: selabel_*() support for database objects References: <4B050008.3010201@ak.jp.nec.com> <4B0757F5.5080902@tycho.nsa.gov> <4B07F64B.1070407@kaigai.gr.jp> <4B0DBDF2.5050601@ak.jp.nec.com> <4B14396A.9000207@tycho.nsa.gov> <4B8C7D8C.9060803@ak.jp.nec.com> <4B9584A3.1070603@tycho.nsa.gov> <4B9598F1.50309@ak.jp.nec.com> <4B95A2D2.3080101@tycho.nsa.gov> <4B95A780.8050300@ak.jp.nec.com> <4B96AAA7.5090909@tycho.nsa.gov> <4B96C8CA.1090301@kaigai.gr.jp> <4B97D2D0.3010507@tycho.nsa.gov> <4B97DF3C.6070601@rubix.com> <4B987150.10609@ak.jp.nec.com> In-Reply-To: <4B987150.10609@ak.jp.nec.com> Content-Type: multipart/mixed; boundary="------------010708070409040601060202" Sender: owner-selinux@tycho.nsa.gov List-Id: selinux@tycho.nsa.gov This is a multi-part message in MIME format. --------------010708070409040601060202 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit >> Lastly, regarding tuples, I noticed the ability to label tuples was >> removed because tuples are not named. Would it be useful to label all >> tuples under an object (e.g., table) as follows. I am sure you >> considered this, just curious of your thoughts: >> >> db_tuple *.pg_catalog.pg_table.* system_u:object_r:sepgsql_tuple_t:s0 >> >> So that all tuples under the *.pg_catalog.pg_table table would have a >> context of system_u:object_r:sepgsql_tuple_t:s0. Or, is the fact that >> you are not able to use anything other than * as the tuple's name simply >> make things too messy? I would assume there would be a similar issue in >> constructing a key value for a tuple in the call to selabel_lookup. > > Hmm. Indeed, it makes sense. > I'll add db_tuple again. Please wait for a while. The attached patch supports initial labeling of db_tuple class again. If DBMS identifies tuples using the relation which owns the tuples, libselinux can return a hint of the security context to be assigned. Below are only differences from the previous patch. diff --git a/libselinux/include/selinux/label.h b/libselinux/include/selinux/label.h index 60503bd..0435365 100644 --- a/libselinux/include/selinux/label.h +++ b/libselinux/include/selinux/label.h @@ -127,6 +127,7 @@ void selabel_stats(struct selabel_handle *handle); #define SELABEL_DB_VIEW 6 #define SELABEL_DB_PROCEDURE 7 #define SELABEL_DB_BLOB 8 +#define SELABEL_DB_TUPLE 9 #ifdef __cplusplus } diff --git a/libselinux/src/label_db.c b/libselinux/src/label_db.c index 9e4f52b..e1bfab7 100644 --- a/libselinux/src/label_db.c +++ b/libselinux/src/label_db.c @@ -136,6 +136,8 @@ process_line(const char *path, char *line_buf, unsigned int line_num, spec->type = SELABEL_DB_PROCEDURE; else if (!strcmp(type, "db_blob")) spec->type = SELABEL_DB_BLOB; + else if (!strcmp(type, "db_tuple")) + spec->type = SELABEL_DB_TUPLE; else { selinux_log(SELINUX_WARNING, "%s: line %d has invalid object type %s\n", -- KaiGai Kohei --------------010708070409040601060202 Content-Type: application/octect-stream; name="libselinux-selabel-sepgsql.4.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="libselinux-selabel-sepgsql.4.patch" IGxpYnNlbGludXgvaW5jbHVkZS9zZWxpbnV4L2xhYmVsLmggICAgICAgICAgICAgICB8ICAg MTIgKwogbGlic2VsaW51eC9pbmNsdWRlL3NlbGludXgvc2VsaW51eC5oICAgICAgICAgICAg IHwgICAgMSArCiBsaWJzZWxpbnV4L21hbi9tYW4zL3NlbGFiZWxfb3Blbi4zICAgICAgICAg ICAgICAgfCAgIDEwICstCiBsaWJzZWxpbnV4L21hbi9tYW4zL3NlbGludXhfYmluYXJ5X3Bv bGljeV9wYXRoLjMgfCAgICA0ICsKIGxpYnNlbGludXgvbWFuL21hbjUvc2VsYWJlbF9kYi41 ICAgICAgICAgICAgICAgICB8ICAgOTMgKysrKysrCiBsaWJzZWxpbnV4L3NyYy9maWxlX3Bh dGhfc3VmZml4ZXMuaCAgICAgICAgICAgICAgfCAgICAxICsKIGxpYnNlbGludXgvc3JjL2xh YmVsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIGxpYnNlbGludXgv c3JjL2xhYmVsX2RiLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAzMzYgKysrKysrKysr KysrKysrKysrKysrKwogbGlic2VsaW51eC9zcmMvbGFiZWxfaW50ZXJuYWwuaCAgICAgICAg ICAgICAgICAgIHwgICAgMiArCiBsaWJzZWxpbnV4L3NyYy9zZWxpbnV4X2NvbmZpZy5jICAg ICAgICAgICAgICAgICAgfCAgICA5ICstCiBsaWJzZWxpbnV4L3NyYy9zZWxpbnV4X2ludGVy bmFsLmggICAgICAgICAgICAgICAgfCAgICAxICsKIDExIGZpbGVzIGNoYW5nZWQsIDQ2NyBp bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYnNlbGludXgv aW5jbHVkZS9zZWxpbnV4L2xhYmVsLmggYi9saWJzZWxpbnV4L2luY2x1ZGUvc2VsaW51eC9s YWJlbC5oCmluZGV4IDgyZjRlMTMuLjA0MzUzNjUgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgv aW5jbHVkZS9zZWxpbnV4L2xhYmVsLmgKKysrIGIvbGlic2VsaW51eC9pbmNsdWRlL3NlbGlu dXgvbGFiZWwuaApAQCAtMjksNiArMjksOCBAQCBzdHJ1Y3Qgc2VsYWJlbF9oYW5kbGU7CiAj ZGVmaW5lIFNFTEFCRUxfQ1RYX01FRElBCTEKIC8qIHggY29udGV4dHMgKi8KICNkZWZpbmUg U0VMQUJFTF9DVFhfWAkJMgorLyogZGIgb2JqZWN0cyAqLworI2RlZmluZSBTRUxBQkVMX0NU WF9EQgkJMwogCiAvKgogICogQXZhaWxhYmxlIG9wdGlvbnMKQEAgLTExNiw2ICsxMTgsMTYg QEAgdm9pZCBzZWxhYmVsX3N0YXRzKHN0cnVjdCBzZWxhYmVsX2hhbmRsZSAqaGFuZGxlKTsK ICNkZWZpbmUgU0VMQUJFTF9YX1BPTFlQUk9QCTYKICNkZWZpbmUgU0VMQUJFTF9YX1BPTFlT RUxOCTcKIAorLyogREIgYmFja2VuZCAqLworI2RlZmluZSBTRUxBQkVMX0RCX0RBVEFCQVNF CTEKKyNkZWZpbmUgU0VMQUJFTF9EQl9TQ0hFTUEJMgorI2RlZmluZSBTRUxBQkVMX0RCX1RB QkxFCTMKKyNkZWZpbmUgU0VMQUJFTF9EQl9DT0xVTU4JNAorI2RlZmluZSBTRUxBQkVMX0RC X1NFUVVFTkNFCTUKKyNkZWZpbmUgU0VMQUJFTF9EQl9WSUVXCQk2CisjZGVmaW5lIFNFTEFC RUxfREJfUFJPQ0VEVVJFCTcKKyNkZWZpbmUgU0VMQUJFTF9EQl9CTE9CCQk4CisjZGVmaW5l IFNFTEFCRUxfREJfVFVQTEUJOQogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdp dCBhL2xpYnNlbGludXgvaW5jbHVkZS9zZWxpbnV4L3NlbGludXguaCBiL2xpYnNlbGludXgv aW5jbHVkZS9zZWxpbnV4L3NlbGludXguaAppbmRleCBjYWNiM2NiLi44MzRhMWVlIDEwMDY0 NAotLS0gYS9saWJzZWxpbnV4L2luY2x1ZGUvc2VsaW51eC9zZWxpbnV4LmgKKysrIGIvbGli c2VsaW51eC9pbmNsdWRlL3NlbGludXgvc2VsaW51eC5oCkBAIC00ODcsNiArNDg3LDcgQEAg ZXh0ZXJuIGNvbnN0IGNoYXIgKnNlbGludXhfbWVkaWFfY29udGV4dF9wYXRoKHZvaWQpOwog ZXh0ZXJuIGNvbnN0IGNoYXIgKnNlbGludXhfdmlydHVhbF9kb21haW5fY29udGV4dF9wYXRo KHZvaWQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKnNlbGludXhfdmlydHVhbF9pbWFnZV9jb250 ZXh0X3BhdGgodm9pZCk7CiBleHRlcm4gY29uc3QgY2hhciAqc2VsaW51eF94X2NvbnRleHRf cGF0aCh2b2lkKTsKK2V4dGVybiBjb25zdCBjaGFyICpzZWxpbnV4X3NlcGdzcWxfY29udGV4 dF9wYXRoKHZvaWQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKnNlbGludXhfY29udGV4dHNfcGF0 aCh2b2lkKTsKIGV4dGVybiBjb25zdCBjaGFyICpzZWxpbnV4X3NlY3VyZXR0eV90eXBlc19w YXRoKHZvaWQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKnNlbGludXhfYm9vbGVhbnNfcGF0aCh2 b2lkKTsKZGlmZiAtLWdpdCBhL2xpYnNlbGludXgvbWFuL21hbjMvc2VsYWJlbF9vcGVuLjMg Yi9saWJzZWxpbnV4L21hbi9tYW4zL3NlbGFiZWxfb3Blbi4zCmluZGV4IDFhZjJlYzAuLjg2 NzRlMzcgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgvbWFuL21hbjMvc2VsYWJlbF9vcGVuLjMK KysrIGIvbGlic2VsaW51eC9tYW4vbWFuMy9zZWxhYmVsX29wZW4uMwpAQCAtNzIsMTUgKzcy LDE5IEBAIE5vdGUgdGhhdCBhbiBpbnZhbGlkIGNvbnRleHQgbWF5IG5vdCBiZSB0cmVhdGVk IGFzIGFuIGVycm9yIHVubGVzcyBpdCBpcyBhY3R1YWxsCiAuVFAKIC5CIFNFTEFCRUxfQ1RY X0ZJTEUKIEZpbGUgY29udGV4dHMgYmFja2VuZCwgZGVzY3JpYmVkIGluIAotLkJSIHNlbGFi ZWxfZmlsZSAoMykuCisuQlIgc2VsYWJlbF9maWxlICg1KS4KIC5UUAogLkIgU0VMQUJFTF9D VFhfTUVESUEKIE1lZGlhIGNvbnRleHRzIGJhY2tlbmQsIGRlc2NyaWJlZCBpbiAKLS5CUiBz ZWxhYmVsX21lZGlhICgzKS4KKy5CUiBzZWxhYmVsX21lZGlhICg1KS4KIC5UUAogLkIgU0VM QUJFTF9DVFhfWAogWCBXaW5kb3dzIGNvbnRleHRzIGJhY2tlbmQsIGRlc2NyaWJlZCBpbiAK LS5CUiBzZWxhYmVsX3ggKDMpLgorLkJSIHNlbGFiZWxfeCAoNSkuCisuVFAKKy5CIFNFTEFC RUxfQ1RYX0RCCitEYXRhYmFzZSBvYmplY3RzIGNvbnRleHRzIGJhY2tlbmQsIGRlc2NyaWJl ZCBpbgorLkJSIHNlbGFiZWxfZGIgKDUpLgogCiAuU0ggIlJFVFVSTiBWQUxVRSIKIEEgbm9u LU5VTEwgaGFuZGxlIHZhbHVlIGlzIHJldHVybmVkIG9uIHN1Y2Nlc3MuICBPbiBlcnJvciwg TlVMTCBpcyByZXR1cm5lZCBhbmQKZGlmZiAtLWdpdCBhL2xpYnNlbGludXgvbWFuL21hbjMv c2VsaW51eF9iaW5hcnlfcG9saWN5X3BhdGguMyBiL2xpYnNlbGludXgvbWFuL21hbjMvc2Vs aW51eF9iaW5hcnlfcG9saWN5X3BhdGguMwppbmRleCA2MTkwOTU3Li44ZWFkMWE0IDEwMDY0 NAotLS0gYS9saWJzZWxpbnV4L21hbi9tYW4zL3NlbGludXhfYmluYXJ5X3BvbGljeV9wYXRo LjMKKysrIGIvbGlic2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4X2JpbmFyeV9wb2xpY3lfcGF0 aC4zCkBAIC0yOSw2ICsyOSw4IEBAIGV4dGVybiBjb25zdCBjaGFyICpzZWxpbnV4X3VzZXJz Y29uZl9wYXRoKHZvaWQpOwogCiBleHRlcm4gY29uc3QgY2hhciAqc2VsaW51eF94X2NvbnRl eHRfcGF0aCh2b2lkKTsKIAorZXh0ZXJuIGNvbnN0IGNoYXIgKnNlbGludXhfc2VwZ3NxbF9j b250ZXh0X3BhdGgodm9pZCk7CisKIGV4dGVybiBjb25zdCBjaGFyICpzZWxpbnV4X2ZpbGVf Y29udGV4dF9wYXRoKHZvaWQpOwogCiBleHRlcm4gY29uc3QgY2hhciAqc2VsaW51eF9tZWRp YV9jb250ZXh0X3BhdGgodm9pZCk7CkBAIC02Niw2ICs2OCw4IEBAIHNlbGludXhfdXNlcnNj b25mX3BhdGgoKSAtIGZpbGUgY29udGFpbmluZyBtYXBwaW5nIGJldHdlZW4gTGludXggVXNl cnMgYW5kIFNFTGluCiAuc3AKIHNlbGludXhfeF9jb250ZXh0X3BhdGgoKSAtIGZpbGUgY29u dGFpbmluZyBjb25maWd1cmF0aW9uIGZvciBYU0VMaW51eCBleHRlbnNpb24KIC5zcAorc2Vs aW51eF9zZXBnc3FsX2NvbnRleHRfcGF0aCgpIC0gZmlsZSBjb250YWluaW5nIGNvbmZpZ3Vy YXRpb24gZm9yIFNFLVBvc3RncmVTUUwKKy5zcAogc2VsaW51eF9uZXRmaWx0ZXJfY29udGV4 dF9wYXRoIC0gZGVmYXVsdCBuZXRmaWx0ZXIgY29udGV4dCAKIC5zcAogc2VsaW51eF9maWxl X2NvbnRleHRfcGF0aCgpIC0gZGVmYXVsdCBzeXN0ZW0gZmlsZSBjb250ZXh0cyBjb25maWd1 cmF0aW9uCmRpZmYgLS1naXQgYS9saWJzZWxpbnV4L21hbi9tYW41L3NlbGFiZWxfZGIuNSBi L2xpYnNlbGludXgvbWFuL21hbjUvc2VsYWJlbF9kYi41Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmI2OTlmMzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZWxpbnV4 L21hbi9tYW41L3NlbGFiZWxfZGIuNQpAQCAtMCwwICsxLDkzIEBACisuXCIgSGV5IEVtYWNz ISBUaGlzIGZpbGUgaXMgLSotIG5yb2ZmIC0qLSBzb3VyY2UuCisuXCIKKy5cIiBBdXRob3I6 IEthaUdhaSBLb2hlaSA8a2FpZ2FpQGFrLmpwLm5lYy5jb20+IDIwMDkKKy5USCAic2VsYWJl bF9kYiIgIjUiICIyMiBOb3YgMjAwOSIgIiIgIlNFTGludXggQVBJIGRvY3VtZW50YXRpb24i CisuU0ggIk5BTUUiCitzZWxhYmVsX2RiIFwtIHVzZXJzcGFjZSBTRUxpbnV4IGxhYmVsaW5n IGludGVyZmFjZTogREIgb2JqZWN0cyBjb250ZXh0cyBiYWNrZW5kLgorLlNIICJTWU5PUFNJ UyIKKy5CICNpbmNsdWRlIDxzZWxpbnV4L3NlbGludXguaD4KKworLkIgI2luY2x1ZGUgPHNl bGludXgvbGFiZWwuaD4KKy5zcAorLkJJICJpbnQgc2VsYWJlbF9sb29rdXAoc3RydWN0IHNl bGFiZWxfaGFuZGxlICoiIGhuZCAsCisuaW4gK1x3J2ludCBzZWxhYmVsX2xvb2t1cCgndQor LkJJICJzZWN1cml0eV9jb250ZXh0X3QgKiIgY29udGV4dCAsCisKKy5CSSAiY29uc3QgY2hh ciAqIiBvYmplY3RfbmFtZSAiLCBpbnQgIiBvYmplY3RfdHlwZSAiKTsiCisKKy5TSCAiREVT Q1JJUFRJT04iCitUaGUgREIgY29udGV4dHMgYmFja2VuZCBtYXBzIGZyb20gYSBwYWlyIG9m IG9iamVjdCBuYW1lIGFuZCBjbGFzcyBpbnRvIHNlY3VyaXR5IGNvbnRleHRzLiBJdCBpcyB1 c2VkIHRvIGZpbmQgdGhlIGFwcHJvcHJpYXRlIGNvbnRleHQgZm9yIGRhdGFiYXNlIG9iamVj dHMgd2hlbiByZWxhYmVsaW5nIGEgY2VydGFpbiBkYXRhYmFzZS4KKworVGhlCisuSSBvYmpl Y3RfbmFtZQorc2hvdWxkIGJlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIHVzaW5nIHRoZSBoaWVy YXJjaHkgb2YgZGF0YWJhc2Ugb2JqZWN0cy4KK0ZvciBleGFtcGxlLCB0aGUKKy5CIHBnX2Ns YXNzCit0YWJsZSBpbiB0aGUKKy5CIHBvc3RncmVzCitkYXRhYmFzZSBhbmQKKy5CIHBnX2Nh dGFsb2cKK3NjaGVtYSBzaG91bGQgYmUgcXVhbGlmaWVkIGFzCisuQiBwb3N0Z3Jlcy5wZ19j YXRhbG9nLnBnX2NsYXNzIC4KKworVGhlCisuSSBvYmplY3RfdHlwZQorYXJndW1lbnQgc2hv dWxkIGJlIHNldCB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisuVFAKKy5CIFNF TEFCRUxfREJfREFUQUJBU0UKK1RoZQorLkkgb2JqZWN0X25hbWUKK2FyZ3VtZW50IHNwZWNp ZmllcyB0aGUgbmFtZSBvZiBhIGRhdGFiYXNlIGl0c2VsZiwgc3VjaCBhcyAicG9zdGdyZXMi LgorLlRQCisuQiBTRUxBQkVMX0RCX1NDSEVNQQorVGhlCisuSSBvYmplY3RfbmFtZQorYXJn dW1lbnQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgc2NoZW1hIG9iamVjdCwgc3VjaCBhcyAi cG9zdGdyZXMucHVibGljIi4KKy5UUAorLkIgU0VMQUJFTF9EQl9UQUJMRQorVGhlCisuSSBv YmplY3RfbmFtZQorYXJndW1lbnQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgdGFibGUgb2Jq ZWN0LCBzdWNoIGFzICJwb3N0Z3Jlcy5wdWJsaWMubXlfdGFibGUiCisuVFAKKy5CIFNFTEFC RUxfREJfQ09MVU1OCitUaGUKKy5JIG9iamVjdF9uYW1lCithcmd1bWVudCBzcGVjaWZpZXMg dGhlIG5hbWUgb2YgYSBjb2x1bW4gb2JqZWN0LCBzdWNoIGFzICJwb3N0Z3Jlcy5wdWJsaWMu bXlfdGFibGUudXNlcl9pZCIKKy5UUAorLkIgU0VMQUJFTF9EQl9UVVBMRQorVGhlCisuSSBv YmplY3RfbmFtZQorYXJndW1lbnQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgdGFibGUgb2Jq ZWN0IHdoaWNoIGNvbnRhaW5zIHRoZSB0dXBsZXMgdG8gYmUgcmVsYWJlbGVkLCBzdWNoIGFz ICJwb3N0Z3Jlc3FsLnB1YmxpYy5teV90YWJsZSIuIE5vdGUgdGhhdCB3ZSBoYXZlIG5vIHdh eSB0byBpZGVudGlmeSBpbmRpdmlkdWFsIHR1cGxlIG9iamVjdHMsIGV4Y2VwdCBmb3IgV0hF UkUgY2xhdXNlIG9uIERNTCBzdGF0ZW1lbnRzLCBiZWNhdXNlIGl0IGhhcyBubyBuYW1lLgor LlRQCisuQiBTRUxBQkVMX0RCX1BST0NFRFVSRQorVGhlCisuSSBvYmplY3RfbmFtZQorYXJn dW1lbnQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgcHJvY2VkdXJlIG9iamVjdCwgc3VjaCBh cyAicG9zdGdyZXMucHVibGljLm15X2Z1bmMiLiBOb3RlIHRoYXQgd2UgZG9uJ3Qgc3VwcG9y dCB0byBsb29rdXAgaW5kaXZpZHVhbCBzZWN1cml0eSBjb250ZXh0cyBmb3IgZWFjaCBwcm9j ZWR1cmVzIHdoaWNoIGhhdmUgc2FtZSBuYW1lIGJ1dCBkaWZmZXJlbnQgYXJndW1lbnRzLgor LlRQCisuQiBTRUxBQkVMX0RCX1NFUVVFTkNFCitUaGUKKy5JIG9iamVjdF9uYW1lCithcmd1 bWVudCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgYSBzZXF1ZW5jZSBvYmplY3QsIHN1Y2ggYXMg InBvc3RncmVzLnB1YmxpYy5teV9zZXEiLgorLlRQCisuQiBTRUxBQkVMX0RCX0JMT0IKK1Ro ZQorLkkgb2JqZWN0X25hbWUKK2FyZ3VtZW50IHNwZWNpZmllcyB0aGUgbmFtZSBvZiBhIGxh cmdlIG9iamVjdCwgc3VjaCBhcyAicG9zdGdyZXMuMTYzMDgiLgorTm90ZSB0aGF0IGEgbGFy Z2Ugb2JqZWN0IGRvZXMgbm90IGhhdmUgaXRzIG5hbWUsIHNvIGl0IGlzIGlkZW50aWZpZWQg YnkgaXRzIGlkZW50aWZpZXIgdmFsdWUuCisKKy5TSCAiT1BUSU9OUyIKK0luIGFkZGl0aW9u IHRvIHRoZSBnbG9iYWwgb3B0aW9ucyBkZXNjcmliZWQgaW4gCisuQlIgc2VsYWJlbF9vcGVu ICgzKSwKK3RoaXMgYmFja2VuZCByZWNvZ25pemVzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoK KworLlRQCisuQiBTRUxBQkVMX09QVF9QQVRICitBIG5vbi1udWxsIHZhbHVlIGZvciB0aGlz IG9wdGlvbiBzcGVjaWZpZXMgYSBwYXRoIHRvIGEgZmlsZSB0aGF0IHdpbGwgYmUgb3BlbmVk IGluIGxpZXUgb2YgdGhlIHN0YW5kYXJkIERCIGNvbnRleHRzIGZpbGUuCitJdCB0cmllcyB0 byBvcGVuIHRoZSBzcGVjZmlsZSBkZXNpZ25lZCBmb3IgU0UtUG9zdGdyZVNRTCBpbiB0aGUg ZGVmYXVsdCwgc28gaWYgYW5vdGhlciBSREJNUyB1c2VzIHRoaXMgaW50ZXJmYWNlLCBpdCBu ZWVkcyB0byBnaXZlIGFuIGV4cGxpY2l0IHNwZWNmaWxlIGRlc2lnbmVkIGZvciB0aGUgUkRC TVMuCisKKy5TSCAiU0VFIEFMU08iCisuQlIgc2VsYWJlbF9vcGVuICgzKSwKKy5CUiBzZWxh YmVsX2xvb2t1cCAoMyksCisuQlIgc2VsYWJlbF9zdGF0cyAoMyksCisuQlIgc2VsaW51eCAo OCkKKwpkaWZmIC0tZ2l0IGEvbGlic2VsaW51eC9zcmMvZmlsZV9wYXRoX3N1ZmZpeGVzLmgg Yi9saWJzZWxpbnV4L3NyYy9maWxlX3BhdGhfc3VmZml4ZXMuaAppbmRleCBlYWRhMjMyLi5j Y2Y0M2UxIDEwMDY0NAotLS0gYS9saWJzZWxpbnV4L3NyYy9maWxlX3BhdGhfc3VmZml4ZXMu aAorKysgYi9saWJzZWxpbnV4L3NyYy9maWxlX3BhdGhfc3VmZml4ZXMuaApAQCAtMjMsMyAr MjMsNCBAQCBTXyhCSU5QT0xJQ1ksICIvcG9saWN5L3BvbGljeSIpCiAgICAgU18oVklSVFVB TF9ET01BSU4sICIvY29udGV4dHMvdmlydHVhbF9kb21haW5fY29udGV4dCIpCiAgICAgU18o VklSVFVBTF9JTUFHRSwgIi9jb250ZXh0cy92aXJ0dWFsX2ltYWdlX2NvbnRleHQiKQogICAg IFNfKEZJTEVfQ09OVEVYVF9TVUJTLCAiL2NvbnRleHRzL2ZpbGVzL2ZpbGVfY29udGV4dHMu c3VicyIpCisgICAgU18oU0VQR1NRTF9DT05URVhUUywgIi9jb250ZXh0cy9zZXBnc3FsX2Nv bnRleHRzIikKZGlmZiAtLWdpdCBhL2xpYnNlbGludXgvc3JjL2xhYmVsLmMgYi9saWJzZWxp bnV4L3NyYy9sYWJlbC5jCmluZGV4IGNlYTNjNDMuLjAyMGI4MDMgMTAwNjQ0Ci0tLSBhL2xp YnNlbGludXgvc3JjL2xhYmVsLmMKKysrIGIvbGlic2VsaW51eC9zcmMvbGFiZWwuYwpAQCAt MjIsNyArMjIsOCBAQCB0eXBlZGVmIGludCAoKnNlbGFiZWxfaW5pdGZ1bmMpKHN0cnVjdCBz ZWxhYmVsX2hhbmRsZSAqcmVjLAogc3RhdGljIHNlbGFiZWxfaW5pdGZ1bmMgaW5pdGZ1bmNz W10gPSB7CiAJJnNlbGFiZWxfZmlsZV9pbml0LAogCSZzZWxhYmVsX21lZGlhX2luaXQsCi0J JnNlbGFiZWxfeF9pbml0CisJJnNlbGFiZWxfeF9pbml0LAorCSZzZWxhYmVsX2RiX2luaXQs CiB9OwogCiB0eXBlZGVmIHN0cnVjdCBzZWxhYmVsX3N1YiB7CmRpZmYgLS1naXQgYS9saWJz ZWxpbnV4L3NyYy9sYWJlbF9kYi5jIGIvbGlic2VsaW51eC9zcmMvbGFiZWxfZGIuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWJmYWI3Ci0tLSAvZGV2L251bGwK KysrIGIvbGlic2VsaW51eC9zcmMvbGFiZWxfZGIuYwpAQCAtMCwwICsxLDMzNiBAQAorLyoK KyAqIE1lZGlhIGNvbnRleHRzIGJhY2tlbmQgZm9yIERCIG9iamVjdHMKKyAqCisgKiBBdXRo b3I6IEthaUdhaSBLb2hlaSA8a2FpZ2FpQGFrLmpwLm5lYy5jb20+CisgKi8KKworI2luY2x1 ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW8u aD4KKyNpbmNsdWRlIDxzdGRpb19leHQuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1 ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8Zm5tYXRjaC5o PgorI2luY2x1ZGUgImNhbGxiYWNrcy5oIgorI2luY2x1ZGUgImxhYmVsX2ludGVybmFsLmgi CisKKy8qCisgKiBSZWd1bGFyIGRhdGFiYXNlIG9iamVjdCdzIHNlY3VyaXR5IGNvbnRleHQg aW50ZXJmYWNlCisgKgorICogSXQgcHJvdmlkZXMgYXBwbGljYXRpb25zIGEgcmVndWxhciBz ZWN1cml0eSBjb250ZXh0IGZvciB0aGUgZ2l2ZW4KKyAqIGRhdGFiYXNlIG9iamVjdHMuIFRo ZSBwYWlyIG9mIG9iamVjdCdzIG5hbWUgYW5kIGEgc2VjdXJpdHkgY29udGV4dAorICogYXJl IGRlc2NyaWJlZCBpbiB0aGUgc3BlY2ZpbGUuIEluIHRoZSBkZWZhdWx0LCBpdCBzaGFsbCBi ZSBzdG9yZWQKKyAqIGluIHRoZSAvZXRjL3NlbGludXgvJFBPTElDWVRZUEUvY29udGV4dHMv c2VwZ3NxbF9jb250ZXh0cyAuCisgKiAoSXQgYXNzdW1lcyBTRS1Qb3N0Z3JlU1FMIGluIHRo ZSBkZWZhdWx0LiBGb3Igb3RoZXIgUkRCTVMsIHVzZSB0aGUKKyAqIFNFTEFCRUxfT1BUX1BB VEggb3B0aW9uIHRvIHNwZWNpZnkgZGlmZmVyZW50IHNwZWNmaWxlLikKKyAqCisgKiBFYWNo IGxpbmUgaGFzIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgorICogICA8b2JqZWN0IGNsYXNzPiA8 b2JqZWN0IG5hbWUvaWRlbnRpZmllcj4gPHNlY3VyaXR5IGNvbnRleHQ+CisgKgorICogRm9y IGV4YW1wbGU6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKiAjCisgKiAjIEl0IGlzIGFuIGV4YW1wbGUgc3BlY2ZpbGUgZm9yIGRhdGFiYXNlIG9i ZWpjdHMKKyAqICMKKyAqIGRiX2RhdGFiYXNlICB0ZW1wbGF0ZTEgICAgICAgICAgIHN5c3Rl bV91Om9iamVjdF9yOnNlcGdzcWxfZGJfdDpzMAorICoKKyAqIGRiX3NjaGVtYSAgICAqLnBn X2NhdGFsb2cgICAgICAgIHN5c3RlbV91Om9iamVjdF9yOnNlcGdzcWxfc3lzX3NjaGVtYV90 OnMwCisgKgorICogZGJfdGFibGUgICAgICoucGdfY2F0YWxvZy4qCSAgICBzeXN0ZW1fdTpv YmplY3RfcjpzZXBnc3FsX3N5c29ial90OnMwCisgKiBkYl9jb2x1bW4gICAgKi5wZ19jYXRh bG9nLiouKiAgICBzeXN0ZW1fdTpvYmplY3RfcjpzZXBnc3FsX3N5c29ial90OnMwCisgKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogQWxsIHRo ZSBjaGFyYWN0ZXJzIGFmdGVyIHRoZSAnIycgYXJlIGRlYWx0IGFzIGNvbW1lbnRzLgorICoK KyAqIFRoZSBmaXJzdCB0b2tlbiBpcyBvYmplY3QgY2xhc3MuIFNFTEFCRUxfREJfKiBkZWNs YXJlZCBpbiBsYWJlbC5oIGFyZQorICogY29ycmVzcG9uZGluZyB0byBhIGNlcnRhaW4gZGF0 YWJhc2Ugb2JqZWN0LgorICoKKyAqIFRoZSBvYmplY3QgbmFtZS9pZGVudGlmaWVyIGlzIGNv bXBhcmVkIHRvIHRoZSBnaXZlbiBrZXkuCisgKiBBIGRhdGFiYXNlIG9iamVjdCBjYW4gaGF2 ZSBpdHMgb3duIG5hbWVzcGFjZSBoaWVyYXJjaHkuCisgKiBJbiB0aGUgY2FzZSBvZiBTRS1Q Z1NRTCwgZGF0YWJhc2UgaXMgdGhlIHRvcCBsZXZlbCBvYmplY3QsIGFuZCBzY2hlbWEKKyAq IGlzIGRlcGxveWVkIGp1c3QgdW5kZXIgYSBkYXRhYmFzZS4gQSBzY2hlbWEgY2FuIGNvbnRh aW5zIHZhcmlvdXMga2luZAorICogb2Ygb2JqZWN0cywgc3VjaCBhcyB0YWJsZXMsIHByb2Nl ZHVyZXMgYW5kIHNvIG9uLgorICogVGh1cywgd2hlbiB3ZSBsb29rdXAgYW4gZXhwZWN0ZWQg c2VjdXJpdHkgY29udGV4dCBmb3IgYSB0YWJsZSBvZgorICogInBnX2NsYXNzIiwgaXQgaXMg bmVjZXNzYXJ5IHRvIGFzc3VtZSBzZWxhYmVsX2xvb2t1cCgpIGlzIGNhbGxlZCB3aXRoCisg KiAicG9zdGdyZXMucGdfY2F0YWxvZy5wZ19jbGFzcyIsIG5vdCBqdXN0IGEgInBnX2NsYXNz Ii4KKyAqCisgKiBXaWxkY2FyZHMgKCcqJyBvciAnPycpIGFyZSBhdmFpbGFibGUgb24gdGhl IHBhdHRlcm5zLCBzbyBpZiB5b3Ugd2FudAorICogdG8gbWF0Y2ggYSB0YWJsZSB3aXRoaW4g YW55IHNjaGVtYSwgeW91IHNob3VsZCBzZXQgJyonIG9uIHRoZSB1cHBlcgorICogbmFtZXNw YWNlcyBvZiB0aGUgdGFibGUuCisgKgorICogVGhlIHN0cnVjdHVyZSBvZiBuYW1lc3BhY2Ug ZGVwZW5kcyBvbiBSREJNUy4KKyAqIEZvciBleGFtcGxlLCBUcnVzdGVkLVJVQklYIGhhcyBh biBpZGVhIG9mICJjYXRhbG9nIiB3aGljaCBwZXJmb3JtcworICogYXMgYSBuYW1lc3BhY2Ug YmV0d2VlbiBhIGRhdGFiYXNlIGFuZCBpbmRpdmlkdWFsIHNjaGVtYXMuIEluIHRoaXMKKyAq IGNhc2UsIGEgdGFibGUgaGFzIHVwcGVyIHRocmVlIGxheWVycy4KKyAqLworCisvKgorICog c3BlY190IDogSXQgaG9sZHMgYSBwYWlyIG9mIGEga2V5IGFuZCBhbiBleHBlY3RlZCBzZWN1 cml0eSBjb250ZXh0CisgKi8KK3R5cGVkZWYgc3RydWN0IHNwZWMgeworCXN0cnVjdCBzZWxh YmVsX2xvb2t1cF9yZWMgbHI7CisJY2hhcgkgICAgICAgKmtleTsKKwlpbnQJCXR5cGU7CisJ aW50CQltYXRjaGVzOworfSBzcGVjX3Q7CisKKy8qCisgKiBjYXRhbG9nX3QgOiBBbiBhcnJh eSBvZiBzcGVjX3QKKyAqLwordHlwZWRlZiBzdHJ1Y3QgY2F0YWxvZyB7CisJdW5zaWduZWQg aW50CW5zcGVjOwkvKiBudW1iZXIgb2Ygc3BlY3MgaW4gdXNlICovCisJdW5zaWduZWQgaW50 CWxpbWl0OwkvKiBwaHlzaWNhbCBsaW1pdGF0aW9uIG9mIHNwZWNzW10gKi8KKwlzcGVjX3QJ CXNwZWNzWzBdOworfSBjYXRhbG9nX3Q7CisKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8g cGFyc2UgYSBsaW5lIHJlYWQgZnJvbSB0aGUgc3BlY2ZpbGUKKyAqLworc3RhdGljIGludAor cHJvY2Vzc19saW5lKGNvbnN0IGNoYXIgKnBhdGgsIGNoYXIgKmxpbmVfYnVmLCB1bnNpZ25l ZCBpbnQgbGluZV9udW0sCisJICAgICBjYXRhbG9nX3QgKmNhdGFsb2cpCit7CisJc3BlY190 CSAgICAgICAqc3BlYyA9ICZjYXRhbG9nLT5zcGVjc1tjYXRhbG9nLT5uc3BlY107CisJY2hh cgkgICAgICAgKnR5cGUsICprZXksICpjb250ZXh0LCAqdGVtcDsKKwlpbnQJCWl0ZW1zOwor CisJLyogQ3V0IG9mZiBjb21tZW50cyAqLworCXRlbXAgPSBzdHJjaHIobGluZV9idWYsICcj Jyk7CisJaWYgKHRlbXApCisJCSp0ZW1wID0gJ1wwJzsKKworCS8qCisJICogRXZlcnkgZW50 cnkgbXVzdCBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybWF0CisJICogICA8b2JqZWN0IGNsYXNz PiA8b2JqZWN0IG5hbWU+IDxzZWN1cml0eSBjb250ZXh0PgorCSAqLworCXR5cGUgPSBrZXkg PSBjb250ZXh0ID0gdGVtcCA9IE5VTEw7CisJaXRlbXMgPSBzc2NhbmYobGluZV9idWYsICIl YXMgJWFzICVhcyAlYXMiLAorCQkgICAgICAgJnR5cGUsICZrZXksICZjb250ZXh0LCAmdGVt cCk7CisJaWYgKGl0ZW1zICE9IDMpIHsKKwkJaWYgKGl0ZW1zID4gMCkKKwkJCXNlbGludXhf bG9nKFNFTElOVVhfV0FSTklORywKKwkJCQkgICAgIiVzOiAgbGluZSAlZCBoYXMgaW52YWxp ZCBmb3JtYXQsIHNraXBwZWQiLAorCQkJCSAgICBwYXRoLCBsaW5lX251bSk7CisJCWdvdG8g c2tpcDsKKwl9CisKKwkvKgorCSAqIFNldCB1cCBpbmRpdmlkdWFsIHNwZWMgZW50cnkKKwkg Ki8KKwltZW1zZXQoc3BlYywgMCwgc2l6ZW9mKHNwZWNfdCkpOworCisJaWYgKCFzdHJjbXAo dHlwZSwgImRiX2RhdGFiYXNlIikpCisJCXNwZWMtPnR5cGUgPSBTRUxBQkVMX0RCX0RBVEFC QVNFOworCWVsc2UgaWYgKCFzdHJjbXAodHlwZSwgImRiX3NjaGVtYSIpKQorCQlzcGVjLT50 eXBlID0gU0VMQUJFTF9EQl9TQ0hFTUE7CisJZWxzZSBpZiAoIXN0cmNtcCh0eXBlLCAiZGJf dGFibGUiKSkKKwkJc3BlYy0+dHlwZSA9IFNFTEFCRUxfREJfVEFCTEU7CisJZWxzZSBpZiAo IXN0cmNtcCh0eXBlLCAiZGJfY29sdW1uIikpCisJCXNwZWMtPnR5cGUgPSBTRUxBQkVMX0RC X0NPTFVNTjsKKwllbHNlIGlmICghc3RyY21wKHR5cGUsICJkYl9zZXF1ZW5jZSIpKQorCQlz cGVjLT50eXBlID0gU0VMQUJFTF9EQl9TRVFVRU5DRTsKKwllbHNlIGlmICghc3RyY21wKHR5 cGUsICJkYl92aWV3IikpCisJCXNwZWMtPnR5cGUgPSBTRUxBQkVMX0RCX1ZJRVc7CisJZWxz ZSBpZiAoIXN0cmNtcCh0eXBlLCAiZGJfcHJvY2VkdXJlIikpCisJCXNwZWMtPnR5cGUgPSBT RUxBQkVMX0RCX1BST0NFRFVSRTsKKwllbHNlIGlmICghc3RyY21wKHR5cGUsICJkYl9ibG9i IikpCisJCXNwZWMtPnR5cGUgPSBTRUxBQkVMX0RCX0JMT0I7CisJZWxzZSBpZiAoIXN0cmNt cCh0eXBlLCAiZGJfdHVwbGUiKSkKKwkJc3BlYy0+dHlwZSA9IFNFTEFCRUxfREJfVFVQTEU7 CisJZWxzZSB7CisJCXNlbGludXhfbG9nKFNFTElOVVhfV0FSTklORywKKwkJCSAgICAiJXM6 ICBsaW5lICVkIGhhcyBpbnZhbGlkIG9iamVjdCB0eXBlICVzXG4iLAorCQkJICAgIHBhdGgs IGxpbmVfbnVtLCB0eXBlKTsKKwkJZ290byBza2lwOworCX0KKworCWZyZWUodHlwZSk7CisJ c3BlYy0+a2V5ID0ga2V5OworCXNwZWMtPmxyLmN0eF9yYXcgPSBjb250ZXh0OworCisJY2F0 YWxvZy0+bnNwZWMrKzsKKworCXJldHVybiAwOworCitza2lwOgorCWZyZWUodHlwZSk7CisJ ZnJlZShrZXkpOworCWZyZWUoY29udGV4dCk7CisJZnJlZSh0ZW1wKTsKKworCXJldHVybiAw OworfQorCisvKgorICogc2VsYWJlbF9jbG9zZSgpIGhhbmRsZXIKKyAqLworc3RhdGljIHZv aWQKK2RiX2Nsb3NlKHN0cnVjdCBzZWxhYmVsX2hhbmRsZSAqcmVjKQoreworCWNhdGFsb2df dCAgICAgICpjYXRhbG9nID0gKGNhdGFsb2dfdCAqKXJlYy0+ZGF0YTsKKwlzcGVjX3QJICAg ICAgICpzcGVjOworCXVuc2lnbmVkIGludAlpOworCisJZm9yIChpID0gMDsgaSA8IGNhdGFs b2ctPm5zcGVjOyBpKyspIHsKKwkJc3BlYyA9ICZjYXRhbG9nLT5zcGVjc1tpXTsKKwkJZnJl ZShzcGVjLT5rZXkpOworCQlmcmVlKHNwZWMtPmxyLmN0eF9yYXcpOworCQlmcmVlKHNwZWMt PmxyLmN0eF90cmFucyk7CisJfQorCWZyZWUoY2F0YWxvZyk7Cit9CisKKy8qCisgKiBzZWxh YmVsX2xvb2t1cCgpIGhhbmRsZXIKKyAqLworc3RhdGljIHN0cnVjdCBzZWxhYmVsX2xvb2t1 cF9yZWMgKgorZGJfbG9va3VwKHN0cnVjdCBzZWxhYmVsX2hhbmRsZSAqcmVjLCBjb25zdCBj aGFyICprZXksIGludCB0eXBlKQoreworCWNhdGFsb2dfdCAgICAgICpjYXRhbG9nID0gKGNh dGFsb2dfdCAqKXJlYy0+ZGF0YTsKKwlzcGVjX3QJICAgICAgICpzcGVjOworCXVuc2lnbmVk IGludAlpOworCisJZm9yIChpID0gMDsgaSA8IGNhdGFsb2ctPm5zcGVjOyBpKyspIHsKKwkJ c3BlYyA9ICZjYXRhbG9nLT5zcGVjc1tpXTsKKworCQlpZiAoc3BlYy0+dHlwZSAhPSB0eXBl KQorCQkJY29udGludWU7CisJCWlmICghZm5tYXRjaChzcGVjLT5rZXksIGtleSwgMCkpIHsK KwkJCXNwZWMtPm1hdGNoZXMrKzsKKworCQkJcmV0dXJuICZzcGVjLT5scjsKKwkJfQorCX0K KworCS8qIE5vIGZvdW5kICovCisJZXJybm8gPSBFTk9FTlQ7CisJcmV0dXJuIE5VTEw7Cit9 CisKKy8qCisgKiBzZWxhYmVsX3N0YXRzKCkgaGFuZGxlcgorICovCitzdGF0aWMgdm9pZAor ZGJfc3RhdHMoc3RydWN0IHNlbGFiZWxfaGFuZGxlICpyZWMpCit7CisJY2F0YWxvZ190ICAg ICAgKmNhdGFsb2cgPSAoY2F0YWxvZ190ICopcmVjLT5kYXRhOworCXVuc2lnbmVkIGludAlp LCB0b3RhbCA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgY2F0YWxvZy0+bnNwZWM7IGkrKykK KwkJdG90YWwgKz0gY2F0YWxvZy0+c3BlY3NbaV0ubWF0Y2hlczsKKworCXNlbGludXhfbG9n KFNFTElOVVhfSU5GTywgIiV1IGVudHJpZXMsICV1IG1hdGNoZXMgbWFkZVxuIiwKKwkJICAg IGNhdGFsb2ctPm5zcGVjLCB0b3RhbCk7Cit9CisKKy8qCisgKiBzZWxhYmVsX29wZW4oKSBo YW5kbGVyCisgKi8KK3N0YXRpYyBjYXRhbG9nX3QgKgorZGJfaW5pdChzdHJ1Y3Qgc2VsaW51 eF9vcHQgKm9wdHMsIHVuc2lnbmVkIG5vcHRzKQoreworCWNhdGFsb2dfdCAgICAgICpjYXRh bG9nOworCUZJTEUJICAgICAgICpmaWxwOworCWNvbnN0IGNoYXIgICAgICpwYXRoID0gTlVM TDsKKwljaGFyCSAgICAgICAqbGluZV9idWYgPSBOVUxMOworCXNpemVfdAkJbGluZV9sZW4g PSAwOworCXVuc2lnbmVkIGludAlsaW5lX251bSA9IDA7CisJdW5zaWduZWQgaW50CWk7CisK KwkvKgorCSAqIEluaXRpYWxpemUgY2F0YWxvZyBkYXRhIHN0cnVjdHVyZQorCSAqLworCWNh dGFsb2cgPSBtYWxsb2Moc2l6ZW9mKGNhdGFsb2dfdCkgKyAzMiAqIHNpemVvZihzcGVjX3Qp KTsKKwlpZiAoIWNhdGFsb2cpCisJCXJldHVybiBOVUxMOworCWNhdGFsb2ctPmxpbWl0ID0g MzI7CisJY2F0YWxvZy0+bnNwZWMgPSAwOworCisJLyoKKwkgKiBQcm9jZXNzIGFyZ3VtZW50 cworCSAqCisJICogU0VMQUJFTF9PUFRfUEFUSDoKKwkgKiAgIEl0IGFsbG93cyB0byBzcGVj aWZ5IGFuIGFsdGVybmF0aXZlIHNwZWNpZmljYXRpb24gZmlsZSBpbnN0ZWFkIG9mCisJICog ICB0aGUgZGVmYXVsdCBvbmUuIElmIFJEQk1TIGlzIG5vdCBTRS1Qb3N0Z3JlU1FMLCBpdCBt YXkgbmVlZCB0bworCSAqICAgc3BlY2lmeSBhbiBleHBsaWNpdCBzcGVjZmlsZSBmb3IgZGF0 YWJhc2Ugb2JqZWN0cy4KKwkgKi8KKwl3aGlsZSAobm9wdHMtLSkgeworCQlzd2l0Y2ggKG9w dHNbbm9wdHNdLnR5cGUpIHsKKwkJY2FzZSBTRUxBQkVMX09QVF9QQVRIOgorCQkJcGF0aCA9 IG9wdHNbbm9wdHNdLnZhbHVlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwkvKgorCSAqIE9w ZW4gdGhlIHNwZWNpZmljYXRpb24gZmlsZQorCSAqLworCWlmICghcGF0aCkKKwkJcGF0aCA9 IHNlbGludXhfc2VwZ3NxbF9jb250ZXh0X3BhdGgoKTsKKworCWlmICgoZmlscCA9IGZvcGVu KHBhdGgsICJyYiIpKSA9PSBOVUxMKSB7CisJCWZyZWUoY2F0YWxvZyk7CisJCXJldHVybiBO VUxMOworCX0KKworCS8qCisJICogUGFyc2UgZm9yIGVhY2ggbGluZXMKKwkgKi8KKwl3aGls ZSAoZ2V0bGluZSgmbGluZV9idWYsICZsaW5lX2xlbiwgZmlscCkgPiAwKSB7CisJCS8qCisJ CSAqIEV4cGFuZCBjYXRhbG9nIGFycmF5LCBpZiBuZWNlc3NhcnkKKwkJICovCisJCWlmIChj YXRhbG9nLT5saW1pdCA9PSBjYXRhbG9nLT5uc3BlYykgeworCQkJc2l6ZV90CQlsZW5ndGg7 CisJCQl1bnNpZ25lZCBpbnQJbmV3X2xpbWl0ID0gMiAqIGNhdGFsb2ctPmxpbWl0OworCQkJ Y2F0YWxvZ190ICAgICAgKm5ld19jYXRhbG9nOworCisJCQlsZW5ndGggPSBzaXplb2YoY2F0 YWxvZ190KQorCQkJCSsgbmV3X2xpbWl0ICogc2l6ZW9mKHNwZWNfdCk7CisJCQluZXdfY2F0 YWxvZyA9IHJlYWxsb2MoY2F0YWxvZywgbGVuZ3RoKTsKKwkJCWlmICghbmV3X2NhdGFsb2cp CisJCQkJZ290byBvdXRfZXJyb3I7CisKKwkJCWNhdGFsb2cgPSBuZXdfY2F0YWxvZzsKKwkJ CWNhdGFsb2ctPmxpbWl0ID0gbmV3X2xpbWl0OworCQl9CisKKwkJLyoKKwkJICogUGFyc2Ug YSBsaW5lCisJCSAqLworCQlpZiAocHJvY2Vzc19saW5lKHBhdGgsIGxpbmVfYnVmLCArK2xp bmVfbnVtLCBjYXRhbG9nKSA8IDApCisJCQlnb3RvIG91dF9lcnJvcjsKKwl9CisJZnJlZShs aW5lX2J1Zik7CisKKwlmY2xvc2UoZmlscCk7CisKKwlyZXR1cm4gY2F0YWxvZzsKKworb3V0 X2Vycm9yOgorCWZvciAoaSA9IDA7IGkgPCBjYXRhbG9nLT5uc3BlYzsgaSsrKSB7CisJCXNw ZWNfdAkgICAgICAgKnNwZWMgPSAmY2F0YWxvZy0+c3BlY3NbaV07CisKKwkJZnJlZShzcGVj LT5rZXkpOworCQlmcmVlKHNwZWMtPmxyLmN0eF9yYXcpOworCQlmcmVlKHNwZWMtPmxyLmN0 eF90cmFucyk7CisJfQorCWZyZWUoY2F0YWxvZyk7CisKKwlyZXR1cm4gTlVMTDsKK30KKwor LyoKKyAqIEluaXRpYWxpemUgc2VsYWJlbF9oYW5kbGUgYW5kIGxvYWQgdGhlIGVudHJpZXMg b2Ygc3BlY2ZpbGUKKyAqLworaW50IHNlbGFiZWxfZGJfaW5pdChzdHJ1Y3Qgc2VsYWJlbF9o YW5kbGUgKnJlYywKKwkJICAgIHN0cnVjdCBzZWxpbnV4X29wdCAqb3B0cywgdW5zaWduZWQg bm9wdHMpCit7CisJcmVjLT5mdW5jX2Nsb3NlID0gJmRiX2Nsb3NlOworCXJlYy0+ZnVuY19s b29rdXAgPSAmZGJfbG9va3VwOworCXJlYy0+ZnVuY19zdGF0cyA9ICZkYl9zdGF0czsKKwly ZWMtPmRhdGEgPSBkYl9pbml0KG9wdHMsIG5vcHRzKTsKKworCXJldHVybiAhcmVjLT5kYXRh ID8gLTEgOiAwOworfQpkaWZmIC0tZ2l0IGEvbGlic2VsaW51eC9zcmMvbGFiZWxfaW50ZXJu YWwuaCBiL2xpYnNlbGludXgvc3JjL2xhYmVsX2ludGVybmFsLmgKaW5kZXggMjdhMWYwNi4u OTlhZjkzZSAxMDA2NDQKLS0tIGEvbGlic2VsaW51eC9zcmMvbGFiZWxfaW50ZXJuYWwuaAor KysgYi9saWJzZWxpbnV4L3NyYy9sYWJlbF9pbnRlcm5hbC5oCkBAIC0yMyw2ICsyMyw4IEBA IGludCBzZWxhYmVsX21lZGlhX2luaXQoc3RydWN0IHNlbGFiZWxfaGFuZGxlICpyZWMsIHN0 cnVjdCBzZWxpbnV4X29wdCAqb3B0cywKIAkJICAgICAgdW5zaWduZWQgbm9wdHMpIGhpZGRl bjsKIGludCBzZWxhYmVsX3hfaW5pdChzdHJ1Y3Qgc2VsYWJlbF9oYW5kbGUgKnJlYywgc3Ry dWN0IHNlbGludXhfb3B0ICpvcHRzLAogCQkgICB1bnNpZ25lZCBub3B0cykgaGlkZGVuOwor aW50IHNlbGFiZWxfZGJfaW5pdChzdHJ1Y3Qgc2VsYWJlbF9oYW5kbGUgKnJlYywKKwkJICAg IHN0cnVjdCBzZWxpbnV4X29wdCAqb3B0cywgdW5zaWduZWQgbm9wdHMpIGhpZGRlbjsKIAog LyoKICAqIExhYmVsaW5nIGludGVybmFsIHN0cnVjdHVyZXMKZGlmZiAtLWdpdCBhL2xpYnNl bGludXgvc3JjL3NlbGludXhfY29uZmlnLmMgYi9saWJzZWxpbnV4L3NyYy9zZWxpbnV4X2Nv bmZpZy5jCmluZGV4IDdlNTg4Y2MuLmUwNDA5NTkgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgv c3JjL3NlbGludXhfY29uZmlnLmMKKysrIGIvbGlic2VsaW51eC9zcmMvc2VsaW51eF9jb25m aWcuYwpAQCAtNDQsNyArNDQsOCBAQAogI2RlZmluZSBWSVJUVUFMX0RPTUFJTiAgICAyMQog I2RlZmluZSBWSVJUVUFMX0lNQUdFICAgICAyMgogI2RlZmluZSBGSUxFX0NPTlRFWFRfU1VC UyAyMwotI2RlZmluZSBORUwgICAgICAgICAgICAgICAyNAorI2RlZmluZSBTRVBHU1FMX0NP TlRFWFRTICAyNAorI2RlZmluZSBORUwgICAgICAgICAgICAgICAyNQogCiAvKiBQYXJ0IG9m IG9uZS10aW1lIGxhenkgaW5pdCAqLwogc3RhdGljIHB0aHJlYWRfb25jZV90IG9uY2UgPSBQ VEhSRUFEX09OQ0VfSU5JVDsKQEAgLTQyMiwzICs0MjMsOSBAQCBjb25zdCBjaGFyICogc2Vs aW51eF9maWxlX2NvbnRleHRfc3Vic19wYXRoKHZvaWQpIHsKIAogaGlkZGVuX2RlZihzZWxp bnV4X2ZpbGVfY29udGV4dF9zdWJzX3BhdGgpCiAKK2NvbnN0IGNoYXIgKnNlbGludXhfc2Vw Z3NxbF9jb250ZXh0X3BhdGgoKQoreworCXJldHVybiBnZXRfcGF0aChTRVBHU1FMX0NPTlRF WFRTKTsKK30KKworaGlkZGVuX2RlZihzZWxpbnV4X3NlcGdzcWxfY29udGV4dF9wYXRoKQpk aWZmIC0tZ2l0IGEvbGlic2VsaW51eC9zcmMvc2VsaW51eF9pbnRlcm5hbC5oIGIvbGlic2Vs aW51eC9zcmMvc2VsaW51eF9pbnRlcm5hbC5oCmluZGV4IDg4YjZiZDYuLjI0ZWYyMWEgMTAw NjQ0Ci0tLSBhL2xpYnNlbGludXgvc3JjL3NlbGludXhfaW50ZXJuYWwuaAorKysgYi9saWJz ZWxpbnV4L3NyYy9zZWxpbnV4X2ludGVybmFsLmgKQEAgLTczLDYgKzczLDcgQEAgaGlkZGVu X3Byb3RvKHNlbGludXhfbWtsb2FkX3BvbGljeSkKICAgICBoaWRkZW5fcHJvdG8oc2VsaW51 eF9jdXN0b21pemFibGVfdHlwZXNfcGF0aCkKICAgICBoaWRkZW5fcHJvdG8oc2VsaW51eF9t ZWRpYV9jb250ZXh0X3BhdGgpCiAgICAgaGlkZGVuX3Byb3RvKHNlbGludXhfeF9jb250ZXh0 X3BhdGgpCisgICAgaGlkZGVuX3Byb3RvKHNlbGludXhfc2VwZ3NxbF9jb250ZXh0X3BhdGgp CiAgICAgaGlkZGVuX3Byb3RvKHNlbGludXhfcGF0aCkKICAgICBoaWRkZW5fcHJvdG8oc2Vs aW51eF9jaGVja19wYXNzd2RfYWNjZXNzKQogICAgIGhpZGRlbl9wcm90byhzZWxpbnV4X2No ZWNrX3NlY3VyZXR0eV9jb250ZXh0KQo= --------------010708070409040601060202-- -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message.