From patchwork Sat May 6 13:08:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jann Horn via Selinux X-Patchwork-Id: 9714841 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BBC8A60362 for ; Sat, 6 May 2017 13:13:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A6F1F28613 for ; Sat, 6 May 2017 13:13:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9B9C428668; Sat, 6 May 2017 13:13:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.4 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM autolearn=no version=3.3.1 Received: from emsm-gh1-uea10.nsa.gov (smtp.nsa.gov [8.44.101.8]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B3AE428613 for ; Sat, 6 May 2017 13:13:55 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.38,298,1491264000"; d="scan'208";a="6723603" IronPort-PHdr: =?us-ascii?q?9a23=3Awxn1phHp54G6O0H7MuclHZ1GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ79pcq7bnLW6fgltlLVR4KTs6sC0LuI9f6+EjJYqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRo?= =?us-ascii?q?LerpBIHSk9631+ev8JHPfglEnjSwbLdzIRmsrAjct8YajIp+Jq0s1hbHv3xEdv?= =?us-ascii?q?hMy2h1P1yThRH85smx/J5n7Stdvu8q+tBDX6vnYak2VKRUAzs6PW874s3rrgTD?= =?us-ascii?q?QhCU5nQASGUWkwFHDBbD4RrnQ5r+qCr6tu562CmHIc37SK0/VDq+46t3ThLjlS?= =?us-ascii?q?kINyQ98GrKlMJ+iqxVqw+lqxBm3oLYfISZOfx5ca7Bc94WWXdNUt9NWyBcH4iw?= =?us-ascii?q?a5YDAuoEMetesoLzpUYBrQGmCAeyGe3hxDxGiHj00q00y+QsExzK0QIgEdIUrn?= =?us-ascii?q?vUt874OLsOXe2v0KXF1ynPYvFQ1Dzg6IbIaBchofSUUL9uccrR00gvFxjZjlWR?= =?us-ascii?q?s4PlOS6e2OULq2iH8+pgTv6gi245pApsvDivx90jgZTUiI0LzlDE9CN5wJs6JN?= =?us-ascii?q?alT0N7esCrEJ9RtyGcKot3TdgvQ31ouSkmyr0GvoS3fC4RyJs93RLfZPuHc5aR?= =?us-ascii?q?7x/lSe2fIi94iWp4dL+wiBu+60itxvDmWsWq31tGsDBJnsTUun0P1BHf8MiKRu?= =?us-ascii?q?dn8ku82zuC2Brf5+9KLE0yiKHVMYQuwqQqmZoWqUnDGyj2l1jog6KObUUk//So?= =?us-ascii?q?6/zgYrX7up+QL490hR/6MqQpgsG/Hf43MhIPX2iG4uSwzqHj/E3lT7VKif06iK?= =?us-ascii?q?/Zv4zBJcsHvKK5Bg5V0oI75xa+CTepzsgYkGEaIF9Kdx+LlYjkN0zULPzmAvqz?= =?us-ascii?q?nU6gnCpzy/DDJLLhA5HNLnbZkLfmeLZw81VcxxQ3zdBe4ZJUF74ALOvoVU/2qd?= =?us-ascii?q?zYCAM2PBKvw+v8FNV81p8RWWKIAqODNqPSqkWH6vggI+mLeo8ZoCz9JOQ95/7y?= =?us-ascii?q?kX85nkcQfauu3ZsRcn+4AvRmLF+fYXf3gNcBFmEKvg8kQ+zxlF2NTyRTZ22oU6?= =?us-ascii?q?I7/DE7B5qsDZ3fSYC1nLyBwCC7E4VUZmBEEF+DDXTod56DW/cKaSKSPNRskjIA?= =?us-ascii?q?Vbi8RI4uzgyutAnmy7p6NObU/TcYtZ373thv++LTjQ0y9SBzD8mFy2GCUXp7kX?= =?us-ascii?q?0ORz83wKB/pldwylad3qdmnfNUD9tT5+lGUg0iL57T0/R6C8zuWgLGZtqGVVGm?= =?us-ascii?q?QtOgAT4sUN0xx94Obl1nFNq8lBDD2DCmA7gPl7yEHJY06L7T32DtJ8ZhzHbLzL?= =?us-ascii?q?Quj0U8TctVLmCpmql/9w3PCIHTiEWZi7ymdaIC0y7R7G2D13aBvFlEUA5sVqXI?= =?us-ascii?q?RXEfZk3Krdvn4kPNUbquBqo7Mgtbyc+PMaxKasX3glVAQffsItXeY2aqlGe3Ch?= =?us-ascii?q?eE3LSMbJDle28FxiXSFFAEkxwP/XaBLQU/Biago2XYDDF1EFLvZ1rg8eh4qH+h?= =?us-ascii?q?SE871RuKb05g17qr5BEZn/qcRO0P3rgcoicuty10HEqh39LRE9ePuRJhc79GYd?= =?us-ascii?q?M8+1dKznrZuBZnPpyhNKBinloefB5rsEzwzRl3DZ9AkccypnMw0AVyMb6Y0E9G?= =?us-ascii?q?dz6A05HwO7nXKmzs8xC1cKPW1E/R38uR+qcV8vs4s0/jvAarFkU873pnz8NZ03?= =?us-ascii?q?yG5pXFFAASS47+Ul4r9xhmoLHXeic955nO2n1qLaa0syTC1sksBOs9yxasZsxf?= =?us-ascii?q?Ma2fFAPoFM0aHceuIvQwm1e1dhIEIPxS9KksMsOlbfSG26mrPPt7kTKll2tH44?= =?us-ascii?q?d90l+W+yp7UO7I0I4Pw+uE0QufSzf8kFChv9jtlo9ZfzESH3SwyTL/CYFLeqJy?= =?us-ascii?q?eJwHCWC0I8243t9+nYLiW2ZE9F6/AFMLwNOmdgCWb1Pjxg1QyUQWoXu8lCuj0z?= =?us-ascii?q?N0ki8mrqyD3CzP2evubhwHNXBXRGN6l1fjPZC0j8wGXEivdwUpjxWl5Vz9x6hA?= =?us-ascii?q?uKRyNHLTQUFPfyn4KmFtSK2wuqCEY8FR9JMiqT9XX/ikYVCGVr79pAMX0i35EG?= =?us-ascii?q?ta2DA0aSuquo7ikhxklm2dNm18rGfcec1qwhff/tPcT+ZL3jUaXCl4lSXXBl+k?= =?us-ascii?q?Mtm14NqbipbDvfq6V2+6SpJTdizrwp+auyug+W1mGxu/kO6vmtf/Cwg1zTf718?= =?us-ascii?q?V2VSXPtBv8fIjr2LimMeJgZElkHkPz68p9GoF4nYs9n5UQ2XkchpqP53oHln3/?= =?us-ascii?q?MdJB2aLxdHANXyIEw8bJ4Aj5301uNnaJx4PiVnWB28dhfMe1YmcX2iI78sBLB7?= =?us-ascii?q?yZ7KdcnSt0pFq4rB7eYeNnkjcb1/Qu9GYQg/sVtwo10iWdHrcSEFFCPSzrkxSI?= =?us-ascii?q?686xrL9La2aof7m9z1F+nc29A7GZuA1cX2z5epg6Fy9q8sp/KE7M0GH06oz8YN?= =?us-ascii?q?nfd88TthmOnxjaleRaM5Uxlv4WhSpgP2Lwpnglx/I9jRxpwZ62po6HJHtx/Kih?= =?us-ascii?q?GB5XKiX1Z98P+jHqlatendiZ34a0Hph6GTUEQp3oTemuED0MqfTrLQGOECczqn?= =?us-ascii?q?2DA7rQARef6Ft6r3LIC52rL2uYJGQdzdp8XBmSPkpfgBwKUzUghZM5Cxuqy9L7?= =?us-ascii?q?cEdi/DwR/Vn4qgZWyu10KRb/XGDfpB2najgqUpSfKgRZ7h1a7UfPLcOe9v5zHz?= =?us-ascii?q?1f/pC5sgyNLHGUah9WDWEPR0OEB0rvPr+w6tnc6+KYHPaxL+PSYbWSruxTT++I?= =?us-ascii?q?yoiy0oti5DuDKsSPPmViDvEi1EpMR3Z5F97emzUVRCwdjzjNYNKDpBeg5i13qd?= =?us-ascii?q?iy8PfrWQLr+4SCEL5SMdJh+xC4n6iDK/KQhCZ+KTZdyJwA33nIx6YD3FQKkSFh?= =?us-ascii?q?ayGtEagctS7KVK/QlLVYDxgHayN0MctF9Kw80RdQNs7ckNP6zKZ4juQyC1dHS1?= =?us-ascii?q?Puht2padYNI2GnO1PNHFyLO6ieJT3X38H3ZruxSadNg+pJrBCwtjObEkD5MjSF?= =?us-ascii?q?iTbpSwilMftQgyGDIBxepIa9fw53CWT5QtPqcBi7P8VzjT0xwbw5nWnFOnIZMT?= =?us-ascii?q?RmdENNtLKQ5ztCgvpjA2xB8mZlLe6cliaX9enXNIsZseBxDSRyi+Ja5286xqBP?= =?us-ascii?q?4y5YQfx5gizSrsRho1u+iOmA1iJnUAZSqjZMnI+Lu19iNr/B9plYQnvE8hMN7X?= =?us-ascii?q?+LCxQWqdtlC9vvtLpWytfTlaL8MjNC/8jT/csGCMjeMNiHP2Y5MRr1BD7UCxMI?= =?us-ascii?q?QiOwNW7BnUNdn+uS+WeLrpUhsZjjgpkOSqJBVFMvDP8aDlllHNoYL5dtRz8kjb?= =?us-ascii?q?mbjM0I5Hq5thXRQttVvozfXPKIHfrvMCqZjaVDZxYQx7P4LIATNonl1Ex5cVR1?= =?us-ascii?q?hprFG1DXXdxXpS1hdAA0ql1X8HdiVm0zx17lagS17XAIFP60kRk2ig1lbOsw6j?= =?us-ascii?q?jj+FY3KUDMpCcql0kxg9rliyiLcDHtNKewQZ1WCy3sukcrPZP0WRh1YhOpkExj?= =?us-ascii?q?LDfLWbRRj756emBqjA/TopxPGPFGQa1Deh8QyumdZ+803lREtiWn2UhH6PPZCZ?= =?us-ascii?q?tlkQsma4Ssr3VB2g19at46PrbQJK1XwVhTna+Boiio1uUtzwAEPEYN7HmeeCgW?= =?us-ascii?q?t0wULrMmPTan/vRw6QyenDtOYG4MWOQwrfJu7U49OOOAzzn807FZLECxLO+fL6?= =?us-ascii?q?KDt2jGi8GIXks61lkUmEld4bh2zcAjflKOV08x17ueCQ4GNdDeJgFVdMdd73nT?= =?us-ascii?q?fTyTvuXKz5J1J5+9Gf7oTOOUsqYbnF6kFh4zH4sQ9sQBAoWs0EbAIMj6NrEF1x?= =?us-ascii?q?Qt6xnwJFieFvtJYgiLkDAJosGk0pB4wZRdJiscAWVhMSS7/LDXqRE2gPCbRtc5?= =?us-ascii?q?fm8aXpcYNnIxQMC6nylZv25eAzmx0+MZzxOP7zD6piTNFjX8aMBjZPiMbxN2FN?= =?us-ascii?q?624Sk/87SxiVPP6ZXROWX6NdVkut/S5uIXvIqIC/RRTbZhqUjcgJVYS2asU2HR?= =?us-ascii?q?Dd6/P4LwZJU0bdzoFna6VUSyhC8pQMf0O9atKLSIjRzzSIZKroabxjEjNM66Fj?= =?us-ascii?q?EYARtwof8M5L5kbw0Zf5U7eQLotxg5N6GnIweYyNWvTHyrKTtKT/lS1uq6Z7tP?= =?us-ascii?q?zyUwdOO6zmUvTo0ixemt7UENXI0Kjg3Zxfu7e4leUC3zGntBewXPpSs0jHVuNu?= =?us-ascii?q?cyw+gl2xzEq18cPC6XdOZxcmxLo8k8BU+OIXVxEmc4SEWcgpDF4g6wxL0S/ixd?= =?us-ascii?q?nthS0e1ZsHjxoJ7fYDSwWKO1s5XZqSwgYsY6o6dpK4zsPtOGtI/CnjzYVJTfqA?= =?us-ascii?q?mFUC+mGPVEgtdQJSJZQP9PmWEjI8MLopFO6UsrWcc4PrBPBrQsqqqsaTV6ES4Y?= =?us-ascii?q?1TUZWJ+Y3Dwenue83KPXmQyOf5QkKxELqohNgsUDXC5seSMRvrWjVoXMm2+DUG?= =?us-ascii?q?gLLx8Z7R5Q6wIYio9wYufl7ZLSTJ9Kyj5Zv/J0UizPFplz71X1U3yYj0LkRfum?= =?us-ascii?q?iOGmwQVSzPfw3dYBQx5/FVJRx+BImUs0MLt3MbUfvpbWsj+UckP3pH7iyOm8K1?= =?us-ascii?q?ZN0sDba1r4DI7BtWr9TCIc42EUSpFTx3HfD5gSlBB5aKkzrlVWPI+mYlr+5yAj?= =?us-ascii?q?x4lxBbm3T9qrx1E+onsdWyeqCcBOC/94v1LTWT1lZZ+rqJHkO5VdQm9Q5JOdpE?= =?us-ascii?q?1DkEVoKSK5z4RTK91V6D4WQDdPuSmdvMe1SMBb1856FYMDItd+u3f4GaNLIpuR?= =?us-ascii?q?rmY3urPx1HDW5SowsFCgxDW8A6W4Vf5W/3UCGgU1IGSTslEvD+wo8mjI6FDMvF?= =?us-ascii?q?d0/+NVBrWUiEVxpzF9HotQCTlVz3ClKE9zTGJHs+VcJ6TZactcQ+M9ZRW3IRwx?= =?us-ascii?q?CeYm31CV/UFzhXr2eTZythZc+yzHXAk5TigVgrbsmT0Csc6rIzkaRIxUbT85dS?= =?us-ascii?q?fKNxqbmTxLvBZYc0xqR5cZAtNe9rEHwYdU+9HNRVyqKS4bQBxoLhg43uZHlU5f?= =?us-ascii?q?rEWYfjjQDQqyevbVqBJ3edqeodW0I/vn5AdHkp3osOQm+KUZXXGmnhetQd/GpY?= =?us-ascii?q?/mqtKKrleOdLv/M+CkY3/BSybDgAutirg6FJnF4TLTMBZFJJZn03YkZ4buCXLT?= =?us-ascii?q?NxRcO60bP1ZbVbx9adheue9aadNrdLoL9KNwCB+KXQ/gGIuqrPZaNFnTXijeIz?= =?us-ascii?q?+H8uOhvYLZ9abdRvT4ZsyQ23bHRLp6Po1k5jbmG7fly5Ne91Hy2vdq6EN1V0bK?= =?us-ascii?q?PDyGrNv8OAwH/s+ieVX+vpcxBzPZHI9wkGbxxkFHb8cXWzaq8IgCx5xE9Hb9Uv?= =?us-ascii?q?l40k/usO1I67Zr948346xzyciuIafeM/NasVVoAhKMHAVl6o0tAHRjR2BWeuIR?= =?us-ascii?q?NO3RcroHgs/zsO33CqgX6AGP++NDd9vHJkbBms2hBTGAUxBEmx0BqTECJAuGy/?= =?us-ascii?q?GFg7N0SdqipeXh30Ii+Vy+LhoYw7Bx+YeL4LCHqfTRbxTP0bgEQbTlSdnrrrsy?= =?us-ascii?q?oU+S4+MrlKIWcGxvfwKnCPQdVtIaxmr4z6Al1zgsE8TYH7Lk4vFDSWk0njf9m5?= =?us-ascii?q?B5A1UWG+8bHbuR8oRYhWc0gevZNscZcqpagGaACQakEqMeyX6s8yaXInNqghfA?= =?us-ascii?q?0xHqRmO88UH5oDRkQSTWydfjiU1VWqOxBUhMQyqjIVV4vy+XPAr0qNr3vrw47E?= =?us-ascii?q?4rMmzlsNKNkHWuOLZMEsLiOtOTOig0q0gRjJErQdyvw48bE8KnINgN6HF+cufe?= =?us-ascii?q?62Szni9Hp6dKnIve4seQ+vnNHHmgiaOaq6+XyzBD1ng4p0w/5cy8NvHT/d2FXe?= =?us-ascii?q?6k12ELTydwowHBRQK6qqTHr1AIPkyGyELLmIsMPtFF0nk3yFrr5O0iQN0p8gVR?= =?us-ascii?q?CJrAZv0FpTDpOzv02kyTY9QpWSmCyzFXBE76EUFkGKgg32L9pMbJlWzV+1AoXY?= =?us-ascii?q?RweVLoigFwD4UiM00t8EIXwi0BEQcTdR+bEKukBUP/LYsLTUIDcwiI3KCmeqcr?= =?us-ascii?q?2k1+2qiv6/XNbeNmCKoCKO1dgxWVnFdBBJIZq6IeT6xne1NH8q7YuBTiAZD9X/?= =?us-ascii?q?f6jXowKeG1QsdC/MAbtnsi5x2yRx++5pZD8bkbkpGIdqhLYZTWusBz8Vtn7yYV?= =?us-ascii?q?diNRmBh/kw+5UecEqeDi49nUqoCn5fq1WaY2WeoX6wY7CHhkg5v3mlAjrsnd1/?= =?us-ascii?q?1ARY3NlYT/7AdNLmaRt4bbyBl9J/ABK4CqfLZ873UIPTUeJ3YVMNWKbPkz/jFi?= =?us-ascii?q?Py/O51xYBcMMf8kXMNDKmQBOhU3jQKtT+dbDGl+EF4dzcNgl73LtxzAp7ZQ8Uu?= =?us-ascii?q?jh6DisJZDc9l1NJO1MjCFtlNLEuegUzuHfCDAN7nmFdxd1wi2Dy56XC/bz5+mM?= =?us-ascii?q?y8/bV0kAHiEoV4dRPj2C+RaoRuCtjpXmThuU6tPvgJI5bE+QWmaxk7oBsqlWF+?= =?us-ascii?q?5PlD720SVfFoD6hvKVr8Cj6HBNuV1dDYZ/9xvFF7tDPp9jIxT3itGrRlRgBiv4?= =?us-ascii?q?YMzUeQAhuPCIyecQ4+VzLE/+ZY4HIh0ay7L182dVThB0RL7woFmZQfobZMF6R/?= =?us-ascii?q?PcsnBV9YVgJrcAPFeDopzqsjBIqFcxDA8ydrAwqj1adk/TnAxaQKv0vKAPihEc?= =?us-ascii?q?UNFjo0NMH3y/OH4m7TrdSatVlLWRCOAS8jiLSKwOUllnMiR6Qxyvw5ViYbqpnf?= =?us-ascii?q?dAsmNdhSNwu/0q3jNpRRemvi3sva0N0yo6+L6krDUBpWBFTuKGnifHFVpD1+8K?= =?us-ascii?q?gb4BBXjt71K8YX8DbJb94bR8KsTg8JMu43Ihbhk5eC0GR+ugATnqj6yUGoyPrM?= =?us-ascii?q?5chBmVtcXMar+zLS4SOq4hxhLjQ3h9zxXRnRdp8GsNWTWg794kKZ6jOcYk2Cqn?= =?us-ascii?q?A2zbe0sN4q9Ttsv+q0ILRvMsaVx92GVjztSHRioVSczOBWY6lA4kZH5AcJJe9B?= =?us-ascii?q?AaFq4ogi2SsqlB5AEUby/eEp659YnIgcfIxX49QM9oxm3IqK2FiJcq3WZrmtxu?= =?us-ascii?q?6C6BpmgSe/beU8ByHnj5zp1fxvDmZ/WxruAHT5NryLulUP8FPMis52+22JFxV0?= =?us-ascii?q?++wbQeGVu5P/MZyrfdTSilVXWSWf6XfGiUgzY5Lkny6AGqLl03aMZKt0g9Mu/D?= =?us-ascii?q?hp5AiQLsSrZ0RiSMpV/B0mMvK+Qadxg5uI2/YQwFUPYRZ/SAJegp2PA+FFoMb3?= =?us-ascii?q?rSECtqCu+5rV2tk5Z/O3l650X1f/jt+Bj8MNSOAhkEDZLarplp9Py/R2KBOnxg?= =?us-ascii?q?zBppMUl27ejfFFMxtulCfJaXh9TQgcp00fIdffd3LSI9osITmp5k6YSMy8iFbx?= =?us-ascii?q?fRzorpKNHOpviYBOHfz1g0em5ET7UVewT15581PtQhQb3cAaNZvQgABag9WJEh?= =?us-ascii?q?OXn+9KV1LANrbAHcf7W1gsjvpuKOeJRUvXvW4UwqICfboR0DxeS+TRZnYJCym3?= =?us-ascii?q?XyPJcwSypPrt11EBtmHZdAFN0bogqiAp6UhLu7hMGr90N9oe8KvrL6CurW29Sh?= =?us-ascii?q?w4VxQ59a6FSMPDbVGqZmmVxljuCojffbzpnxCN/tec8eVOdlXGHJcLnGEZujKj?= =?us-ascii?q?iWIMLzZ1ZG86KA0LJ+ShiRYCH5X6ybtCyrLflk5UQ7ypdkfOrI1zEt7qvU2N31?= =?us-ascii?q?Z21BoSejt3GJPoNF7FPWHezeQw5USf2d/WZ+A6IXaYr09OETMd0tx9SS7BVz7D?= =?us-ascii?q?Rc38ufPaehtlXD11l4dZ3FNkvp3Tg2WY0RLxSiPksgm2jZqm7SAX5ENMirNdFt?= =?us-ascii?q?gMqJDhzq/0RxnHsiaXJBGmrpQ9eRPnMW29y/ZA2M6g1LC9cDn+iqeU83rKGyTv?= =?us-ascii?q?NoOppdk+WwqLoHicppKz3IRMVCPSHfNrx2Pj1KAejUuVgoZAIEs7gyWocoapiO?= =?us-ascii?q?IF8HPF2GySzs0QvIyVf0eMC01KaVPCYW9W1KwKne3jRLowm5uO2ZgtH4ULzDd5?= =?us-ascii?q?H5QuLdPDA+Vj6EQTQyEECp+UqruvcfoPWZIX0fok0PYi6IBg8cvLxvrcPXDm/V?= =?us-ascii?q?g+Fje4cKhP+CUSDqVCJ4jLYyBjpMtU2UTPoMDxLZb2XggGVCvAyvPeFM/Xb/YL?= =?us-ascii?q?2Dx6pVRvYaAo1Sff2FW9HYY+xRJy80ljUFP+axZ9/cr7M+0lLSV2sZErLI+UaY?= =?us-ascii?q?TEGMR/yT2TPrUZ8Sv4gutSoi4sjQkTNvE6TUI7afoCaj8pW2jCadpeLTV2ogbl?= =?us-ascii?q?crgO0cGmmBwRhBKGYCC90PvkHiXLKANA5w0ycyhOZv3QIcUBhiWX1plHtNlbCy?= =?us-ascii?q?HdMKc1MMiHKSR6gtbEp2Fy8x9EnCzZPufccLuc2bE2RR5LwKRJE1I/4v543aPa?= =?us-ascii?q?IRxLAi2zcw8wIgtCDIJFNHjxmZ8qPWVI3i2qFZ7mk1t+93Vwm0TjfedHXXgt69?= =?us-ascii?q?BsZOwzp+iWz13MrT+OZ2Pf1VoJ8vUwRCOj5/Ot2IpWMJamrzwgbn4hs=3D?= X-IPAS-Result: =?us-ascii?q?A2GVAgCnyw1Z/wHyM5AnNhAKAQEBAQIBAQEBCAEBAQEVAQE?= =?us-ascii?q?BAQIBAQEBCAEBAQGDASmBbo5zkVWCB44ahHWBciiGVAEIg3FXAQEBAQEBAQECA?= =?us-ascii?q?QJoKIIkDwqCWQYBAnkDCQEBFzEIAwEwAQUBAwEYGQWIA02BMwEBFgSiVT+OLiY?= =?us-ascii?q?Cg2lZghcECoQGEogrgmeEZoYaAQSJOIZmgViLcRKTC4IRiG8LHAyGRkiSLjNDU?= =?us-ascii?q?liBCiYLHicPXwZpGYNTHIFlRS+GQ4I9AQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 06 May 2017 13:13:54 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus [192.168.25.40]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id v46DDrNH003366; Sat, 6 May 2017 09:13:54 -0400 Received: from tarius.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id v46D986X097314 for ; Sat, 6 May 2017 09:09:08 -0400 Received: from goalie.tycho.ncsc.mil (goalie [144.51.242.250]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id v46D92Bd002069 for ; Sat, 6 May 2017 09:09:08 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1A6AgAAyg1Zf0JSfUpdHAEBBAEBCgEBgyyCF45zkVWQIYZuhiQChElXAQIBAQEBAQITAQEJCwsIJoVHAwNAATgBAwwGSzQBBQEcGYhVgTIBAxUEolY/ji6DCgWBAoJNCkANgy4BAQEBAQUCHgIGCQEIhD2DboJnhGaGGgWJOIZmgViLcRKTC4IRiG8LKIZGSJIuM4EVgWEwQBVfhEwPHIFldIZDgj0BAQE X-IPAS-Result: A1A6AgAAyg1Zf0JSfUpdHAEBBAEBCgEBgyyCF45zkVWQIYZuhiQChElXAQIBAQEBAQITAQEJCwsIJoVHAwNAATgBAwwGSzQBBQEcGYhVgTIBAxUEolY/ji6DCgWBAoJNCkANgy4BAQEBAQUCHgIGCQEIhD2DboJnhGaGGgWJOIZmgViLcRKTC4IRiG8LKIZGSJIuM4EVgWEwQBVfhEwPHIFldIZDgj0BAQE X-IronPort-AV: E=Sophos;i="5.38,298,1491278400"; d="scan'208";a="6042918" Received: from emsm-gh1-uea10.corp.nsa.gov (HELO emsm-gh1-uea10.nsa.gov) ([10.208.41.36]) by goalie.tycho.ncsc.mil with ESMTP; 06 May 2017 09:09:02 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AkEwmshxOv3lD5zfXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1O8WIJqq85mqBkHD//Il1AaPBtSFrawawLSO+4nbGkU4qa6bt34DdJEeHzQksu?= =?us-ascii?q?4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1?= =?us-ascii?q?Ov71GonPhMiryuy+4ZPebgFJiTanYL5/LRq6oATNusILnYZsN6E9xwfTrHBVYe?= =?us-ascii?q?pW32RoJVySnxb4+Mi9+YNo/jpTtfw86cNOSL32cKskQ7NWCjQmKH0169bwtRbf?= =?us-ascii?q?VwuP52ATXXsQnxFVHgXK9hD6XpP2sivnqupw3TSRMMPqQbwoXzmp8qFmQwLqhi?= =?us-ascii?q?gaLT406GHZhNJtgqxVoxyvoB5ww4DPbY2JKPZzZL/RcMkGSWdDWMtaSixPApm7?= =?us-ascii?q?b4sKF+cMI+ZYr5P8p1sVsRu+BBOjBOXywTFJgGf2wbE60/89HgHGwgMrAtUDv2?= =?us-ascii?q?jbrNT0M6cSV/66zLLTwDXMaPNW3jj96IzWfRAku/6MXLZwfdDNxkkoEgPIl1Od?= =?us-ascii?q?opHmMTONzukAsWeW4/B9We6xi2MrsQJ8ria1ysoti4TFnoAYx1Pe+Sh53Io5P8?= =?us-ascii?q?C0RUx0bNK+HpZduSeXPJZsTMw4WWFnoiM6x6UGuZGleCgKz4wqxxvFZPyGd4iE?= =?us-ascii?q?+xziVOONLTthinJoebOyiwy98Uinze38Wc2030hQoiVZldnMs2gB1x3V6seZVv?= =?us-ascii?q?tw5kWs1DmV2wzO9O1JIVo4mKnFJ5I7w7M9l4IfsUHZES/3nEX2grWWdkIh+uWw?= =?us-ascii?q?9+vnbbTnppiaN4BqkQHzKasumsu4AeQ3NggBQW2b9v691L3n50H2XLJKjvgunq?= =?us-ascii?q?nDrJ/aPdgbprK+AwJNyYYs9RK/Dzag0NQFkngKN05FeRKbgIjpPFHCOvb4Deyl?= =?us-ascii?q?jFi2nzdrwO7GbfXdBcDWI3zClqrxVaps4E5bjgwoxJZQ4IwHJKsGJafYWlXwr8?= =?us-ascii?q?DZBxlxHJKo3/3sCNg1gogRS2WJD7SxP6TVvluF4+suJ6+HY4pD62W1EOQs+/O7?= =?us-ascii?q?1SxxolQaZ6T8hZY=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GaAQCEyg1Zf0JSfUpdHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgwGCF45zkVWQIYZuhiQChElXAQEBAQEBAQECAQIQAQEJCwsIJjG?= =?us-ascii?q?CMyBVWAEBAQEBAQEBAQEBAQEBAQEBAQEWAislAQEZAwNAATgBAwwGSzQBBQEcG?= =?us-ascii?q?YhVgTIBAxUEolI/ji6DCgWBAoJNCkANgy4BAQEBAQUCHgIGCQEIhD2DboJnhGa?= =?us-ascii?q?DAQyDDQWJOIZmgViLcRKTC4IRiG8LKIZGSJIuM4EVgWIwQBVfhEwPHIFldIZDg?= =?us-ascii?q?j0BAQE?= X-IPAS-Result: =?us-ascii?q?A0GaAQCEyg1Zf0JSfUpdHAEBBAEBCgEBFwEBBAEBCgEBgwG?= =?us-ascii?q?CF45zkVWQIYZuhiQChElXAQEBAQEBAQECAQIQAQEJCwsIJjGCMyBVWAEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEWAislAQEZAwNAATgBAwwGSzQBBQEcGYhVgTIBAxUEolI?= =?us-ascii?q?/ji6DCgWBAoJNCkANgy4BAQEBAQUCHgIGCQEIhD2DboJnhGaDAQyDDQWJOIZmg?= =?us-ascii?q?ViLcRKTC4IRiG8LKIZGSJIuM4EVgWIwQBVfhEwPHIFldIZDgj0BAQE?= X-IronPort-AV: E=Sophos;i="5.38,298,1491264000"; d="scan'208";a="6723539" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mail-wm0-f66.google.com ([74.125.82.66]) by emsm-gh1-uea10.nsa.gov with ESMTP/TLS/AES128-GCM-SHA256; 06 May 2017 13:08:57 +0000 Received: by mail-wm0-f66.google.com with SMTP id y10so6231195wmh.0 for ; Sat, 06 May 2017 06:08:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=P8Rd2nXHgixvRlMIs9zs/1xqznKmG6NxtB7kmMK7r+o=; b=dRG0TMVve3pD5difOEmAtqk5AD7h/DHOoevtMRDRAzHgCTtOSL3+3zc5aN+CXbfMhi 5gvlhI1YQsM7eAnPZN4VSW27fzp7GxM1nzMXZxM5hlA0r7qpRZUkjGzac4QBkKy4GzKa il+tngc+IFYLpVGVmjW5uWw3cJnzfRd06/403+2ntvfhIwGh4/y+ssD9uBw9rc43LJqB 8bC2g+Dh9uaBg+qGG+yfK9RJFhT3k5cXN1p7MIiQiJ4Yc2C8NdWfsX3dfTRJ6iTdYdh+ H8iYkryHOnrPiXyUoYLinp6AaOTbbF7rgEmGn8U8DqNcuYv7tQGcav/Y/14l4KJbBSH9 oyhA== X-Gm-Message-State: AODbwcCnWYnNUyoKeg0IlgEfThwXloVgtEyhM1vMAML3bTtcUZRCCB+j V+wgYGQ2I1xxrf6b X-Received: by 10.28.46.143 with SMTP id u137mr7630313wmu.56.1494076135863; Sat, 06 May 2017 06:08:55 -0700 (PDT) Received: from localhost.localdomain (x4e32ae21.dyn.telefonica.de. [78.50.174.33]) by smtp.gmail.com with ESMTPSA id p187sm6576841wmd.24.2017.05.06.06.08.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 May 2017 06:08:55 -0700 (PDT) To: selinux@tycho.nsa.gov Subject: [PATCH 1/2] libselinux: add security_get_checkreqprot Date: Sat, 6 May 2017 15:08:47 +0200 Message-Id: <20170506130848.9128-2-cgzones@googlemail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170506130848.9128-1-cgzones@googlemail.com> References: <20170506130848.9128-1-cgzones@googlemail.com> X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= via Selinux Reply-To: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Add security_get_checkreqprot() function, returning the current active checkreqprot value --- libselinux/include/selinux/selinux.h | 3 +++ libselinux/man/man3/security_getenforce.3 | 11 ++++++++- libselinux/src/checkreqprot.c | 40 +++++++++++++++++++++++++++++++ libselinux/src/selinux_internal.h | 1 + 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 libselinux/src/checkreqprot.c diff --git a/libselinux/include/selinux/selinux.h b/libselinux/include/selinux/selinux.h index 45dd6ca5..01201eee 100644 --- a/libselinux/include/selinux/selinux.h +++ b/libselinux/include/selinux/selinux.h @@ -331,6 +331,9 @@ extern int security_setenforce(int value); /* Get the behavior for undefined classes/permissions */ extern int security_deny_unknown(void); +/* Get the checkreqprot value */ +extern int security_get_checkreqprot(void); + /* Disable SELinux at runtime (must be done prior to initial policy load). */ extern int security_disable(void); diff --git a/libselinux/man/man3/security_getenforce.3 b/libselinux/man/man3/security_getenforce.3 index 7658014a..29cf3de7 100644 --- a/libselinux/man/man3/security_getenforce.3 +++ b/libselinux/man/man3/security_getenforce.3 @@ -1,6 +1,6 @@ .TH "security_getenforce" "3" "1 January 2004" "russell@coker.com.au" "SELinux API documentation" .SH "NAME" -security_getenforce, security_setenforce, security_deny_unknown \- get or set the enforcing state of SELinux +security_getenforce, security_setenforce, security_deny_unknown, security_get_checkreqprot\- get or set the enforcing state of SELinux . .SH "SYNOPSIS" .B #include @@ -10,6 +10,8 @@ security_getenforce, security_setenforce, security_deny_unknown \- get or set th .BI "int security_setenforce(int "value ); .sp .B int security_deny_unknown(void); +.sp +.B int security_get_checkreqprot(void); . .SH "DESCRIPTION" .BR security_getenforce () @@ -24,6 +26,13 @@ returned. .BR security_deny_unknown () returns 0 if SELinux treats policy queries on undefined object classes or permissions as being allowed, 1 if such queries are denied, and \-1 on error. + +.BR security_get_checkreqprot () +can be used to determine whether SELinux is configured to check the +protection requested by the application or the actual protection that will +be applied by the kernel (including the effects of READ_IMPLIES_EXEC) on +mmap and mprotect calls. It returns 0 if SELinux checks the actual +protection, 1 if it checks the requested protection, and \-1 on error. . .SH "SEE ALSO" .BR selinux "(8)" diff --git a/libselinux/src/checkreqprot.c b/libselinux/src/checkreqprot.c new file mode 100644 index 00000000..9b4b12d7 --- /dev/null +++ b/libselinux/src/checkreqprot.c @@ -0,0 +1,40 @@ +#include +#include +#include +#include +#include +#include +#include "selinux_internal.h" +#include "policy.h" +#include +#include + +int security_get_checkreqprot(void) +{ + int fd, ret, checkreqprot = 0; + char path[PATH_MAX]; + char buf[20]; + + if (!selinux_mnt) { + errno = ENOENT; + return -1; + } + + snprintf(path, sizeof(path), "%s/checkreqprot", selinux_mnt); + fd = open(path, O_RDONLY | O_CLOEXEC); + if (fd < 0) + return -1; + + memset(buf, 0, sizeof(buf)); + ret = read(fd, buf, sizeof(buf) - 1); + close(fd); + if (ret < 0) + return -1; + + if (sscanf(buf, "%d", &checkreqprot) != 1) + return -1; + + return checkreqprot; +} + +hidden_def(security_get_checkreqprot); diff --git a/libselinux/src/selinux_internal.h b/libselinux/src/selinux_internal.h index 3d5c9fb4..54949c13 100644 --- a/libselinux/src/selinux_internal.h +++ b/libselinux/src/selinux_internal.h @@ -59,6 +59,7 @@ hidden_proto(selinux_mkload_policy) hidden_proto(security_getenforce) hidden_proto(security_setenforce) hidden_proto(security_deny_unknown) + hidden_proto(security_get_checkreqprot) hidden_proto(selinux_boolean_sub) hidden_proto(selinux_current_policy_path) hidden_proto(selinux_binary_policy_path)