From patchwork Mon Nov 28 18:29:17 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Smalley X-Patchwork-Id: 9450013 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 54E9D6071C for ; Mon, 28 Nov 2016 18:34:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4914925D97 for ; Mon, 28 Nov 2016 18:34:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3ADCC27D5E; Mon, 28 Nov 2016 18:34:52 +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 1ADD425D97 for ; Mon, 28 Nov 2016 18:34:50 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,564,1473120000"; d="scan'208";a="1346101" IronPort-PHdr: =?us-ascii?q?9a23=3Axgo+2BalfRut9YkN2xRjBaP/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZoc6ybR7h7PlgxGXEQZ/co6odzbGH6Oa7BydZuM/JmUtBWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6?= =?us-ascii?q?OPn+FJLMgMSrzeCy/IDYbxlViDanb75/KBu7oR/fu8QXjoduN7s9xgbUqXZUZu?= =?us-ascii?q?pawn9lK0iOlBjm/Mew+5Bj8yVUu/0/8sNLTLv3caclQ7FGFToqK2866tHluhnF?= =?us-ascii?q?VguP+2ATUn4KnRpSAgjK9w/1U5HsuSbnrOV92S2aPcrrTbAoXDmp8qlmRAP0hC?= =?us-ascii?q?oBKjU2/nvXishth6xFphyvqQF0z4rNbI2LKPZye6XQds4YS2VcRMZcTyxPDJ2h?= =?us-ascii?q?YYUBDOQPOuRXr4flp1YMsBezCwajC//gxDBWnX/7xrE63uY7HA3axgEsA8wCvX?= =?us-ascii?q?LJp9v1LqcSVuW1wbHVwzXfcfxWwTf955bOchs8vP+MWKh/cc7VyUYxFwLOk1Kd?= =?us-ascii?q?qZf4MDOOzekNr2ia4PZgVeKokWInrRpxrSK1yscjjYnJmJsYx1bZ/it62IY4Pc?= =?us-ascii?q?C0RUF0bNK+EJZcqjuWO5V5T888WW1kpSA3waAct5GhZigF0pEnygbaa/yAboeH?= =?us-ascii?q?/AruVP2UITdknHJlf6+/hwqq/Uig1OL8Us603U5WriVfiNnMt20N1wfJ5sibSv?= =?us-ascii?q?py4keh2TGV2wDV9u5EOlw7mbDeK54gxr48jpsTsULdES/qgEj6kaCbe0o+9uWo?= =?us-ascii?q?9ujreKvqq5CCO4Nulw3yKqEulda+AeQ8PAgORW+b+eGk2b3440L5RLRKjvsrkq?= =?us-ascii?q?jWqZzVPsMbprO/AwBJzIkj8A2yDyum0dsEnXkHK0hJeBScj4fzIV3OL/f4Demn?= =?us-ascii?q?j1S2jDhr3+zGPqHmApjVMHfDiK3ufax8605H0wcz1cpQ54hVCrEaOPLzXlX+u8?= =?us-ascii?q?DGARMjNAy02ennAs1n1owCQWKPHrOZMKTKvF+G/OIgOe+Ma5MUuDbmMPUl4ubu?= =?us-ascii?q?jX4glV8Gc6ipxoEbaHeiHvRpO0+Ze2bjgs8dEWcWuQozVO/qh0eBUT5Uena/RK?= =?us-ascii?q?E86Ss4CIKhEIfPXIetgKaO3C2jBJ1ZenhGCkyQEXfvb4iLQeoDaDiTIsB/iDwJ?= =?us-ascii?q?TqKuRJMk1R20sw/60bVnJPLO+iIErZLjyMR15+rLmBEy6zN0C8Cd02aWQmFwg2?= =?us-ascii?q?MIWzg23KVlrkBnzVeDy6d4ieRCFdNP//NJThs6NZnEwuxhBdDyQAXBfsyVSFu9?= =?us-ascii?q?WdWmBzYxT9w0w9AUZUZxAdOigQ7f3yCyGb8ai6SLBIAo8qLbx3XwKdxyy3La1K?= =?us-ascii?q?Y/lVkmWdBCNXO4ia5l7AfTGovJn1+el6aweqQWxDTN+3ubzWqSoEFYVxZ9UbnY?= =?us-ascii?q?Un8CZ0vZt9D561jeQL+pDLQoLhFOydWeKqdQbN3mk0lGTu/5ONvCe2Kxh3uwBR?= =?us-ascii?q?GQy7OKbYrqf2Ed0zvGCEUfiQ8c42yGNQ8kCiemuWLeAyRkFUjzbEP07el+tHS7?= =?us-ascii?q?Q1cpwA6Qc01uzaS6+hAahPGHV/wT3qgLuD09qzpqBlaxxdTWBMScpwB5ZqVTfc?= =?us-ascii?q?s94Etb1WLerwF9IJ2gILx+hl4ZaQR7pV/h1xVwCoVGnsgnt3cqzAt0Ka2CylNB?= =?us-ascii?q?cCmU3ZfqOr3YMmPy5gyga7bK2lHC19ab4qMP6PUjq1X/pQ2pDVQt83Fm09lTzn?= =?us-ascii?q?ud6Y7HDBEKUZLwVEY39gR1p6rAbik7+YzUyWVmMbOovT/ax9IpGOwlxw66f9dY?= =?us-ascii?q?NKOEEBH9E9cGCMipJu0ngEOpbg8YM+BJ7qI0ONmmd/Se0q6xIOlghC6mjXhA4I?= =?us-ascii?q?1lykKD7Td8SurS05kf2f2XxQyHVzPgjFemtMD6goVEaS0UHmq41SfoHohRabNu?= =?us-ascii?q?fYwTE2ehP9W3xslih57qQ3NY8VqjC0oY18+vYheScULy3QlU1UsJu3yrgy24wC?= =?us-ascii?q?JokzsxtKqQwDTOw/j+dBoAImNLR3dtjVH3IYWvjNAVQk6obxMvlBS7+Ub23a9b?= =?us-ascii?q?pL5wL2PLW0dHYzD2L31+Uqu3rreCfchP544zvCVJVuSzfFCaRqT7oxQEzyPpB3?= =?us-ascii?q?FeyywjdzG2ppX5mAR3iHqHI3ZuqHrUYt1/xRbD5N3cXPJR0CAJRC9ihTnQHFi8?= =?us-ascii?q?MMGj/c+ImJfbruC+S2WhW4VLcSbx0IOAsDW05XVwDh25g/C8hMfnHBMn0S/gyd?= =?us-ascii?q?ZqTz7IoAznYonsyqS6K/5ocVdmBF/78cp6FZ9xnpE2hJ4OxXgQno+V8mYfkWfv?= =?us-ascii?q?LdVb3rrzbHQXSj4N397V5w3l1VZtLn2X2o35UW+dzdF5Z9mgZWMW2Dwy4NxWCK?= =?us-ascii?q?uO67xEhyR1qEKirQ3Nefh9gisdyfw25X4Vg+EGpBAtzyWFArAOGklVJirsmAqU?= =?us-ascii?q?79ClsKpYfn6vfqaq2Ep4g9+hEKmIohtAV3bhZpciAShw4916MF3W1H3z7p/reM?= =?us-ascii?q?XMbd0JrBKZiBHAgPZJKJIqivUFnzJnNnznsX0j1eE7kQRk3Yums4ifN2Vt4KW5?= =?us-ascii?q?DwZCNjHvacIf4DTtgrxansaR34GiBY9uFSkOXJfySvKoCj0Sv+z9NwmSCD08tm?= =?us-ascii?q?ubGb3HEA+Z8kdptWrPE4iwOnGZJXkZ185iRAWTJExehgAbRjM6kYI4Fg+wwMzt?= =?us-ascii?q?akB55ioe5lTgsBtD1vpoNwXjUmfYvAqocik7R4OBIxpQ7wFC+0DVPNef7u1tAS?= =?us-ascii?q?5X4IetrAuXKmyUfw5IF30GWlSYB1D/Obmj/cTP8/OGCeWkIPvOe6+BqfJFWveT?= =?us-ascii?q?352v0ZZm/yyWOcmVOnliEvs71VBZXXxgB8TZnDYPSiwQly7Xac6Uugu88DVtrs?= =?us-ascii?q?+j6PTrRB7v5YyXBrtJK9pv5Qq5gaidOO6Lnyt5MixX1o0Wyn/H1rcfx0Qeiydw?= =?us-ascii?q?eDmxCb4ArzLCTLrMmq9LCB4Wczh8NMpH76I72AlAItPUhc3u2b55lPE1DU1JVV?= =?us-ascii?q?v7msGmfcYKOX2yNEvbBEaXM7SLPSfEw87tbqOiV7Jdl+JUtwWutjadFk/sJDWD?= =?us-ascii?q?lz3yWBCoPuBAliabPAZRuIulaBZiFXDjTM76ah28KNJ3kTo2wbguinPQMm4dMC?= =?us-ascii?q?Zzc0VWob2K6iNXnPZ/Fndd4XpiKOmLhzyW7/LEKpoMt/tkHDh0nfpA4Hsm07tV?= =?us-ascii?q?8D1ERPttlSvRrt9up0+pn/KKyjpgXhpOpChEhJ6XvUViPqXZ84dPVWzC/B0T8W?= =?us-ascii?q?WaEw4KqMd9Ct3zp6BQzcDClKP1KDde7d3U+dUTB83KJ8KbKnogMQHkGDnMDAQb?= =?us-ascii?q?Sz6rMHvQh01ZkP6J8X2UoYI2qp/2mJoBUrVbTkA6FusGCkR5G9wPOJF3US0+nr?= =?us-ascii?q?6fl8MI5n2+rALNRMpAuJDHTfGSAfT1JDafk7ZEewMCwankIoQLKo37x0tiZ0Fg?= =?us-ascii?q?nIvUAErfQ8pCojd9YQ80u0hC63l+Tncu1ELiZAOt+GUTGuC0nxIsjAtxf/gt/i?= =?us-ascii?q?/241grPlrKuDcwkE4plNr4hjCRdjjxI7quUoFSCir5rFI+PY3hQwZydwGymlZk?= =?us-ascii?q?NDjcTbJLk7RgbXxriBPbuZZXBPFTV7NEYB4NyvGMfPgny05cqj+gxU5J/uvKF4?= =?us-ascii?q?dtlBYwcZ6ts3JB2xhvbNgrKqzMPKBJ1ERfhrqSvi+00eA82AEeJ1wT/2yPYy4H?= =?us-ascii?q?okoINqUhJyqz5eFj8xCNmz5ZdGgLTfoqrepg9lkhNOSY0yLgz7lDJ1i1N+yYNa?= =?us-ascii?q?OWpW7AlM+PQl4r2UMIkVRF8aJx0cc5fEqeT1ovw6eJFxQVKcrCLhlYb9FM+3jX?= =?us-ascii?q?fCaOt/jNwJ1uMoqhEeDoSPOBu7wPgkK4BgopGZoD7tgZFJm2zE7YNdvnLKICyR?= =?us-ascii?q?g15wTrPlWEA+5PeBKXkDcKuM6/zJhv3YZBPD0dB3tyMTmv7LbNugAqmOaDXMsx?= =?us-ascii?q?YnoCQosEN3c2WMqmmy5Zv3VNFyS40uMZyQeY9DDwvCLQAyfgb9B7fvebeQtsCM?= =?us-ascii?q?2q+TU466W2iVnX/YvQJ27kL9Rvod7P5v0EqJmZEf9USqN9s0jEkYlCW3OqS3LP?= =?us-ascii?q?EcKyJ5XocYYsad30BWqkXVOnjjI0T8HxPNGrLqeSmgznXodUv5Od3Dw6O8+9Cy?= =?us-ascii?q?sSGxFuqOEf/Kh8fxEMY4InYR70sAQzL7ewLxme0ti1WWmiNCVWQOdFzeWhfbNX?= =?us-ascii?q?1SotYvW9yHs6QZEw1/O3/lIVRJEWkhHewu6uZ4ZDUSjyHnxdfxvApS8immd8KO?= =?us-ascii?q?k92eY/zwnOsVUGNDCLbuNpYnRev94gHVOSPWl2Cm0gSl+Gi4rD4xKj37AV/ytZ?= =?us-ascii?q?hNZayfRLvmXksJLDZzyhQ7CkqZLQsyU8d9cmuLFxPZblIsSYqJPUhibfQ4XIsg?= =?us-ascii?q?2ZTC66EOJXmsJNLy1FW/RIlmQlOMMctYpH90UxSt80J6ZTB6k0urCqdT1kADYO?= =?us-ascii?q?wi8bTYyPwCcPjfu727vekheQcYotMAYYsJpcntQdUzR6YiQEpK+sT4/WjXOLSn?= =?us-ascii?q?AXIAcP6gRB/BgAmZVqfuDi+4XFV4NMyyRMrPJqTCTLEpho9130SmGSgFj4R/Wh?= =?us-ascii?q?k/Cn3Q1I1vLs18MXWBhhBkhB3+xWjFcnKKlrK6kMuY7Hqj+JelnhvG33zeumJV?= =?us-ascii?q?9RxNbVd13kFoXFrnbzXTcG9X0SW4BP1GnVFY4OnAphdKYruFJMLZioe0rk+zMk?= =?us-ascii?q?x4VpH7y5Vc+xxFYotncGSDm0HNVfEe1mt0jXWDJ9aZCxtJrlI4lSQnNX+JCFsV?= =?us-ascii?q?hZilhtMyijxZpfMMxN4z8MXDlToTqGpteyTtNM2dNuBZ8WPth/o2v9GL9DOJWJ?= =?us-ascii?q?rH02oKbgynnF+z0nsVe6wzuyG6mkT+JZ4WIeGwMpJ3iApUk1Fecs9Hnd8kzVuF?= =?us-ascii?q?Bu4+hbHqSPjVl2oDtlApBOATNJ2Gu5L1hvSXlJqP9WKKLLfMxAW/MyfwOgOwQi?= =?us-ascii?q?Ff462EyE5UF0km3jYyNosgtV5jvQUBQqWikNmrfihzkepd+9OTMATJJIdzohZT?= =?us-ascii?q?/fKw2HgSBXoApfa0ZyVpAbBdZK5aoW0pZK8crZV0msMz0FUwJ/OQ4i1/pQi1JD?= =?us-ascii?q?ul2CeS/BFQqoaerPshpvcMiKos6mMOj18QVaho7pq+0366IDR3i6lgK3WtDes5?= =?us-ascii?q?XwttuUuUuSbK34KfGzYWfdTDjQihC9na0kAIfX8CjTKgVbN4J3yX4jYZj/F2HH?= =?us-ascii?q?IwhJJ6UGKEVFT6x6b8tJovxCbc9+ZKkJ4bNtBg6ARh73AIyvt+VGIUzOSjTCNC?= =?us-ascii?q?iB6eu/oZ/J7bPBV+fgYNCMx2zdTKJzJJt67iP7G7jy249E5kX2wutt9l99SVXe?= =?us-ascii?q?LyCBtsruKR0W68S5a0viuoEpHSnMD5dukXrtwUVAeNQLQyGw95QY0pxZ4m7qSe?= =?us-ascii?q?1kykjzrPFS97585IYq5bBm09y5KrrUKftAq0NnBQKUBgpy/JU3HGd/X3xRYvMW?= =?us-ascii?q?KPrJf6QWl9ruq+fsF6wT8hKV5fdUad7aJ0HFhsm/Cy2TSR1ekwcHsj4WNAyc1+?= =?us-ascii?q?SKm6VsU8aqufD52l4x41i5NhMGzqpi5YGK+qqSo+/YcgXewKMYWqfwQMPztbMs?= =?us-ascii?q?t1mU5fI6iL4EYnZ1bBG/EOgBSs4dwX/tzaYuzS83EsPDGbfg9ORCV3I/kDLggY?= =?us-ascii?q?pyH04KGvMOALqE4Zhennoim+PHLNEWdbpCmmmXHx6+DrAC0WKr6zeQIGR9hBHO?= =?us-ascii?q?0g3/QWS37FDsti90WyrMz9DkkkpOTbm6HkJSUiWmOENitzOPJgXovsLtuasp9E?= =?us-ascii?q?E2LnDktNWVmWS9IrxXG9PwJMeAISg0o1Ial4YxScCu2Y8FH9q9PNYR/2tkYvvY?= =?us-ascii?q?9WyrjzdLo71biIrG/sGV5vLXEGGkj62BrrWAxCtVynYmsl4i7dCgLOvB58WQQ/?= =?us-ascii?q?Sv1WYeUTtwuxfbUx6ysLzboEgeOVaX30fThIwKItZZ0GE91kHi+ucjRdUz+xta?= =?us-ascii?q?FovbaPMNuzfzOCDswVmFf9I3VzOR0z9WHlLzDVl3Bqw82GbxvMLGi3jQ/UEnSZ?= =?us-ascii?q?dqe0zhmxN3E50yKVgx51gP3ioDDQ8NZAiZDLGpAEToNo4EWlYDaBuZxri6e6E3?= =?us-ascii?q?3UJpzrOp+uDTcfR2B7AROfZFkg6OgF9bF4oXsawfWr1zYUNS+bXMpgf8F4joQe?= =?us-ascii?q?TpmWA3Nf2vTcBQ6doZuGc64gajWxqg7o9O4K0aiJCTeK9Le5rMvMFg70d//zEP?= =?us-ascii?q?ayhNjQNjgBO+TO8Tuvrs4sXBsJqv8OahTrwhR+IN9xg7H25+lYf/gEg/odHL0O?= =?us-ascii?q?dRUpXVhp7j8A9RI36LtoHa0wN/KeYXMIKkYrJg93QBJygDKHMDJsKWZOMg4yBx?= =?us-ascii?q?MDXS6VtCAtkPZd8CP8rChxpUikv3V7FX7MbbHUWYC4hrfcAy82X30Cw18Yc7Uu?= =?us-ascii?q?v49D+2P47Q71VXMPNFkiphj8/NpOkawfrTFCgY+2KZZAJvwiOf0ZWNDej//fmU?= =?us-ascii?q?wtHOS1wGBjI2U5taJDea9gyoXPC1m4v1UgOU8cLzhJM+dF6OSXyxhqsFr71MHf?= =?us-ascii?q?RGiirlwjhUDpr1iO6Ns9qw9GtXsUVKEIlt4h3DBKVfOZJ7NRPjlsa1Qkh8By3/?= =?us-ascii?q?eNzbdxc1vOqZ2P0M4uVkOEfkY48UPA4Ewarg6XVJVgtuVKL2vlGBUOIUY9tmTu?= =?us-ascii?q?/Ern9L5o97Lq8PPUKSpJr0oTdUplE2BxUpaLwrrjBAcEnBghFVUb7uuLEckgsc?= =?us-ascii?q?TcJ5uUhUFGK/JG0+/CHHWb1IgqeeDvIV8zOTTrEBUkhzPSN+Rgm62JNwdLezmv?= =?us-ascii?q?BHqGxGlDtnoPc2yzxmWAe8uSr0qqIP3jIg+Le4uC8dtnxFSuWejjrHCFRCzPQM?= =?us-ascii?q?lqccCHfi5EeiYHkCcov9+r1nKtnh9YU75XQwfwkjdTUcXeu8EyHwk7+IAouXvd?= =?us-ascii?q?Jdmh6CosPOYKS3LSgPK7s9yBXjR2Nn3gjZhhZo/3MBQi+84988OIW9JcElyzKq?= =?us-ascii?q?GWfFelYM7KdJvdD/tFERSus5d09hzH9l0seZWi0HXNbPFHotjgg4dWVEd4pO6R?= =?us-ascii?q?AeF6kvjDeHoK1G/gUPbTfPFYSl/IjQktvS1Xk7U9hq2nrcpreZiZMyzH1lh9R0?= =?us-ascii?q?4zaMuHQSd+3YS8hsAnzy1odD1+PzfPCtsuEbSIt81rutSvgCMtOs+WGuwpVlRl?= =?us-ascii?q?elxqgCH1q+KOID2rbbUyK+RG2EWOSEb2uMkCg9MkLo4xmnMEE3Yt9Qr0AhKuvC?= =?us-ascii?q?moJclwr5XLNxRyWQplzbzGs4POMYbQ02u4CnewoUQ+4XfeScI/YhwOEmAlsWc3?= =?us-ascii?q?DJBTd2C/OxsVO1h4d0JXNg4VnhbOT29gDmN8eSGgUaEYHEs5F94/u6RniOOXV4?= =?us-ascii?q?1h19IFF09/vDF1Q2ruJca5GRndzKiNRh3+8FcPNtMSMmt94WnYJj7pKU39mWfh?= =?us-ascii?q?HLyZbyPsrVovmeA/3Q1UgqfXtaUrUBawPv+4o6JsI5W6HUHbZBsxQTG6w6QJ05?= =?us-ascii?q?N2jv76x1LQJzcgvUZLuqmMnqovyEaoFTp3/M4VI6ND3ctAEbyvyoUQx7aIinh3?= =?us-ascii?q?XuIJAwQTJBqsdiCgB9EYtKGsMAsxCnDICOlKG8kd+x9Ftwu/UWvqroFvDKyNO5?= =?us-ascii?q?0p1/XphC/0yLPSreC7dwj0Rgj+Synu3A3YfrBcPlY9MEW/BxQnTZZb/eAoW/Nj?= =?us-ascii?q?WON9r7e05C7bGRy6p5UhGLayDiQ6qGtTGrNOl+4Uol1IN0ZuzTwyIx77vDwtv9?= =?us-ascii?q?e3lbpju/rX6OLJZf6F3KBerDXxNbUPaF9GdlHbYLbYvv7+oOMMYtwN6b4wVp6z?= =?us-ascii?q?RCysSFKbC7rkDQwkJ7aY7bLEzx1iYiR4YKJBW/MU0xgW7WrXjTDmhcLsi6Jsl3?= =?us-ascii?q?ntmVFgbi6lJymW4zfG5BHHTnRdOKNmgG1MKyfgqK9BhED9wbhe64ZVY4trGuSe?= =?us-ascii?q?lvIphFneSqtK4bkdtyKiDPXc5aMDvKIL9wIDVREv3FpEI0bR4cr7g1RoA1aICL?= =?us-ascii?q?IEwdLEiAySLyzQ3F0UDvadys1aCJLzgS8nVGybLFzDdNqxO+ufaDjc3pSKrZY4?= =?us-ascii?q?3uXP7OLColUSmXRTYoHkaq/leroOEJvOeeIWcDolAUZT+SCAETpqBzt9TQCHHc?= =?us-ascii?q?mfF7dp0QmP+aQzzwSDF/lKcqCSZEr1uDQ+ACFQbIa3/sm3RcuAi4Kf9X/HLlcq?= =?us-ascii?q?eUxqxLVOwKGoFMaOGWQ8PEefBCIDcljjcZOOO7f93GtbY500nIQHAfE6bS8V2R?= =?us-ascii?q?Uk+WTuabxzLxUoUfp5I0tTYw+tLMgi93FLzFMKidpz6p8o64ij2YuerYVmQ2bE?= =?us-ascii?q?w1mv8CAHefzxlaMm0EDc8auF31SK6ae0lMzG4pif5p2xIUYwRzXHhu3WFXkfu+?= =?us-ascii?q?AcBZV0AbjHmvQPwHa1B3Cik8/UmU7Q3uedYAo9zcR3dC9rsQTooQNPso6I7ROK?= =?us-ascii?q?sU2/sp2SxprzE0syWaFVNSkhyK/7DWHK1i2r0RrVU/qup7WkCJXiP3bnnMyo3g?= =?us-ascii?q?DdlGgyhpvyPKzc3R69txOaNaqocxO1IDBSZ7N5iJ5jxaeX3l0wu1+RCgFXKRJy?= =?us-ascii?q?xPs2VDHjAMausgl7wzix3PbNuUrBnIug=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2F0BAASeDxY/wHyM5BeGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgw0BAQEBAR+BSxC7VSaHd1MBAQEBAQEBAQIBAl8ogjMaghwCBAECJBMUI?= =?us-ascii?q?AsDAwkBARcpCAgDAS0VEQ4LBRgEiEyudT0qAosVAQsBJI80EQFohHceBY9time?= =?us-ascii?q?RBgKBcIgsDIYISZE0VV4XAhEMIYM3HIF7VIVSDRcHghABAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 28 Nov 2016 18:34:23 +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 uASIXnSP025471; Mon, 28 Nov 2016 13:33:55 -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 uASIQQ4O089162 for ; Mon, 28 Nov 2016 13:26:26 -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 uASIQP6g022887; Mon, 28 Nov 2016 13:26:26 -0500 From: Stephen Smalley To: selinux@tycho.nsa.gov Subject: [PATCH 1/2 v2] libsepol: do not write object_r types to policy file Date: Mon, 28 Nov 2016 13:29:17 -0500 Message-Id: <1480357758-7025-2-git-send-email-sds@tycho.nsa.gov> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1480357758-7025-1-git-send-email-sds@tycho.nsa.gov> References: <1480357758-7025-1-git-send-email-sds@tycho.nsa.gov> 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 Originally object_r's types bitmap was empty since we exempt object_r from the normal user-role and role-type checks. CIL however sets object_r's types to all types to avoid special case logic. However, the kernel does not load object_r types from the policy file; it predefines object_r and merely validates that the object_r definition in the policy has the expected value. Thus, the actual policy file and the /sys/fs/selinux/policy file were differing in their object_r entry. Fix this by not writing object_r's types to the policy file, since they are ignored by the kernel anyway. Signed-off-by: Stephen Smalley --- libsepol/src/write.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/libsepol/src/write.c b/libsepol/src/write.c index d87ea61..fbc6dad 100644 --- a/libsepol/src/write.c +++ b/libsepol/src/write.c @@ -1078,8 +1078,25 @@ static int role_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr) if (ebitmap_write(&role->dominates, fp)) return POLICYDB_ERROR; if (p->policy_type == POLICY_KERN) { - if (ebitmap_write(&role->types.types, fp)) - return POLICYDB_ERROR; + if (role->s.value == OBJECT_R_VAL) { + /* + * CIL populates object_r's types map + * rather than handling it as a special case. + * However, this creates an inconsistency with + * the kernel policy read from /sys/fs/selinux/policy + * because the kernel ignores everything except for + * object_r's value from the policy file. + * Make them consistent by writing an empty + * ebitmap instead. + */ + ebitmap_t empty; + ebitmap_init(&empty); + if (ebitmap_write(&empty, fp)) + return POLICYDB_ERROR; + } else { + if (ebitmap_write(&role->types.types, fp)) + return POLICYDB_ERROR; + } } else { if (type_set_write(&role->types, fp)) return POLICYDB_ERROR;