From patchwork Mon Nov 14 17:48:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Smalley X-Patchwork-Id: 9428109 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 D4C86602F0 for ; Mon, 14 Nov 2016 17:48:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CA36528A59 for ; Mon, 14 Nov 2016 17:48:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BBB3A28AA3; Mon, 14 Nov 2016 17:48:43 +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.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE autolearn=ham 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 BE68128A59 for ; Mon, 14 Nov 2016 17:48:42 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,491,1473120000"; d="scan'208";a="909108" IronPort-PHdr: =?us-ascii?q?9a23=3AMVzXWxRAY/sK7WEkLRbJl8Brw9psv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa68ZxaOt8tkgFKBZ4jH8fUM07OQ6PG7HzVYqs/Z6TgrS99lb1c9k8?= =?us-ascii?q?IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBo?= =?us-ascii?q?KevrB4Xck9q41/yo+53Ufg5EmCexbal8IRiyowjdrNQajZdtJqos1hfFv2ZDdv?= =?us-ascii?q?hLy29vOV+dhQv36N2q/J5k/SRQuvYh+NBFXK7nYak2TqFWASo/PWwt68LlqRfM?= =?us-ascii?q?TQ2U5nsBSWoWiQZHAxLE7B7hQJj8tDbxu/dn1ymbOc32Sq00WSin4qx2RhLklD?= =?us-ascii?q?sLOjgk+27ZkMxwiL9QrgynqRJx3oXYZJiZOORicq/Ye94RWGhPUdtLVyFZAo2y?= =?us-ascii?q?cZYBAeQCM+hft4nwpUYCoBWxCgawC+3g1CRIi2Tq3aA4yektDRvL0BA+E98IrX?= =?us-ascii?q?/arM/1NKAXUe2t0afI0SvMb+tW2Tjj7ojDbw0vofSWUrJ0dcre10kuHB7Cg1WL?= =?us-ascii?q?tIPlJCiY1vgNsmeH7+pgUviji2g8qw5ruDSvycAsipfQi48T11vK9j15zZ4oKd?= =?us-ascii?q?C3R0N3e96pHIZKuy2EOIZ6XNkuT3xutS0n0LMJo4S7czIPyJk/wh7fbOGIfJaQ?= =?us-ascii?q?7xL4UeaRPS94hHV4eLKjnxqy8Vavyun7VsSszFZFtDBFktjRtnAWzRDT9siGRe?= =?us-ascii?q?d9/kemwzqP0Rzc6vpYLkwukKrbKpohzqYxlpoVr0vDAjf7lFj5gaKZbEkp+vWk?= =?us-ascii?q?5/75brjpuJOQLZJ4hhn7Mqs0m8y/Beo4MhIJX2ie4em8z6Ps/Un4QLVMk/03nb?= =?us-ascii?q?DVv4vdJcQGoK62HxFa0p045hajDzapzNQYnX4dIFJDYxKIlZLlO17JIPDmFfu/?= =?us-ascii?q?mUijkC93x/DaOb3sGpXML3nEkLfnZrt97kpcxBMyzdBZ/Z5UDKsOIOjwWk/wqt?= =?us-ascii?q?zXEAU1MwqqzOb7EN99zJ8RWXqTAq+FN6PfqUSH6fkoL+mIZY8Voyr9K+M/6/71?= =?us-ascii?q?k3A2hUURfbK30psTaXC4GOlmIkqCbHXwgtYBC3oKvhEkQO3kklKCTSVTZ3G0X6?= =?us-ascii?q?4m4TE7Eo2mB5/ZRo+xmLyBwDu7HppOa29YElCDC23od4SfW/oXcCKdONVhkj0f?= =?us-ascii?q?Vbi5T48uzw2huxHgx7pgNOrU9TUStYj/29ht++3TiRYy+CR6DsSc12GNSn97nn?= =?us-ascii?q?kTSj84wq9wvEt9yk2Z3qhgmfxYEt5T6O1VXQcmL5LcyPZ6C9/qUALbYtiJUEqm?= =?us-ascii?q?QsmhATwpQNIx2cUBY0BhFNWjlRDOxC+qA6cUl7CSH5w1/Lnc02L2J8ZnxHbMzL?= =?us-ascii?q?MhgEU+QstTKW2mgbZy9wvJCI7KlEWZir2ndacG0y7O82eD0HCCvEZCUA5/Sa/F?= =?us-ascii?q?R2wQZlPKrdTl4UPPV6WhBqk9MgtA18GCMLBHZcf1glVDXvvjP87eY22pkWeqGR?= =?us-ascii?q?mI3q+MbJbte2gFwCrSEkwEnB4I/XaaNQk+ATyso3nCAzxvC13vZV/s8ehkp3+h?= =?us-ascii?q?SE870R2KZVV717Wp4h4VmeCcS/QL07IEpighrzF0HFGm0tLSFtqAuw1hfKBGbt?= =?us-ascii?q?8n51dHz23ZvRRnPpO8N6BimkIecwNvskP12RV3EIJAkdM2rH4x1wpyL6WY0V1E?= =?us-ascii?q?dzyC25D8ILvXJXfu/Bq3ca7Zxkne0MqK+qcI8Pk5pU/svAW1FkU86XVnyMJY02?= =?us-ascii?q?WC6ZXQFwUSTJfxXlww9xhgqLHQejM96J/M1X1wLam0tSfP2840C+Q4yxavZdNf?= =?us-ascii?q?PbiYGw/1Fs0VG9KhKPc2m1SzaBILIvxS/rYuP8y6b/uGxLKrPOF4kTKgjGRH5I?= =?us-ascii?q?R93VyX9ydnUOHHwYwFw/aC0guATTf8g0+rstrrloBceTESAm2/xDD5C4FLeq19?= =?us-ascii?q?Z5gECWmhIsCs2tp+h4TiW2RE9FG9HVMKwsmpdgSOb1blxw1fyVwXoWC7mSu/1z?= =?us-ascii?q?F0jTApobaD3CzJ2eTubgYIOm5MRGlkglfhOoy0j9EcXEeydQgpkwGp5UHgx6hU?= =?us-ascii?q?vK5/NXXcQV9UfyjqKGFvSq+wtruZY85T8Z8oqjtYUOC9YVCcV778rAAX0zj7H2?= =?us-ascii?q?tfwjA7di2luo7jkxx8lm2dMG55rGDFdsFo2Rff+NvcSOZL3joBQCl4jSfYBkKg?= =?us-ascii?q?MNmu89SZjIzDsv2iWGK6TJFTdjPrzYyYviuh+WJqGQG/n+y0mtD/CQg1yzL719?= =?us-ascii?q?1wWSrSthrzeY7r16CmMeJgeEllH1r859Z8GoF5joQ8npcQ1mYGhp+N53oIjX/z?= =?us-ascii?q?MclH2aL5dHcNQDoLz8fL7wjjw0BjMGyGx4b9VnqD2Mttfd+6bX0K2igl9cBFFL?= =?us-ascii?q?+U7KBYnStyule4rhzeYf5mnjoGyvsh9ngag/oPuAUz0iWRGLcSHVNXPSb0jRSH?= =?us-ascii?q?88i+rLlLZGaoabWwzFBxnc2lDL6cugFTQnD5eos8Ei9q9ch/LUnM32Pp6oH/Yt?= =?us-ascii?q?XQdtUTtgCOkxjckedVJpUxluAFhSV5I279u2Mqy/Ijhxx0wZ66pJSHK3lq/K+h?= =?us-ascii?q?HB5YMCD6atgN+jHrkKlentya34axEZV9Aj8LRofnTeq0EDIOsvTqLx6OHychqn?= =?us-ascii?q?efArfQAQ6f6Ftmrn7WHZCkLXeXKGMezdV4SxmXPFZfjxwMXDUmgp45ERinxM/h?= =?us-ascii?q?cUd9+D8c/Vv4qhxCyuJmKRb/TnvfpAevajcxVpeTNhxW4R9e503NK8yR8vpzHz?= =?us-ascii?q?1E/p2mtAGNJHaUZwJUDWEOX0yJHF7jMaez6tnH6eiXHPK+L+HJYbWMt+NRS+uI?= =?us-ascii?q?yYio0ot88DaGLt+PMWV6D/0nxkpDWmh0G8vZmzoTUSwWlzrNb9KcpBqn/C14sN?= =?us-ascii?q?y/8O/3Vw31/YuAFaFeMdNx9BCqma2DLfKfhD5lKTZE0ZMB3WLHyL4F01MJli5u?= =?us-ascii?q?cSOiHa4HtS7XQ6LagrVXAAIDayNvKMtI6Lox3hNQNsHGkd712bt4j/EvB1dDS1?= =?us-ascii?q?PhhtmjZdYWLGGlKFPHGEGLOaycJTHRzcD7e6a8RqdUjOVTtxy9oiyUHFPmPjiZ?= =?us-ascii?q?kDnpTR+vO/lWjC6HJBxepJ29chF1BGjlVtLpcAW7MMdsgD04wL00nGjKNXISMT?= =?us-ascii?q?h9dUNCtLuQ4j9ZgvplH2xN9H1lLfOLmyyB9enXNo4Wsed3AiRzj+9V/W86xKVP?= =?us-ascii?q?4yFLXvx6gjXSo8V1o168kemP1yBnXwBUpjZPmYKLu19tOb/A+plcXnbE/xIM7W?= =?us-ascii?q?KKBxQMudRlFsXlu7pMxdjXiKLzNDBC/srP8ssdCMjUL8SHPWE8PhX3AzHUDREK?= =?us-ascii?q?TTixOWHYnUxdn+mY9meJoZgitpjshJ0OR6dBW1w6DPwaFFpqEccFIJdvQDwkl7?= =?us-ascii?q?ubg9QJ5Xq6txbRQ8pbsorAVvKIDvXlMCyZgqVcZxsU3bP4KpweNpH820xncFV6?= =?us-ascii?q?hoPKGkvOUtBLuSJhdAg0r1tO8HVlUmIz3EflZR+3738ICf64hBg2hRViYe417j?= =?us-ascii?q?fj/083JkbWpCs3iEQxmcnlgTCWcD70NqiwRppbCy/1t0gtKJP0XRx5bQqonUxr?= =?us-ascii?q?LD3EXa5ej6N8dWB3jw/RoZ1PFuBGQq1AexIQxvaXZ+400VtGrCWn3kxH5erfBZ?= =?us-ascii?q?tkigQqbYamr2hc1AJ7cN41OavQKbJTzldOnaKBoDWn1votzw8ePEsC62KSeDQV?= =?us-ascii?q?t0wPOLkmPzCo8fJs6ACYnTtMZnQMXeIwov127kM9J/iAzyX43rFeME+xKe2fIL?= =?us-ascii?q?6Cu2Xbj8GIWEkw1kQGlkle47d5zdojc1CVV0AzzLqdDRIJOtTeKQtNdcpd6GDT?= =?us-ascii?q?fTqSseXK2Z91MZ+9Gf71Qu+VrqkUhF6kHAEyH4kX9MsOApys3FvfLcf9I74P0Q?= =?us-ascii?q?8t6xjzJFWZEPRJfwqGkDMAo8Gl0pB324hcJjYGDGVyNyW3+6zbpggwgPqMRN02?= =?us-ascii?q?eGsVXpMYNnIqX823gzVZsGpEDDm21OIZ1QeD4iTgqSTXCTnzc8BsZOyIZR92Dt?= =?us-ascii?q?G55yk/+bCsiVHL6pXeO336NdN6t9DS9ewaopGHC/VITbVgqErchZdXR2arU2/O?= =?us-ascii?q?Ft61IYL8a48yYtzoEny6SECwiyopT8ftO9agNquIgRvoRIlOtombwDAjONSyFj?= =?us-ascii?q?EZAxd/u/sP5KRiag0fe5A7ewLntxwiN6yjJweVysmuQ2eoKTtRU/lfzeW7aqdK?= =?us-ascii?q?wCotbu610mAvQos8z+ap7U4HXIsKgQ3Gxfa/e4leVjD+GnNHewrVoyo5i3NsNu?= =?us-ascii?q?c1wuYxxhPIrVkcPC6KdOxvdGxLocs8CUmUIXpoFmoyX0Wcgpbb4g6ww7AS+DNQ?= =?us-ascii?q?kMxQ0e1ErHfxoIfQYDesWaytrpXVtTAvYMM9rK1wK4PjJNKKtJ3DnjDFSpnfrB?= =?us-ascii?q?GFWjagF/VGgthQPD5YQP5QlG4+J8MGv5FM5lAsWccgObNPErIsqaqwaTtkFyIS?= =?us-ascii?q?yjUZV4yY1jwYnui8w6falguXcJk6KhwEtpRCjccdUy5xZiMev7etWZzLmWGeVm?= =?us-ascii?q?UFJxwe4hhL5AIFioB/ZPvl4JbSQJ9K1TFWv+p+UjHXGZlw61v7VmaWjEDkR/Wj?= =?us-ascii?q?ieOmwRlfw+7r0tkfXB5/CFZSx/xKlkQ2NL53K7McvonQsj+HbUn6pn7iyPO6JF?= =?us-ascii?q?lNzs3Zb0f4A5DftWr7SSIR4mEURZVVx3HBC5sSlwt5aKAkpFVIIYCmdUb+5yAq?= =?us-ascii?q?x4tzBbm4UNqnx1A7onYaXy2qCcZOC/l6sFLLXz1oe5Cqp4/+O5pIR29Q+Zudpk?= =?us-ascii?q?xYkEVxKSG50oZTJNtX7j4KQjdPvS2XvMGuR81bxc92E5gML89xunvnBKxEOJmR?= =?us-ascii?q?o3g3urP1yX/U4DE8v0mkyzqtAaO4SPhZ/2IGEAUzO2ueslUvD/cr8mrK6lDNtV?= =?us-ascii?q?R08P1BBrmBikVxpDh9E4tLBjZO0nClNEp8Q2Vcs+VdM6TVaM1cQ/89ZRO1PBw+?= =?us-ascii?q?D/Em1VST/U5ohXf5fzBytgxC9i/HRQk0SC8Vjq3umTAFq8GnOD4aS45TYjk7aS?= =?us-ascii?q?fKNR6bkzhNvBlDc0FqR4wZAtFd9rEH2otU+9HPSVqwJSEARxNuLAQ43uRDlURb?= =?us-ascii?q?qkWXZTjdDRa0dfbIqhB3fd2erNSzI/T94QhKkZ7ov/4g96UbWXKmnROiQcrEo4?= =?us-ascii?q?/7rN2KuVOEdL3kPO2kfX/BUD/MgAiwhbcjEZbK8TbcMBBAJpl713Urf4buBXTM?= =?us-ascii?q?PRRcKKIRP1BbWrxiadVavuBaYNdpeKQO+aBzHR+IWw3gGJexo/lcMlbcWynRIz?= =?us-ascii?q?+H8uOhvYLZ9abdRvT4ZsyQ23bHRLp6MYx06TbnB7vn05JS90Tt1/hx8UN6TETJ?= =?us-ascii?q?PDqarNT9PA8L4tetdlf6tJ0zATzWGItwkGbqxkxYbcoYXTCl8JQCx5NF83vwTe?= =?us-ascii?q?V40lbtv+FM67Zk7pQ47K5zxceyO6jSNexQsVV7DRiMGgVq6pItDXBnR2BKfu8e?= =?us-ascii?q?MurefbgCgMD1rOD3CrYX5wGL9OxfddvHPVvOms2lBjGbUxxEkx8LqSQGIQuEy/?= =?us-ascii?q?6Fh6h0RN65pejjxE0i/UWxIwUbzLBp+YeE4LCHpPHWbxvWybgLRLTqStn0rrQ2?= =?us-ascii?q?tEOY/eckm6IWemxpfw2nF/AQVssHyWfkyaAl0z4sE9/ZEL364/NDUWw2ni77m5?= =?us-ascii?q?9hBVoWAu0bEaCN/YtAgmcyg/bZOcEOcqBehmaPEgapEr0Yxn6x7CuXO21ljQvQ?= =?us-ascii?q?0xzrRGOz8Vv2rTN5QSTQztfsiExVVqKtCUdVRSqpNldysCmTMwrwqNr3paM14V?= =?us-ascii?q?k0MmP+stKNmnGhOLRKEMLhP9GcPTM7pFQMjJ02XNCv354UGcalKtcL7H5+dufe?= =?us-ascii?q?63+skyJZrKdHmove4sWR+vrJGHmtlLCVpKuWyzBZ0Hc4u0sz6te6NvHB/9eKWe?= =?us-ascii?q?in134NTydjvAvMRxi1qrjAolAVP0yL1V3HmI0MPtFXx3k3zFrm5PQ5QNIu6Ape?= =?us-ascii?q?CpvAZ+kcqjzpPzv021mfacotViaCyztXAk71EV5gFag532Lwut7JlXjO9FAzQ4?= =?us-ascii?q?lwdlbohRppAIUkJ0Mt70IXwikYEQQXbxCUEq2oD1z/LYQYTUgDdQiH3L+id6cz?= =?us-ascii?q?xk1zx7Oi6fTdbeNiGqUNMexdgRSWnFhBHZIWs7MRT65ge1NH867XvAfiAZD9X/?= =?us-ascii?q?f6jXowKeG1QsdC/MAcs3st/AO/Rx2+5pdH9Lsbh46HdqlfYZjUps9880Zn6iQL?= =?us-ascii?q?dixMhhh/kw22UeQYpODi7djUrpyo5fqwW6o3QeUY6QQ0DXxkj5TsmFAjvc3X1+?= =?us-ascii?q?BER43Ok4v/7hpCI3GUt4bByBR8MvABK5yxc7Zv6XoHPDISJ3QQMtqKc/M8+TNi?= =?us-ascii?q?MC3P51xeBcMBfdEYPMvImQ1Pj03mRrFS+dTBGl+ZDYdzeNok72zpxzAp6ZE8SP?= =?us-ascii?q?rv6CeqJZDD6FFAJ/JDjSR2m93YuOcY2uHSBzYL4XaHdxd52CSCy4OCC/zo5+WD?= =?us-ascii?q?1MnUV08aHi4xS4pSPzuC+RepR+WvlpXpUx+U6tfpj5IjcEKdXWC+nKMYvalSC+?= =?us-ascii?q?FAlz/73j9EFo/vnf6VtMCs6GRPvF1dDIlz9QHFGLlYPphjIRT3jNWrSVR8Birx?= =?us-ascii?q?f8HUbBkutPONxugS5+V+Nk3+ZZIUIx8f07L182ZVQRduSL/4uVaZR+ERaMFlSP?= =?us-ascii?q?zatHBV75xvK6sVMFiavpzqoS9CqEoqDw8xdL8wsjtae1HSnA1PRan0vKQPig0C?= =?us-ascii?q?XtNipEBMGG2wOGMi5zXdTqRalrORCOEP/jWVUKMOT11iMjliTBOtxJVuZ7ypkO?= =?us-ascii?q?hIsmxchCNyvuQq0zx9SRu4uC3su7wC2TI697GlrzUNo3pFQfuCky3QE1VM0OwK?= =?us-ascii?q?jbsAC3bl8VG8b2cMbI3u4LlgIsTs8pIh7Go7YRUieS0GQOuhBjr0j6yWGIyOsM?= =?us-ascii?q?hTiASLuMrQcb+5NTISOaglyRL/W3h91RDTnBBp8GQXRTWg6MUrJJ6nNcYkwSqo?= =?us-ascii?q?HnPbdE0X76NMv8bwukQHTOwsaVNu2G9jyNSIRjURRMzTHGY4lgckZnlfcJJY8B?= =?us-ascii?q?MUCqYmjDCJvqlA4wEVbyzZEoug+obKm8fHx2MxTdBwxmLZvqeFnI8l0GV5m9No?= =?us-ascii?q?6S6DoHYSd+vYU89qGHT8yodfyejjZ/qws+EHSY1myK+iUP8DKcSj52q22ItwVU?= =?us-ascii?q?+h27seHkC1MOkdybfHSy2lU3GXWfyXc2iQmDY0Kk/y5QeyIV0xc8pKq1I9PfbD?= =?us-ascii?q?hp5bjA3tS7R0Rj+fpVXD1mwsLfsadx4quIegYwEKTvAeZ+aSJegq2/A/BkEDb3?= =?us-ascii?q?nXEitqEeO2t0CinJRjMXV6/Ur6efjt8hzhMNaKFRkEFYnar5Bv9vy+QmKMImRg?= =?us-ascii?q?zBp0PEl16+jTDVIxufFAc5yJh9jfm8x70fIZd/dqKSA9uN4Tm4J76YmT1MeKcA?= =?us-ascii?q?3RwYjpKNHQo/iYH+ffwFowdmFdSLoZbhv/558mMd4hR73TAbxZsAwABag7RZws?= =?us-ascii?q?LHvx9KBoIwNwbAHRYK64gs/0qeKXfpFUvWPZ7kosLCfAvB0O0vm0TQ14b5CpgH?= =?us-ascii?q?X/O5IwSShCr91qDBtpAo1PF9kGrwW5H56egLu7hMOp+0Nmp+8KtrL9BevU29S/?= =?us-ascii?q?w4V8RINa5UiMPDbNGKlrnFpqgfmojvfHyJnxBtvoeckYW+hjXm7FdrjGE52xKj?= =?us-ascii?q?2QPsL8elZG/KCH3bN4UxWRYSX5ULSctC2gKvpo+0I7ypZ3fODL1jwi86nb2Mfu?= =?us-ascii?q?Z2Fcviqio2aJNIFe7FPWG+PTRBdUSfuZ8GZ/A6Ibd4z09P0BMdY62tiT/xFz7C?= =?us-ascii?q?he0MuCO6WhqUvM1VxgeJLDKEvmwT05WZULIBujLUssm3HWpWrHDXRaMMekNdFn?= =?us-ascii?q?gMyJARz1+0lxhWYta3ZFGmrpQ9eRJGca19u6ZA2L7wJLE80DkvW2eUEisK2yTv?= =?us-ascii?q?NkOpJfmeWlrL8Hi8pmKznTRMhGOCHdNKR2MSRVDuXOolgofxEFv786VIcpZZiB?= =?us-ascii?q?PlkHP1mYySzo1gbC0lP7d8aq1KmXJCYZ6WhHz73f3ThLvQm5tu6Tgtf/X7DBcJ?= =?us-ascii?q?H2QPnSPTIhVjGbXjQyDV2k+Fa9u/oCpvWUO2EfrU4IYiiKEg4curhvrcTMDm/U?= =?us-ascii?q?geBjeYcFi+yaWyDxTi14k7E/BjhKtUCKXfUDEQjWb3n8gGtTogCiIeVM/X39Zb?= =?us-ascii?q?2C2qVVQ/AWApdLcvCBQdvXY/NeJzAzmTgCJea8ecHcr7Y+0lLVQmsZE7XI+EeY?= =?us-ascii?q?TEGIXvyW3yjrUpkNv4gopioo/crdniBtHKvTJbafpiCh8oqjgSaGve3RTHItY0?= =?us-ascii?q?0ogO4YBmmO3gVAInkeC94JoEHtXrKAZ0FU2XIrjOJu3AUMeB5yUn11yXBWmuyy?= =?us-ascii?q?GshHRl4Vlm+uR+cGbF9vBjMq4UCK+hHyYcAHuc3LXG9e+L4MRpYcIfQr84TXJr?= =?us-ascii?q?UfwOwo3DNnpyw6tT+RD1VDgQKZ66DQBr5zxqVe5Wkk+PF7RkOPQzTZcmjD0Yem?= =?us-ascii?q?DtxAyjpgoXDjzcrbov5iOKFcp45nHFdZSR5xc8vQ+TFHTHHcxBq5vxH9Gi+XZj?= =?us-ascii?q?0e/mUlPysAI91pwvd7vRCATdPI7Uedpup1s0ewIRqaAbqznppQA4fm0hvuOnoD?= =?us-ascii?q?SimiC50j8qUFr90Ve65yINLmDg=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2H+AADJ9ylY/wHyM5BeHAEBBAEBCgEBFwEBBAEBCgEBgwY?= =?us-ascii?q?BAQEBAR+BSBC6UAVRJogqUwEBAQEBAQEBAgECXyiCMxqCHAIkExQgCwMDCQIXK?= =?us-ascii?q?QgIAwEtFR8LBRgEiECxQD0qAostJY8wEQFoggALgwoFj1yKZZBdAooUhgqRTlU?= =?us-ascii?q?3Iw0CDwschThUhU+CLQEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 14 Nov 2016 17:48:40 +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 uAEHjJTn032737; Mon, 14 Nov 2016 12:45:36 -0500 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 uAEHjHZv096993 for ; Mon, 14 Nov 2016 12:45:17 -0500 Received: from moss-pluto.infosec.tycho.ncsc.mil (moss-pluto [192.168.25.131]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id uAEHjFAa032731; Mon, 14 Nov 2016 12:45:15 -0500 From: Stephen Smalley To: selinux@tycho.nsa.gov Subject: [PATCH v2] libsepol: fix checkpolicy dontaudit compiler bug Date: Mon, 14 Nov 2016 12:48:05 -0500 Message-Id: <1479145685-4899-1-git-send-email-sds@tycho.nsa.gov> X-Mailer: git-send-email 2.7.4 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: Cc: Stephen Smalley MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP The combining logic for dontaudit rules was wrong, causing a dontaudit A B:C *; rule to be clobbered by a dontaudit A B:C p; rule. Reported-by: Nick Kralevich Signed-off-by: Stephen Smalley Tested-by: Nick Kralevich --- libsepol/src/expand.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/libsepol/src/expand.c b/libsepol/src/expand.c index 004a029..d7adbf8 100644 --- a/libsepol/src/expand.c +++ b/libsepol/src/expand.c @@ -1604,7 +1604,8 @@ static int expand_range_trans(expand_state_t * state, static avtab_ptr_t find_avtab_node(sepol_handle_t * handle, avtab_t * avtab, avtab_key_t * key, cond_av_list_t ** cond, - av_extended_perms_t *xperms) + av_extended_perms_t *xperms, + char *alloced) { avtab_ptr_t node; avtab_datum_t avdatum; @@ -1658,6 +1659,11 @@ static avtab_ptr_t find_avtab_node(sepol_handle_t * handle, nl->next = *cond; *cond = nl; } + if (alloced) + *alloced = 1; + } else { + if (alloced) + *alloced = 0; } return node; @@ -1750,7 +1756,7 @@ static int expand_terule_helper(sepol_handle_t * handle, return EXPAND_RULE_CONFLICT; } - node = find_avtab_node(handle, avtab, &avkey, cond, NULL); + node = find_avtab_node(handle, avtab, &avkey, cond, NULL, NULL); if (!node) return -1; if (enabled) { @@ -1790,6 +1796,7 @@ static int expand_avrule_helper(sepol_handle_t * handle, class_perm_node_t *cur; uint32_t spec = 0; unsigned int i; + char alloced; if (specified & AVRULE_ALLOWED) { spec = AVTAB_ALLOWED; @@ -1824,7 +1831,8 @@ static int expand_avrule_helper(sepol_handle_t * handle, avkey.target_class = cur->tclass; avkey.specified = spec; - node = find_avtab_node(handle, avtab, &avkey, cond, extended_perms); + node = find_avtab_node(handle, avtab, &avkey, cond, + extended_perms, &alloced); if (!node) return EXPAND_RULE_ERROR; if (enabled) { @@ -1850,7 +1858,7 @@ static int expand_avrule_helper(sepol_handle_t * handle, */ avdatump->data &= cur->data; } else if (specified & AVRULE_DONTAUDIT) { - if (avdatump->data) + if (!alloced) avdatump->data &= ~cur->data; else avdatump->data = ~cur->data;