From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from goalie.tycho.ncsc.mil (goalie [144.51.3.250]) by tarius.tycho.ncsc.mil (8.13.1/8.13.1) with ESMTP id p0R12vfA029146 for ; Wed, 26 Jan 2011 20:02:57 -0500 Received: from tyo201.gate.nec.co.jp (localhost [127.0.0.1]) by msux-gh1-uea02.nsa.gov (8.12.10/8.12.10) with ESMTP id p0R12r0A022758 for ; Thu, 27 Jan 2011 01:02:55 GMT Message-ID: <4D40C42A.2080903@ak.jp.nec.com> Date: Thu, 27 Jan 2011 10:02:34 +0900 From: KaiGai Kohei MIME-Version: 1.0 To: SELinux-NSA CC: Kohei KaiGai Subject: Re: libselinux: add selinux_status_* interfaces for /selinux/status References: In-Reply-To: Content-Type: multipart/mixed; boundary="------------060900030409030904090400" Sender: owner-selinux@tycho.nsa.gov List-Id: selinux@tycho.nsa.gov This is a multi-part message in MIME format. --------------060900030409030904090400 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit I updated my patch to reference /selinux/status entry. The interface of selinux_status_open() and selinux_status_updated() was revised to eliminate an argument of 'last_seqlock' that holds a sequence value when we call this function last time. At first, I tried to give this storage externally for thread-safing, but fallback routine was not thread-safe anyway, so it became nonsense. The attached status.c is an example program to call these APIs. Any comments please. Thanks, (2011/01/22 22:42), Kohei KaiGai wrote: > The attached patch adds several interfaces to reference /selinux/status > according to sequential-lock logic. > > selinux_status_open() open the kernel status page and mmap it with > read-only mode, or open netlink socket as a fallback in older kernels. > > Then, we can obtain status information from the mmap'ed page using > selinux_status_updated(), selinux_status_getenfoce(), > selinux_status_policyload() or selinux_status_deny_unknown(). > > It enables to help to implement userspace avc with heavy access control > decision; that we cannot ignore the cost to communicate with kernel for > validation of userspace caches. > > Thanks, -- KaiGai Kohei --------------060900030409030904090400 Content-Type: application/octect-stream; name="libselinux-status.2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="libselinux-status.2.patch" IGxpYnNlbGludXgvaW5jbHVkZS9zZWxpbnV4L2F2Yy5oICAgICAgICAgICAgICAgICAgfCAg IDM2ICsrKwogbGlic2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4X3N0YXR1c19jbG9zZS4zICAg ICAgICB8ICAgIDEgKwogbGlic2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4X3N0YXR1c19kZW55 X3Vua25vd24uMyB8ICAgIDEgKwogbGlic2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4X3N0YXR1 c19nZXRlbmZvcmNlLjMgICB8ICAgIDEgKwogbGlic2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4 X3N0YXR1c19vcGVuLjMgICAgICAgICB8ICAgOTYgKysrKysrCiBsaWJzZWxpbnV4L21hbi9t YW4zL3NlbGludXhfc3RhdHVzX3BvbGljeWxvYWQuMyAgIHwgICAgMSArCiBsaWJzZWxpbnV4 L21hbi9tYW4zL3NlbGludXhfc3RhdHVzX3VwZGF0ZWQuMyAgICAgIHwgICAgMSArCiBsaWJz ZWxpbnV4L3NyYy9zZXN0YXR1cy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDM0MCAr KysrKysrKysrKysrKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgNDc3IGluc2VydGlvbnMo KyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlic2VsaW51eC9pbmNsdWRlL3Nl bGludXgvYXZjLmggYi9saWJzZWxpbnV4L2luY2x1ZGUvc2VsaW51eC9hdmMuaAppbmRleCAz N2RkMjc5Li5kYTE4ZTQxIDEwMDY0NAotLS0gYS9saWJzZWxpbnV4L2luY2x1ZGUvc2VsaW51 eC9hdmMuaAorKysgYi9saWJzZWxpbnV4L2luY2x1ZGUvc2VsaW51eC9hdmMuaApAQCAtNDY1 LDYgKzQ2NSw0MiBAQCB2b2lkIGF2Y19uZXRsaW5rX3JlbGVhc2VfZmQodm9pZCk7CiAgKi8K IGludCBhdmNfbmV0bGlua19jaGVja19uYih2b2lkKTsKIAorLyoqCisgKiBzZWxpbnV4X3N0 YXR1c19vcGVuIC0gT3BlbiBhbmQgbWFwIFNFTGludXgga2VybmVsIHN0YXR1cyBwYWdlCisg KgorICovCitpbnQgc2VsaW51eF9zdGF0dXNfb3BlbihpbnQgZmFsbGJhY2spOworCisvKioK KyAqIHNlbGludXhfc3RhdHVzX2Nsb3NlIC0gVW5tYXAgYW5kIGNsb3NlIFNFTGludXgga2Vy bmVsIHN0YXR1cyBwYWdlCisgKgorICovCit2b2lkIHNlbGludXhfc3RhdHVzX2Nsb3NlKHZv aWQpOworCisvKioKKyAqIHNlbGludXhfc3RhdHVzX3VwZGF0ZWQgLSBJbmZvcm0gdXMgd2hl dGhlciB0aGUga2VybmVsIHN0YXR1cyBoYXMgYmVlbiB1cGRhdGVkCisgKgorICovCitpbnQg c2VsaW51eF9zdGF0dXNfdXBkYXRlZCh2b2lkKTsKKworLyoqCisgKiBzZWxpbnV4X3N0YXR1 c19nZXRlbmZvcmNlIC0gR2V0IHRoZSBlbmZvcmNlIGZsYWcgdmFsdWUKKyAqCisgKi8KK2lu dCBzZWxpbnV4X3N0YXR1c19nZXRlbmZvcmNlKHZvaWQpOworCisvKioKKyAqIHNlbGludXhf c3RhdHVzX3BvbGljeWxvYWQgLSBHZXQgdGhlIG51bWJlciBvZiBwb2xpY3kgcmVsb2FkZWQK KyAqCisgKi8KK2ludCBzZWxpbnV4X3N0YXR1c19wb2xpY3lsb2FkKHZvaWQpOworCisvKioK KyAqIHNlbGludXhfc3RhdHVzX2RlbnlfdW5rbm93biAtIEdldCB0aGUgIGJlaGF2aW9yIGZv ciB1bmRlZmluZWQgY2xhc3Nlcy9wZXJtaXNzaW9ucworICoKKyAqLworaW50IHNlbGludXhf c3RhdHVzX2RlbnlfdW5rbm93bih2b2lkKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAj ZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnNlbGludXgvbWFuL21hbjMvc2VsaW51eF9zdGF0dXNf Y2xvc2UuMyBiL2xpYnNlbGludXgvbWFuL21hbjMvc2VsaW51eF9zdGF0dXNfY2xvc2UuMwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmE0MTY5Ci0tLSAvZGV2L251 bGwKKysrIGIvbGlic2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4X3N0YXR1c19jbG9zZS4zCkBA IC0wLDAgKzEgQEAKKy5zbyBtYW4zL3NlbGludXhfc3RhdHVzX29wZW4uMwpkaWZmIC0tZ2l0 IGEvbGlic2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4X3N0YXR1c19kZW55X3Vua25vd24uMyBi L2xpYnNlbGludXgvbWFuL21hbjMvc2VsaW51eF9zdGF0dXNfZGVueV91bmtub3duLjMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJhNDE2OQotLS0gL2Rldi9udWxs CisrKyBiL2xpYnNlbGludXgvbWFuL21hbjMvc2VsaW51eF9zdGF0dXNfZGVueV91bmtub3du LjMKQEAgLTAsMCArMSBAQAorLnNvIG1hbjMvc2VsaW51eF9zdGF0dXNfb3Blbi4zCmRpZmYg LS1naXQgYS9saWJzZWxpbnV4L21hbi9tYW4zL3NlbGludXhfc3RhdHVzX2dldGVuZm9yY2Uu MyBiL2xpYnNlbGludXgvbWFuL21hbjMvc2VsaW51eF9zdGF0dXNfZ2V0ZW5mb3JjZS4zCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyYTQxNjkKLS0tIC9kZXYvbnVs bAorKysgYi9saWJzZWxpbnV4L21hbi9tYW4zL3NlbGludXhfc3RhdHVzX2dldGVuZm9yY2Uu MwpAQCAtMCwwICsxIEBACisuc28gbWFuMy9zZWxpbnV4X3N0YXR1c19vcGVuLjMKZGlmZiAt LWdpdCBhL2xpYnNlbGludXgvbWFuL21hbjMvc2VsaW51eF9zdGF0dXNfb3Blbi4zIGIvbGli c2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4X3N0YXR1c19vcGVuLjMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZTg5NzkzOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnNl bGludXgvbWFuL21hbjMvc2VsaW51eF9zdGF0dXNfb3Blbi4zCkBAIC0wLDAgKzEsOTYgQEAK Ky5USCAic2VsaW51eF9zdGF0dXNfb3BlbiIgIjMiICIyMiBKYW51YXJ5IDIwMTEiICJrYWln YWlAYWsuanAubmVjLmNvbSIgIlNFTGludXggQVBJIGRvY3VtZW50YXRpb24iCisuU0ggIk5B TUUiCitzZWxpbnV4X3N0YXR1c19vcGVuLCBzZWxpbnV4X3N0YXR1c19jbG9zZSwgc2VsaW51 eF9zdGF0dXNfdXBkYXRlZCwKK3NlbGludXhfc3RhdHVzX2dldGVuZm9yY2UsIHNlbGludXhf c3RhdHVzX3BvbGljeWxvYWQgYW5kCitzZWxpbnV4X3N0YXR1c19kZW55X3Vua25vd24gXC0g cmVmZXJlbmNlIHRoZSBTRUxpbnV4IGtlcm5lbCBzdGF0dXMKK3dpdGhvdXQgaW52b2NhdGlv biBvZiBzeXN0ZW0gY2FsbHMuCisuU0ggIlNZTk9QU0lTIgorLkIgI2luY2x1ZGUgPHNlbGlu dXgvYXZjLmg+Cisuc3AKKy5CSSAiaW50IHNlbGludXhfc3RhdHVzX29wZW4oaW50ICIgZmFs bGJhY2ssICIpOyIKKy5zcAorLkJJICJ2b2lkIHNlbGludXhfc3RhdHVzX2Nsb3NlKHZvaWQp OyIKKy5zcAorLkJJICJpbnQgc2VsaW51eF9zdGF0dXNfdXBkYXRlZCh2b2lkKTsiCisuc3AK Ky5CSSAiaW50IHNlbGludXhfc3RhdHVzX2dldGVuZm9yY2Uodm9pZCk7IgorLnNwCisuQkkg ImludCBzZWxpbnV4X3N0YXR1c19wb2xpY3lsb2FkKHZvaWQpOyIKKy5zcAorLkJJICJpbnQg c2VsaW51eF9zdGF0dXNfZGVueV91bmtub3duKHZvaWQpOyIKKy5zcAorLlNIICJERVNDUklQ VElPTiIKK0xpbnV4IDIuNi4zNyBvciBsYXRlciBwcm92aWRlcyBhIFNFTGludXgga2VybmVs IHN0YXR1cyBwYWdlOyBiZWluZyBtb3N0bHkKK3BsYWNlZCBvbgorLkkgL3NlbGludXgvc3Rh dHVzCitlbnRyeS4gSXQgZW5hYmxlcyB1c2Vyc3BhY2UgYXBwbGljYXRpb25zIHRvIG1tYXAg dGhpcyBwYWdlIHdpdGggcmVhZC1vbmx5Cittb2RlLCB0aGVuIGl0IGluZm9ybXMgc29tZSBz dGF0dXMgd2l0aG91dCBzeXN0ZW0gY2FsbCBpbnZvY2F0aW9ucy4KKy5zcAorSW4gc29tZSBj YXNlcyB0aGF0IGEgdXNlcnNwYWNlIGFwcGxpY2F0aW9uIHRyaWVzIHRvIGFwcGx5IGhlYXZ5 IGZyZXF1ZXN0CithY2Nlc3MgY29udHJvbDsgc3VjaCBhcyByb3dcLWxldmVsIHNlY3VyaXR5 IGluIGRhdGFiYXNlcywgaXQgd2lsbCBmYWNlCit1bmlnbm9yYWJsZSBjb3N0IHRvIGNvbW11 bmljYXRlIHdpdGgga2VybmVsIHNwYWNlIHRvIGNoZWNrIGludmFsaWRhdGlvbgorb2YgdXNl cnNwYWNlIGF2Yy4KKy5zcAorVGhlc2UgZnVuY3Rpb25zIHByb3ZpZGVzIGFwcGxpY2F0aW9u cyBhIHdheSB0byBrbm93IHNvbWUga2VybmVsIGV2ZW50cword2l0aG91dCBzeXN0ZW1cLWNh bGwgaW52b2NhdGlvbiBvciB3b3JrZXIgdGhyZWFkIGZvciBtb25pdG9yaW5nLgorLnNwCisu QlIgc2VsaW51eF9zdGF0dXNfb3BlbgordHJpZXMgdG8KKy5CUiBvcGVuICgyKQorLkkgL3Nl bGludXgvc3RhdHVzCithbmQKKy5CUiBtbWFwICgyKQoraXQgaW4gcmVhZC1vbmx5IG1vZGUu IFRoZSBmaWxlLWRlc2NyaXB0b3IgYW5kIHBvaW50ZXIgdG8gdGhlIHBhZ2Ugc2hhbGwKK2Jl IHN0b3JlZCBpbnRlcm5hbGx5OyBEb24ndCB0b3VjaCB0aGVtIGRpcmVjdGx5LgorU2V0IDEg b24gdGhlCisuSSBmYWxsYmFjaworYXJndW1lbnQgdG8gaGFuZGxlIGEgY2FzZSBvZiBvbGRl ciBrZXJuZWxzIHdpdGhvdXQga2VybmVsIHN0YXR1cyBwYWdlIHN1cHBvcnQuCitJbiB0aGlz IGNhc2UsIHRoaXMgZnVuY3Rpb24gdHJpZXMgdG8gb3BlbiBhIG5ldGxpbmsgc29ja2V0IHVz aW5nCisuQlIgYXZjX25ldGxpbmtfb3BlbiAoMykKK2FuZCBvdmVyd3JpdGUgY29ycmVzcG9u ZGluZyBjYWxsYmFja3MgKCBzZXRlbmZvcmNlIGFuZCBwb2xpY3lsb2FkKS4KK1RodXMsIHdl IG5lZWQgdG8gcGF5IGF0dGVudGlvbiB0byB0aGUgaW50ZXJhY3Rpb24gd2l0aCB0aGVzZSBp bnRlcmZhY2VzLAord2hlbiBmYWxsYmFjayBtb2RlIGlzIGVuYWJsZWQuCisuc3AKKy5CUiBz ZWxpbnV4X3N0YXR1c19jbG9zZQordW5tYXAgdGhlIGtlcm5lbCBzdGF0dXMgcGFnZSBhbmQg Y2xvc2UgaXRzIGZpbGUgZGVzY3JpcHRvciwgb3IgY2xvc2UgdGhlCituZXRsaW5rIHNvY2tl dCBpZiBmYWxsYmFja2VkLgorLnNwCisuQlIgc2VsaW51eF9zdGF0dXNfdXBkYXRlZAoraW5m b3JtcyB1cyB3aGV0aGVyIHNvbWV0aGluZyBoYXMgYmVlbiB1cGRhdGVkIHNpbmNlIHRoZSBs YXN0IGNhbGwuCitJdCByZXR1cm5zIDAgaWYgbm90aGluZyB3YXMgaGFwcGVuZWQsIGhvd2V2 ZXIsIDEgaWYgc29tZXRoaW5nIGhhcyBiZWVuCit1cGRhdGVkIGluIHRoaXMgZHVyYXRpb24s IG9yIC0xIG9uIGVycm9yLgorLnNwCisuQlIgc2VsaW51eF9zdGF0dXNfZ2V0ZW5mb3JjZQor cmV0dXJucyAwIGlmIFNFTGludXggaXMgcnVubmluZyBpbiBwZXJtaXNzaXZlIG1vZGUsIDEg aWYgZW5mb3JjaW5nIG1vZGUsCitvciAtMSBvbiBlcnJvci4KK1NhbWUgYXMKKy5CUiBzZWN1 cml0eV9nZXRlbmZvcmNlICgzKQorZXhjZXB0IHdpdGggb3Igd2l0aG91dCBzeXN0ZW0gY2Fs bCBpbnZvY2F0aW9uLgorLnNwCisuQlIgc2VsaW51eF9zdGF0dXNfcG9saWN5bG9hZAorcmV0 dXJucyB0aW1lcyBvZiBwb2xpY3kgcmVsb2FkZWQgb24gdGhlIHJ1bm5pbmcgc3lzdGVtLCBv ciAtMSBvbiBlcnJvci4KK05vdGUgdGhhdCBpdCBpcyBub3QgYSByZWxpYWJsZSB2YWx1ZSBv biBmYWxsYmFjay1tb2RlIHVudGlsIGl0IHJlY2VpdmUKK3RoZSBmaXJzdCBldmVudCBtZXNz YWdlIHZpYSBuZXRsaW5rIHNvY2tldC4KK1RodXMsIGRvbid0IHVzZSB0aGlzIHZhbHVlIHRv IGtub3cgYWN0dWFsIHRpbWVzIG9mIHBvbGljeSByZWxvYWRlZC4KKy5zcAorLkJSIHNlbGlu dXhfc3RhdHVzX2RlbnlfdW5rbm93bgorcmV0dXJucyAwIGlmIFNFTGludXggdHJlYXRzIHBv bGljeSBxdWVyaWVzIG9uIHVuZGVmaW5lZCBvYmplY3QgY2xhc3NlcyBvcgorcGVybWlzc2lv bnMgYXMgYmVpbmcgYWxsb3dlZCwgMSBpZiBzdWNoIHF1ZXJpZXMgYXJlIGRlbmllZCwgb3Ig LTEgb24gZXJyb3IuCisuc3AKK0Fsc28gbm90ZSB0aGF0IHRoZXNlIGludGVyZmFjZXMgYXJl IG5vdCB0aHJlYWQtc2FmZSwgc28geW91IGhhdmUgdG8gcHJvdGVjdAordGhlbSBmcm9tIGNv bmN1cnJlbnQgY2FsbHMgdXNpbmcgZXhjbHVzaXZlIGxvY2tzIHdoZW4gbXVsdGlwbGUgdGhy ZWFkcyBhcmUKK3BlcmZvcm1pbmcuCisuU0ggIlJFVFVSTiBWQUxVRSIKKy5CUiBzZWxpbnV4 X3N0YXR1c19vcGVuCityZXR1cm5zIDAgb3IgMSBvbiBzdWNjZXNzLiAxIG1lYW5zIHdlIGFy ZSByZWFkeSB0byB1c2UgdGhlc2UgaW50ZXJmYWNlcywKK2J1dCBuZXRsaW5rIHNvY2tldCB3 YXMgb3BlbmVkIGFzIGZhbGxiYWNrIGluc3RlYWQgb2YgdGhlIGtlcm5lbCBzdGF0dXMgcGFn ZS4KK09uIGVycm9yLCAtMSBzaGFsbCBiZSByZXR1cm5lZC4KKy5zcAorQW55IG90aGVyIGZ1 bmN0aW9ucyB3aXRoIGEgcmV0dXJuIHZhbHVlIHNoYWxsIHJldHVybiBpdHMgY2hhcmFjdGVy aXN0aWMKK3ZhbHVlIGFzIGRlc2NyaWJlZCBhYm92ZSwgb3IgLTEgb24gZXJyb3JzLgorLnNw CisuU0ggIlNFRSBBTFNPIgorLkJSIG1tYXAgKDIpCisuQlIgYXZjX25ldGxpbmtfb3BlbiAo MykKKy5CUiBzZWN1cml0eV9nZXRlbmZvcmNlICgzKQorLkJSIHNlY3VyaXR5X2RlbnlfdW5r bm93biAoMykKZGlmZiAtLWdpdCBhL2xpYnNlbGludXgvbWFuL21hbjMvc2VsaW51eF9zdGF0 dXNfcG9saWN5bG9hZC4zIGIvbGlic2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4X3N0YXR1c19w b2xpY3lsb2FkLjMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJhNDE2 OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnNlbGludXgvbWFuL21hbjMvc2VsaW51eF9zdGF0 dXNfcG9saWN5bG9hZC4zCkBAIC0wLDAgKzEgQEAKKy5zbyBtYW4zL3NlbGludXhfc3RhdHVz X29wZW4uMwpkaWZmIC0tZ2l0IGEvbGlic2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4X3N0YXR1 c191cGRhdGVkLjMgYi9saWJzZWxpbnV4L21hbi9tYW4zL3NlbGludXhfc3RhdHVzX3VwZGF0 ZWQuMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmE0MTY5Ci0tLSAv ZGV2L251bGwKKysrIGIvbGlic2VsaW51eC9tYW4vbWFuMy9zZWxpbnV4X3N0YXR1c191cGRh dGVkLjMKQEAgLTAsMCArMSBAQAorLnNvIG1hbjMvc2VsaW51eF9zdGF0dXNfb3Blbi4zCmRp ZmYgLS1naXQgYS9saWJzZWxpbnV4L3NyYy9zZXN0YXR1cy5jIGIvbGlic2VsaW51eC9zcmMv c2VzdGF0dXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMGE2NDk1 Ci0tLSAvZGV2L251bGwKKysrIGIvbGlic2VsaW51eC9zcmMvc2VzdGF0dXMuYwpAQCAtMCww ICsxLDM0MCBAQAorLyoKKyAqIHNlc3RhdHVzLmMKKyAqCisgKiBBUElzIHRvIHJlZmVyZW5j ZSBTRUxpbnV4IGtlcm5lbCBzdGF0dXMgcGFnZSAoL3NlbGludXgvc3RhdHVzKQorICoKKyAq IEF1dGhvcjogS2FpR2FpIEtvaGVpIDxrYWlnYWlAYWsuanAubmVjLmNvbT4KKyAqCisgKi8K KyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHNj aGVkLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgor I2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUg ImF2Y19pbnRlcm5hbC5oIgorI2luY2x1ZGUgInBvbGljeS5oIgorCisvKgorICogY29waWVk IGZyb20gdGhlIHNlbGludXgvaW5jbHVkZS9zZWN1cml0eS5oCisgKi8KK3N0cnVjdCBzZWxp bnV4X3N0YXR1c190Cit7CisJdWludDMyX3QJdmVyc2lvbjsJLyogdmVyc2lvbiBudW1iZXIg b2YgdGhpZSBzdHJ1Y3R1cmUgKi8KKwl1aW50MzJfdAlzZXF1ZW5jZTsJLyogc2VxdWVuY2Ug bnVtYmVyIG9mIHNlcWxvY2sgbG9naWMgKi8KKwl1aW50MzJfdAllbmZvcmNpbmc7CS8qIGN1 cnJlbnQgc2V0dGluZyBvZiBlbmZvcmNpbmcgbW9kZSAqLworCXVpbnQzMl90CXBvbGljeWxv YWQ7CS8qIHRpbWVzIG9mIHBvbGljeSByZWxvYWRlZCAqLworCXVpbnQzMl90CWRlbnlfdW5r bm93bjsJLyogY3VycmVudCBzZXR0aW5nIG9mIGRlbnlfdW5rbm93biAqLworCS8qIHZlcnNp b24gPiAwIHN1cHBvcnQgYWJvdmUgc3RhdHVzICovCit9IF9fYXR0cmlidXRlKChwYWNrZWQp KTsKKworLyoKKyAqIGBzZWxpbnV4X3N0YXR1cycKKyAqCisgKiBOVUxMIDogbm90IGluaXRp YWxpemVkIHlldAorICogTUFQX0ZBSUxFRCA6IG9wZW5lZCwgYnV0IGZhbGxiYWNrLW1vZGUK KyAqIFZhbGlkIFBvaW50ZXIgOiBvcGVuZWQgYW5kIG1hcHBlZCBjb3JyZWN0bHkKKyAqLwor c3RhdGljIHN0cnVjdCBzZWxpbnV4X3N0YXR1c190ICpzZWxpbnV4X3N0YXR1cyA9IE5VTEw7 CitzdGF0aWMgaW50CQkJc2VsaW51eF9zdGF0dXNfZmQ7CitzdGF0aWMgdWludDMyX3QJCQls YXN0X3NlcW5vOworCitzdGF0aWMgdWludDMyX3QJCQlmYWxsYmFja19zZXF1ZW5jZTsKK3N0 YXRpYyBpbnQJCQlmYWxsYmFja19lbmZvcmNpbmc7CitzdGF0aWMgaW50CQkJZmFsbGJhY2tf cG9saWN5bG9hZDsKKworLyoKKyAqIHJlYWRfc2VxdWVuY2UKKyAqCisgKiBBIHV0aWxpdHkg cm91dGluZSB0byByZWZlcmVuY2Uga2VybmVsIHN0YXR1cyBwYWdlIGFjY29yZGluZyB0bwor ICogc2VxbG9jayBsb2dpYy4gU2luY2Ugc2VsaW51eF9zdGF0dXMtPnNlcXVlbmNlIGlzIGFu IG9kZCB2YWx1ZSBkdXJpbmcKKyAqIHRoZSBrZXJuZWwgc3RhdHVzIHBhZ2UgYmVpbmcgdXBk YXRlZCwgd2UgdHJ5IHRvIHN5bmNocm9uaXplIGNvbXBsZXRpb24KKyAqIG9mIHRoaXMgdXBk YXRpbmcsIGJ1dCB3ZSBhc3N1bWUgaXQgaXMgcmFyZS4KKyAqIFRoZSBzZXF1ZW5jZSBpcyBh bG1vc3QgZXZlbiBudW1iZXIuCisgKgorICogX19zeW5jX3N5bmNocm9uaXplIGlzIGEgcG9y dGFibGUgbWVtb3J5IGJhcnJpZXIgZm9yIHZhcmlvdXMga2luZAorICogb2YgYXJjaGl0ZWN0 dXJlIHRoYXQgaXMgc3VwcG9ydGVkIGJ5IEdDQy4KKyAqLworc3RhdGljIGlubGluZSB1aW50 MzJfdCByZWFkX3NlcXVlbmNlKHN0cnVjdCBzZWxpbnV4X3N0YXR1c190ICpzdGF0dXMpCit7 CisJdWludDMyX3QJc2Vxbm8gPSAwOworCisJZG8geworCQkvKgorCQkgKiBObyBuZWVkIGZv ciBzY2hlZF95aWVsZCgpIGluIHRoZSBmaXJzdCB0cmlhbCBvZgorCQkgKiB0aGlzIGxvb3Au CisJCSAqLworCQlpZiAoc2Vxbm8gJiAweDAwMDEpCisJCQlzY2hlZF95aWVsZCgpOworCisJ CXNlcW5vID0gc3RhdHVzLT5zZXF1ZW5jZTsKKworCQlfX3N5bmNfc3luY2hyb25pemUoKTsK KworCX0gd2hpbGUgKHNlcW5vICYgMHgwMDAxKTsKKworCXJldHVybiBzZXFubzsKK30KKwor LyoKKyAqIHNlbGludXhfc3RhdHVzX3VwZGF0ZWQKKyAqCisgKiBJdCByZXR1cm5zIHdoZXRo ZXIgc29tZXRoaW5nIGhhcyBiZWVuIGhhcHBlbmVkIHNpbmNlIHRoZSBsYXN0IGNhbGwuCisg KiBCZWNhdXNlIGBzZWxpbnV4X3N0YXR1cy0+c2VxdWVuY2UnIHNoYWxsIGJlIGFsd2F5cyBp bmNyZW1lbnRlZCBvbgorICogYm90aCBvZiBzZXRlbmZvcmNlL3BvbGljeXJlbG9hZCBldmVu dHMsIHNvIGRpZmZlcmVuY2VzIGZyb20gdGhlIGxhc3QKKyAqIHZhbHVlIGluZm9ybXMgdXMg c29tZXRoaW5nIGhhcyBiZWVuIGhhcHBlbmVkLgorICovCitpbnQgc2VsaW51eF9zdGF0dXNf dXBkYXRlZCh2b2lkKQoreworCXVpbnQzMl90CWN1cnJfc2Vxbm87CisJaW50CQlyZXN1bHQg PSAwOworCisJaWYgKHNlbGludXhfc3RhdHVzID09IE5VTEwpIHsKKwkJZXJybm8gPSBFSU5W QUw7CisJCXJldHVybiAtMTsKKwl9CisKKwlpZiAoc2VsaW51eF9zdGF0dXMgPT0gTUFQX0ZB SUxFRCkgeworCQlpZiAoYXZjX25ldGxpbmtfY2hlY2tfbmIoKSA8IDApCisJCQlyZXR1cm4g LTE7CisKKwkJY3Vycl9zZXFubyA9IGZhbGxiYWNrX3NlcXVlbmNlOworCX0gZWxzZSB7CisJ CWN1cnJfc2Vxbm8gPSByZWFkX3NlcXVlbmNlKHNlbGludXhfc3RhdHVzKTsKKwl9CisKKwkv KgorCSAqIGBjdXJyX3NlcW5vJyBpcyBhbHdheXMgZXZlbi1udW1iZXIsIHNvIGl0IGRvZXMg bm90IG1hdGNoIHdpdGgKKwkgKiBgbGFzdF9zZXFubycgYmVpbmcgaW5pdGlhbGl6ZWQgdG8g b2RkLW51bWJlciBpbiB0aGUgZmlyc3QgY2FsbC4KKwkgKiBXZSBuZXZlciByZXR1cm4gJ3Nv bWV0aGluZyB3YXMgdXBkYXRlZCcgaW4gdGhlIGZpcnN0IGNhbGwsCisJICogYmVjYXVzZSB0 aGlzIGZ1bmN0aW9uIGZvY3VzZXMgb24gc3RhdHVzLXVwZGF0aW5nIHNpbmNlIHRoZSBsYXN0 CisJICogaW52b2NhdGlvbi4KKwkgKi8KKwlpZiAobGFzdF9zZXFubyAmIDB4MDAwMSkKKwkJ bGFzdF9zZXFubyA9IGN1cnJfc2Vxbm87CisKKwlpZiAobGFzdF9zZXFubyAhPSBjdXJyX3Nl cW5vKQorCXsKKwkJbGFzdF9zZXFubyA9IGN1cnJfc2Vxbm87CisJCXJlc3VsdCA9IDE7CisJ fQorCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBzZWxpbnV4X3N0YXR1c19nZXRlbmZv cmNlCisgKgorICogSXQgcmV0dXJucyB0aGUgY3VycmVudCBwZXJmb3JtaW5nIG1vZGUgb2Yg U0VMaW51eC4KKyAqIDEgbWVhbnMgY3VycmVudGx5IHdlIHJ1biBpbiBlbmZvcmNpbmcgbW9k ZSwgb3IgMCBtZWFucyBwZXJtaXNzaXZlIG1vZGUuCisgKi8KK2ludCBzZWxpbnV4X3N0YXR1 c19nZXRlbmZvcmNlKHZvaWQpCit7CisJdWludDMyX3QJc2Vxbm87CisJdWludDMyX3QJZW5m b3JjaW5nOworCisJaWYgKHNlbGludXhfc3RhdHVzID09IE5VTEwpIHsKKwkJZXJybm8gPSBF SU5WQUw7CisJCXJldHVybiAtMTsKKwl9CisKKwlpZiAoc2VsaW51eF9zdGF0dXMgPT0gTUFQ X0ZBSUxFRCkgeworCQlpZiAoYXZjX25ldGxpbmtfY2hlY2tfbmIoKSA8IDApCisJCQlyZXR1 cm4gLTE7CisKKwkJcmV0dXJuIGZhbGxiYWNrX2VuZm9yY2luZzsKKwl9CisKKwkvKiBzZXF1 ZW5jZSBtdXN0IG5vdCBiZSBjaGFuZ2VkIGR1cmluZyByZWZlcmVuY2VzICovCisJZG8gewor CQlzZXFubyA9IHJlYWRfc2VxdWVuY2Uoc2VsaW51eF9zdGF0dXMpOworCisJCWVuZm9yY2lu ZyA9IHNlbGludXhfc3RhdHVzLT5lbmZvcmNpbmc7CisKKwl9IHdoaWxlIChzZXFubyAhPSBy ZWFkX3NlcXVlbmNlKHNlbGludXhfc3RhdHVzKSk7CisKKwlyZXR1cm4gZW5mb3JjaW5nID8g MSA6IDA7Cit9CisKKy8qCisgKiBzZWxpbnV4X3N0YXR1c19wb2xpY3lsb2FkCisgKgorICog SXQgcmV0dXJucyB0aW1lcyBvZiBwb2xpY3kgcmVsb2FkZWQgb24gdGhlIHJ1bm5pbmcgc3lz dGVtLgorICogTm90ZSB0aGF0IGl0IGlzIG5vdCBhIHJlbGlhYmxlIHZhbHVlIG9uIGZhbGxi YWNrLW1vZGUgdW50aWwgaXQgcmVjZWl2ZXMKKyAqIHRoZSBmaXJzdCBldmVudCBtZXNzYWdl IHZpYSBuZXRsaW5rIHNvY2tldCwgc28sIGEgY29ycmVjdCB1c2FnZSBvZiB0aGlzCisgKiB2 YWx1ZSBpcyB0byBjb21wYXJlIGl0IHdpdGggdGhlIHByZXZpb3VzIHZhbHVlIHRvIGRldGVj dCBwb2xpY3kgcmVsb2FkZWQKKyAqIGV2ZW50LgorICovCitpbnQgc2VsaW51eF9zdGF0dXNf cG9saWN5bG9hZCh2b2lkKQoreworCXVpbnQzMl90CXNlcW5vOworCXVpbnQzMl90CXBvbGlj eWxvYWQ7CisKKwlpZiAoc2VsaW51eF9zdGF0dXMgPT0gTlVMTCkgeworCQllcnJubyA9IEVJ TlZBTDsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChzZWxpbnV4X3N0YXR1cyA9PSBNQVBf RkFJTEVEKSB7CisJCWlmIChhdmNfbmV0bGlua19jaGVja19uYigpIDwgMCkKKwkJCXJldHVy biAtMTsKKworCQlyZXR1cm4gZmFsbGJhY2tfcG9saWN5bG9hZDsKKwl9CisKKwkvKiBzZXF1 ZW5jZSBtdXN0IG5vdCBiZSBjaGFuZ2VkIGR1cmluZyByZWZlcmVuY2VzICovCisJZG8gewor CQlzZXFubyA9IHJlYWRfc2VxdWVuY2Uoc2VsaW51eF9zdGF0dXMpOworCisJCXBvbGljeWxv YWQgPSBzZWxpbnV4X3N0YXR1cy0+cG9saWN5bG9hZDsKKworCX0gd2hpbGUgKHNlcW5vICE9 IHJlYWRfc2VxdWVuY2Uoc2VsaW51eF9zdGF0dXMpKTsKKworCXJldHVybiBwb2xpY3lsb2Fk OworfQorCisvKgorICogc2VsaW51eF9zdGF0dXNfZGVueV91bmtub3duCisgKgorICogSXQg cmV0dXJucyBhIGd1aWRlbGluZSB0byBoYW5kbGUgdW5kZWZpbmVkIG9iamVjdCBjbGFzc2Vz IG9yIHBlcm1pc3Npb25zLgorICogMCBtZWFucyBTRUxpbnV4IHRyZWF0cyBwb2xpY3kgcXVl cmllcyBvbiB1bmRlZmluZWQgc3R1ZmYgYmVpbmcgYWxsb3dlZCwKKyAqIGhvd2V2ZXIsIDEg bWVhbnMgc3VjaCBxdWVyaWVzIGFyZSBkZW5pZWQuCisgKi8KK2ludCBzZWxpbnV4X3N0YXR1 c19kZW55X3Vua25vd24odm9pZCkKK3sKKwl1aW50MzJfdAlzZXFubzsKKwl1aW50MzJfdAlk ZW55X3Vua25vd247CisKKwlpZiAoc2VsaW51eF9zdGF0dXMgPT0gTlVMTCkgeworCQllcnJu byA9IEVJTlZBTDsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChzZWxpbnV4X3N0YXR1cyA9 PSBNQVBfRkFJTEVEKQorCQlyZXR1cm4gc2VjdXJpdHlfZGVueV91bmtub3duKCk7CisKKwkv KiBzZXF1ZW5jZSBtdXN0IG5vdCBiZSBjaGFuZ2VkIGR1cmluZyByZWZlcmVuY2VzICovCisJ ZG8geworCQlzZXFubyA9IHJlYWRfc2VxdWVuY2Uoc2VsaW51eF9zdGF0dXMpOworCisJCWRl bnlfdW5rbm93biA9IHNlbGludXhfc3RhdHVzLT5kZW55X3Vua25vd247CisKKwl9IHdoaWxl IChzZXFubyAhPSByZWFkX3NlcXVlbmNlKHNlbGludXhfc3RhdHVzKSk7CisKKwlyZXR1cm4g ZGVueV91bmtub3duID8gMSA6IDA7Cit9CisKKy8qCisgKiBjYWxsYmFjayByb3V0aW5lcyBm b3IgZmFsbGJhY2sgY2FzZSB1c2luZyBuZXRsaW5rIHNvY2tldAorICovCitzdGF0aWMgaW50 IGZhbGxiYWNrX2NiX3NldGVuZm9yY2UoaW50IGVuZm9yY2luZykKK3sKKwlmYWxsYmFja19z ZXF1ZW5jZSArPSAyOworCWZhbGxiYWNrX2VuZm9yY2luZyA9IGVuZm9yY2luZzsKKworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IGZhbGxiYWNrX2NiX3BvbGljeWxvYWQoaW50IHBv bGljeWxvYWQpCit7CisJZmFsbGJhY2tfc2VxdWVuY2UgKz0gMjsKKwlmYWxsYmFja19wb2xp Y3lsb2FkID0gcG9saWN5bG9hZDsKKworCXJldHVybiAwOworfQorCisvKgorICogc2VsaW51 eF9zdGF0dXNfb3BlbgorICoKKyAqIEl0IHRyaWVzIHRvIG9wZW4gYW5kIG1tYXAga2VybmVs IHN0YXR1cyBwYWdlICgvc2VsaW51eC9zdGF0dXMpLgorICogU2luY2UgTGludXggMi42LjM3 IG9yIGxhdGVyIHN1cHBvcnRzIHRoaXMgZmVhdHVyZSwgd2UgbWF5IHJ1bgorICogZmFsbGJh Y2sgcm91dGluZSB1c2luZyBhIG5ldGxpbmsgc29ja2V0IG9uIG9sZGVyIGtlcm5lbHMsIGlm CisgKiB0aGUgc3VwcGxpZWQgYGZhbGxiYWNrJyBpcyBub3QgemVyby4KKyAqIEl0IHJldHVy bnMgMCBvbiBzdWNjZXNzLCBvciAtMSBvbiBlcnJvci4KKyAqLworaW50IHNlbGludXhfc3Rh dHVzX29wZW4oaW50IGZhbGxiYWNrKQoreworCWludAlmZDsKKwljaGFyCXBhdGhbUEFUSF9N QVhdOworCisJaWYgKCFzZWxpbnV4X21udCkgeworCQllcnJubyA9IEVOT0VOVDsKKwkJcmV0 dXJuIC0xOworCX0KKworCXNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIiVzL3N0YXR1 cyIsIHNlbGludXhfbW50KTsKKwlmZCA9IG9wZW4ocGF0aCwgT19SRE9OTFkpOworCWlmIChm ZCA8IDApCisJCWdvdG8gZXJyb3I7CisKKwlzZWxpbnV4X3N0YXR1cyA9IG1tYXAoTlVMTCwg c3lzY29uZihfU0NfUEFHRVNJWkUpLAorCQkJICAgICAgUFJPVF9SRUFELCBNQVBfU0hBUkVE LCBmZCwgMCk7CisJaWYgKHNlbGludXhfc3RhdHVzID09IE1BUF9GQUlMRUQpIHsKKwkJY2xv c2UoZmQpOworCQlnb3RvIGVycm9yOworCX0KKwlzZWxpbnV4X3N0YXR1c19mZCA9IGZkOwor CWxhc3Rfc2Vxbm8gPSAodWludDMyX3QpKC0xKTsKKworCXJldHVybiAwOworCitlcnJvcjoK KwkvKgorCSAqIElmIGNhbGxlciB3YW50cyBmYWxsYmFjayByb3V0aW5lLCB3ZSB0cnkgdG8g cHJvdmlkZQorCSAqIGFuIGVxdWl2YWxlbnQgZnVuY3Rpb25hbGl0eSB1c2luZyBleGlzdGlu ZyBuZXRsaW5rCisJICogc29ja2V0LCBhbHRob3VnaCBpdCBuZWVkcyBzeXN0ZW0gY2FsbCBp bnZvY2F0aW9uIHRvCisJICogcmVjZWl2ZSBldmVudCBub3RpZmljYXRpb24uCisJICovCisJ aWYgKGZhbGxiYWNrICYmIGF2Y19uZXRsaW5rX29wZW4oMCkgPT0gMCkgeworCQl1bmlvbiBz ZWxpbnV4X2NhbGxiYWNrCWNiOworCisJCS8qIHJlZ2lzdGVyIG15IGNhbGxiYWNrcyAqLwor CQljYi5mdW5jX3NldGVuZm9yY2UgPSBmYWxsYmFja19jYl9zZXRlbmZvcmNlOworCQlzZWxp bnV4X3NldF9jYWxsYmFjayhTRUxJTlVYX0NCX1NFVEVORk9SQ0UsIGNiKTsKKwkJY2IuZnVu Y19wb2xpY3lsb2FkID0gZmFsbGJhY2tfY2JfcG9saWN5bG9hZDsKKwkJc2VsaW51eF9zZXRf Y2FsbGJhY2soU0VMSU5VWF9DQl9QT0xJQ1lMT0FELCBjYik7CisKKwkJLyogbWFyayBhcyBm YWxsYmFjayBtb2RlICovCisJCXNlbGludXhfc3RhdHVzID0gTUFQX0ZBSUxFRDsKKwkJc2Vs aW51eF9zdGF0dXNfZmQgPSBhdmNfbmV0bGlua19hY3F1aXJlX2ZkKCk7CisJCWxhc3Rfc2Vx bm8gPSAodWludDMyX3QpKC0xKTsKKworCQlmYWxsYmFja19zZXF1ZW5jZSA9IDA7CisJCWZh bGxiYWNrX2VuZm9yY2luZyA9IHNlY3VyaXR5X2dldGVuZm9yY2UoKTsKKwkJZmFsbGJhY2tf cG9saWN5bG9hZCA9IDA7CisKKwkJcmV0dXJuIDE7CisJfQorCXNlbGludXhfc3RhdHVzID0g TlVMTDsKKworCXJldHVybiAtMTsKK30KKworLyoKKyAqIHNlbGludXhfc3RhdHVzX2Nsb3Nl CisgKgorICogSXQgdW5tYXAgYW5kIGNsb3NlIHRoZSBrZXJuZWwgc3RhdHVzIHBhZ2UsIG9y IGNsb3NlIG5ldGxpbmsgc29ja2V0CisgKiBpZiBmYWxsYmFjayBtb2RlLgorICovCit2b2lk IHNlbGludXhfc3RhdHVzX2Nsb3NlKHZvaWQpCit7CisJLyogbm90IG9wZW5lZCAqLworCWlm IChzZWxpbnV4X3N0YXR1cyA9PSBOVUxMKQorCQlyZXR1cm47CisKKwkvKiBmYWxsYmFjay1t b2RlICovCisJaWYgKHNlbGludXhfc3RhdHVzID09IE1BUF9GQUlMRUQpCisJeworCQlhdmNf bmV0bGlua19yZWxlYXNlX2ZkKCk7CisJCWF2Y19uZXRsaW5rX2Nsb3NlKCk7CisJCXNlbGlu dXhfc3RhdHVzID0gTlVMTDsKKwkJcmV0dXJuOworCX0KKworCW11bm1hcChzZWxpbnV4X3N0 YXR1cywgc3lzY29uZihfU0NfUEFHRVNJWkUpKTsKKwlzZWxpbnV4X3N0YXR1cyA9IE5VTEw7 CisKKwljbG9zZShzZWxpbnV4X3N0YXR1c19mZCk7CisJc2VsaW51eF9zdGF0dXNfZmQgPSAt MTsKKwlsYXN0X3NlcW5vID0gKHVpbnQzMl90KSgtMSk7Cit9Cg== --------------060900030409030904090400 Content-Type: text/plain; name="status.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="status.c" I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzZWxpbnV4L2F2Yy5oPgoKaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewoJaW50CWZhbGxiYWNrID0gMTsKCWludAlyYzsK CglpZiAoYXJnYyA+IDEpCgkJZmFsbGJhY2sgPSBhdG9pKGFyZ3ZbMV0pOwoKCXJjID0gc2Vs aW51eF9zdGF0dXNfb3BlbigxKTsKCWlmIChyYyA8IDApCgkJcmV0dXJuIDE7CgoJcHJpbnRm KCItLSBzZWxpbnV4IGtlcm5lbCBzdGF0dXMgcGFnZSAlcy0tXG4iCgkgICAgICAgInBvbGlj eWxvYWQgPSAlZCwgZW5mb3JjaW5nID0gJWQsIGRlbnlfdW5rbm93biA9ICVkXG4iLAoJICAg ICAgICFyYyA/ICIiIDogIihuZXRsaW5rIGZhbGxiYWNrKSIsCgkgICAgICAgc2VsaW51eF9z dGF0dXNfcG9saWN5bG9hZCgpLAoJICAgICAgIHNlbGludXhfc3RhdHVzX2dldGVuZm9yY2Uo KSwKCSAgICAgICBzZWxpbnV4X3N0YXR1c19kZW55X3Vua25vd24oKSk7CgoJd2hpbGUgKDEp Cgl7CgkJdXNsZWVwKDEwMDAwMCk7CgoJCWlmICghc2VsaW51eF9zdGF0dXNfdXBkYXRlZCgp KQoJCQljb250aW51ZTsKCgkJcHJpbnRmKCJwb2xpY3lsb2FkID0gJWQsIGVuZm9yY2luZyA9 ICVkLCBkZW55X3Vua25vd24gPSAlZFxuIiwKCQkgICAgICAgc2VsaW51eF9zdGF0dXNfcG9s aWN5bG9hZCgpLAoJCSAgICAgICBzZWxpbnV4X3N0YXR1c19nZXRlbmZvcmNlKCksCgkJICAg ICAgIHNlbGludXhfc3RhdHVzX2RlbnlfdW5rbm93bigpKTsKCX0KCXJldHVybiAwOwp9Cg== --------------060900030409030904090400-- -- 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.