From patchwork Fri Nov 18 15:23:09 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Smalley X-Patchwork-Id: 9436951 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 940F960237 for ; Fri, 18 Nov 2016 15:21:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 84B982995B for ; Fri, 18 Nov 2016 15:21:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7819E2995D; Fri, 18 Nov 2016 15:21:40 +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 (emsm-gh1-uea10.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 C32022995B for ; Fri, 18 Nov 2016 15:21:39 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,510,1473120000"; d="scan'208";a="1100193" IronPort-PHdr: =?us-ascii?q?9a23=3ACuWEXxH7iGu4F8Jry080v51GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ79pMi7bnLW6fgltlLVR4KTs6sC0LuN9fmwEjJRqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRo?= =?us-ascii?q?LerpBIHSk9631+ev8JHPfglEnjSwbLd8IRmssAnctcYajIpmJ60s1hbHv3xEdv?= =?us-ascii?q?hMy2h1P1yThRH85smx/J5n7Stdvu8q+tBDX6vnYak2VKRUAzs6PW874s3rrgTD?= =?us-ascii?q?QhCU5nQASGUWkwFHDBbD4RrnQ5r+qCr6tu562CmHIc37SK0/VDq+46t3ThLjlS?= =?us-ascii?q?kINyQ98GrKlMJ+iqxVqw+lqxBm3YLYfISZOfxjda3fYNwaX3JMUMZPWSJcDI2y?= =?us-ascii?q?bIwBD/IDMOpFoYTyqEcBoxSgCgm3H+7v1j1Fi2Xq0aAgz+gtDwfL1xEgEdIUt3?= =?us-ascii?q?TUqc34OroOUe+r1KnIzSvMb/VL0jng7YjHaBQhofWSUrNwbMHczlIvGB7ejliL?= =?us-ascii?q?tYzkPy+a1uQKs2SB6epgTvigh3QoqwF2vDii38EhgZTKiIIN0l3I6Cp0zYkvKd?= =?us-ascii?q?C4VUJ3e8CoHZROuy2AKod7RN4pTXtytyYg0LIGvIa2fC0NyJs62RHSc+eHc42U?= =?us-ascii?q?4hL7U+aRPCt4iGpleL2hgxay9lCtyvHmWcmu0VZKszFFnsPQtnENyxPT6s+HRu?= =?us-ascii?q?F7/ki9wjaAyxrf6uRFIUAwjabbKpghzaAslpcLrEjOESD7lF/2gaOLbEko5Oel?= =?us-ascii?q?5/r9brn7vpOcMpV7igD6MqQggMy/BuE4PxAVX2eF/eS81bvj/VD2QblTlfI2lb?= =?us-ascii?q?TZsJbGKssFva60GBNV04Y/5Ba/CDeqytIYnWIdI15fdxKHiJbpN0nUIP/kFfe/?= =?us-ascii?q?n0iskDBzyv/dJbLtBZHNLnnYkLf9ZrZx8VVcxxQvwtxF/JJbFLUBIPP1Wk/su9?= =?us-ascii?q?3VFQM2Mgyuw+b6E9VxzI0fVniTAq+CN6PSt0WE5uU1I+mDfIUVoiryK+A55/7y?= =?us-ascii?q?in80gUESfbGz0psNaXC4Be9rI12Dbnr2g9cBCn8Kvg4kQ+P2llKOSzlTZ2y9X6?= =?us-ascii?q?gk/DE0FJqmDZvfRoCqmLGA0ia7HplTZm9YEFCBCnnoeJuZVPcLciKdONdhkiYD?= =?us-ascii?q?VbijVYAuyQ2uuBX9y7p9Iere4jcYuo771Nhp++3Tkgk/9TJuD8uH1WGCU2B0nn?= =?us-ascii?q?gTSj8zxKB/oFVxykyN0KhjmfBYEsZT5/xRWAcgKZHc1/B6C8z1Wg/ZfdeGUlWm?= =?us-ascii?q?QtK7ATwqTdI+2dwOY0FgG9m4iRDDxSWqCacPl7OXHJw07r7c33/pKsln1nnGzq?= =?us-ascii?q?ghgEc8QsZUL2Kpmqt/+xLUB47TnEWTj7yqergE3C7R6GeDynKDs11CXw50T6rF?= =?us-ascii?q?RmwfZ0vRrdni/UPNU76uBqohMgtdyM6NMLFGatv3glVaXP3jIsjRY3qtm2esAh?= =?us-ascii?q?aF3rOMY5Tue2UZ2yXQE0wEkx0P/XaBMAgxHD2to2XEDDxhDVjveV/j8fFiqHOn?= =?us-ascii?q?SU851xqKb0N717qy4R4VmeeRS+gV3rIDtiYhri97HFCn09LQFdWAuxJrfL9Abt?= =?us-ascii?q?Ml/FdHyWXZuhRzP5O6K6BimkARcx5sv071yRV4FJ9AntM3rHMv1gZyLriY0FxZ?= =?us-ascii?q?fTOCwZ/wIqHXKnX1/B23d67Zx0zR0NeM9acL8/k3t1LjvAS1GUU46HVnz8NZ03?= =?us-ascii?q?2C6ZXWFAASS47+Ul4r9xhmoLHXei8954LQ1X1oL6a0qSTP1Mg3C+s/zRasZdBf?= =?us-ascii?q?MLmLFAXqCc0VG9CuKPA2m1iudh8LIfpd9LIuMMy4efuH17WmM/pgnD28l2RH/J?= =?us-ascii?q?5y0liW+yp6VOHIw44Pw+uE0QufSzf8kFChv9jpmYBFeT4SAm2/yTL+CIFNZq1y?= =?us-ascii?q?eoALCWi1Ls2zx9V+gYTiW2Rf9FK5AFMGwsCpcwKIb1PhxQ1QyVgXoXu/lCu8zj?= =?us-ascii?q?x0iC0porOE3CPQx+TidRwHOnNERWR5llfsOYm0j9YbXEe0dAgljh2l6ljmx6JD?= =?us-ascii?q?vqRwM3HTQVtUfyjxN2xiSKywtr6GY8FR8pMnrSJXUeqnbFCBV77yvwAa3znkH2?= =?us-ascii?q?tEyzAxbyuqtYnhnxxmlGKdK25+rGLDdsFtwRfT/sbTSeRK0ToBQCl4lT7XBl6n?= =?us-ascii?q?Mtms4dmUkZDDvfykW2KnSJJTbTHhzZmcuyuj+W1qHRq/kui2mt3jCAQ1zyn72s?= =?us-ascii?q?J0VSrWqBb8Zpfk176gPeJhYEZoGEf269BmFYFmjoswmJYQ1GAZhpqL+3oHinz+?= =?us-ascii?q?MdZF1qL4d3oNQyAEw8LP7Ajiwk1jIWqDx5jlWXWF3sthe966b3sO2i0n8sBKDL?= =?us-ascii?q?mb7KRekitzvlq3sxjRbONgnjcG1/Qu8mUaj/sSuAoq0yWdGKwdEldWPSzrjRSI?= =?us-ascii?q?4M6xoL9RZGmxbbi6zFB+ksy5DLGevgFcX270eokkHSBt9ch/LlTM32Dz6o3+ft?= =?us-ascii?q?nfc84TvAWOkxjcl+hVNI4xlv0SiCp/I239oHklxvUnghxvwZG7vJGLK2t386K/?= =?us-ascii?q?GBJYMSf1Z8wL8DH3kalehtqW35yoHph5GTUKXJ/oQuyzHTIXsvTnOQiOHyMgqn?= =?us-ascii?q?eHGbrfGgqf51l8o3LJDZ+rK2mdJGMFwtV6WBmdOEtfjRgaXDogmJ45CgeqxMn6?= =?us-ascii?q?fUd3+D8e+1n4qgFWxeJwLRn/VWXfqxm0ZTcoUpSfKwBW7g5a7UfPLcOe9v5zHz?= =?us-ascii?q?1f/pC5owyNKnCUZx5IDGERRkyEAEvuPr+w6tnc6OiXGvCxL+PQbrmUr+xRSeuI?= =?us-ascii?q?z4q10oR65zaMKtmPPn56AvIm3EpMR2t0FNnfmzoVUSAXkDjNb8GDrhem5iJ3tt?= =?us-ascii?q?y/8OjsWA/3/4uAFqZdPM5g+xCzjqaPLeiQizhlKTxAzJMD2WfIyKQD3F4Vkyxu?= =?us-ascii?q?bSOhELoauS7IVq3QnqhXDh4AZixpKMRI6rgw3g5XOc7Uktn1zKJ3juYpC1dZUl?= =?us-ascii?q?zsgsepZdYQLGGlLFPKH0iLNLWcJT3Q38H3b6K8SbtKg+VSqxKwuCyUE0v5MjSE?= =?us-ascii?q?jTnpWAilMftQgyGDIBxepIa9fw5wBmj4Ut3pcBK7MMVtgj0o2rA0nWnFNW0BMT?= =?us-ascii?q?hmaUxBtLmQ7T5egvplAWxN92ZlLe6HmyeZ6OnUMJAWvuV3Ai5sjeJV/Gw6y6dJ?= =?us-ascii?q?7CFDXPF6gyrSrtFpo1GgieSA1yRoXwFPqjlRgoKHp0JiOb/W9pNYQ3bL4AoN7X?= =?us-ascii?q?mMCxQNv9ZqENLvtLpOytfRj6/zLy9C/MzS/csZHcfUKcaHP2EmMRvmAjLUCxEF?= =?us-ascii?q?TTGzP2HFm0NdiO2S9mGSrpUitpjsn58ORqVBVFwyF/IVFEJlE8cYIJdwQDwkkq?= =?us-ascii?q?WWg9IP5Xq7sBbeXt5avozdWvKUH/rvNC6TjaNYaBsQ3bP4MYMTO5X720x+all6?= =?us-ascii?q?m4HKFFDLXd1Wpy1hbxM0oF9T/3RkSW0zwU3lYBu34HAPDf60ggI2igxmbOQr6j?= =?us-ascii?q?jj+VM3K0HJpCs3i0kxhc/qgTaKcD7yLae8R4dWBDTot0IpKJP0Xx51bRGunUxj?= =?us-ascii?q?LDrEXaxej6B+em9xkg/TpZtPFOVHQq1Feh8f2PaXZ/sw0VRGtCqmxVVL5e3bBp?= =?us-ascii?q?t+jAEqa4Kjr2pc2wJ/a944PbHfK7BXzlhRm62OpTSl2forwA8EIEYM/niSdzAU?= =?us-ascii?q?t0wVLLkmJjao/+x25QyEhTRDZHAGV+A2rfJy6kM9J+OAwjru075ZNE++KvefIL?= =?us-ascii?q?mfu2jcks6IWUg92VkUmElA57R21t0jc0WMXUA10LSRDwgJNdbFKQxNa8pS82LT?= =?us-ascii?q?cjiIseTMxpJ4JIq9Fub1TeOUs6YUmE2kFh4zH4sQ9sQBAoWs0EbAIMf8MrEFzR?= =?us-ascii?q?Qt5AL2JFSKF/lGZBWLkDIbrM6l1593wZNRJjcDDmVhKS+3/KrYphc2gPqfW9c7?= =?us-ascii?q?emoVUZcBNnIxXs26hzNVsm9eDDapyOIZyQmD7zj6pijKCjnzccZjbu+OZRxwEN?= =?us-ascii?q?G25Sk/86+uhF7U6JXfJ3v1NdJ+ut/P8u4aqJGHC+tIQrVntUfThZVYTWSwU2HT?= =?us-ascii?q?Cd61O4Twa440YNzoC3a6V1u/iy41T8bxJ9uiM6mIgAHySolPqoWb2i4sNdOlHD?= =?us-ascii?q?EEBxhwv/0D5L57ZQAbbJo7ewTntwIiN6GkIQeY1duvQ2CxKTtWUfZfzOO6Z6BJ?= =?us-ascii?q?wCo2dOO6zmUvTo0ixemt7UENXI0Kjg3Zxfu7fYZeVSnzFWBDdArXoCo4l25hNu?= =?us-ascii?q?E0wugl2x7HqlgcPCqNdOBwZmxEosswBVWMLnVqEmA4XUOTjZLf4g6w2LAf5zBS?= =?us-ascii?q?kMhS0eBeqnfxo4Hfbyy2WKyws5rVqSohYcIho61rPozpOtGGu4/GnjzDUJnQtR?= =?us-ascii?q?WIUDS8F/pbhtdQICVYQP1TmW89IMIIpJBP5FY2WMolO7NPD6wsqaywZjp/ES4e?= =?us-ascii?q?1ykZWJ2c3DYamOezx6PalguMcJQlKBELrJdCjcEBXCNtfiweo6ujV4HXl2CaUG?= =?us-ascii?q?gLPBkc4hhM5A4akY9wZO/l6pLSTJBQ0z5Wv+50UizTG5ly7VT7UGaWjkPjRfW9?= =?us-ascii?q?ieymxxxSw+zo0tkaXh5/Bkxdx+dZlksoNLF3JbMfvpTPsjOSc0P1on7twvO8JF?= =?us-ascii?q?ZN0c3Ua0H4DI3duGv8SCIc4mcbRYpOyHHZDpkSkhZ5Z7wwpFpQOo+qYED+6CI4?= =?us-ascii?q?x45xBbm3Sdirx0o5rXYBXyqrHcBNBP1msFLWXT1lYoqkqJb+NpVTXGBf5oOSp0?= =?us-ascii?q?1ekEV3PC6z0YBcJN1V4j4QQDhPpi2QvMO1SM1Hw8B2FZENItB7u3fzA65EPZ+R?= =?us-ascii?q?o3oturPx1nDZ4Tc8sEyhxDWyHa+4QPhV/2oEGgUmP26esFUgD/Mw8mfO9VDAqk?= =?us-ascii?q?p7//1GBriJl0lxoy1wHpFPBjZIyXCqNE5/TH9YvOVGMK7VadBTQ+EuZR+zPBwz?= =?us-ascii?q?DeIm30uM/UxvgXf1fylyuRBA9yDbQQY0STEfgq3xlj0GtsGnJTgaRopIbTo7dS?= =?us-ascii?q?fKMQablj1MsRlCdU5qQ4gZDchB+74Fx4tY5M3CSVyjKSsdRhxtKho40eZDlU5E?= =?us-ascii?q?qEiYeSfdAhSmdfnRqB16ZsaRo9C3I/vn5gtHjZnnsO8g/aUZW3KmgRGtQczZr4?= =?us-ascii?q?LktN2KsVWBebzlPOKien/OUiLMjQyuirg5FZXK+TbcMBZDIZlg1XUkeYThCXLM?= =?us-ascii?q?PRlePK0bKVZUWbx4ZNlbrO1XfNNreKEM+aBxHB2HXQ/vFJaprPZYMlbZXS7eID?= =?us-ascii?q?mZ8uyjvYLT6qTQSfL+acORx3bIWb53M4x+6Tn8Bbflz5FS9Vbx2vhw6Ex2U17G?= =?us-ascii?q?PD6drN75PAME+NGidlf+vp0uBT7WGIxwkGb3yU5da8oaWDaq8JMFyJND9Hn/V+?= =?us-ascii?q?R40lTpsOJI87lo844346pmyc2sP6fdNexasVN7AhiTHghq6o8tD3ZhSG9MeeIR?= =?us-ascii?q?NfPRfbgDjc/0teD3FqsX6BmL9OxFc9fHIFvBmsanADGGVRNEhBsBqSIdLgaE0v?= =?us-ascii?q?6Kgat0ScK7qujlxkIi+UKxIwUAzL9z+YeE4baHq/XPbxTP17QEXLblRt/rpLQ2?= =?us-ascii?q?p0yS/eEklKIJemFtYQ2oCvIdVskGxmfk168q0zkhE8beH7Lk5P5DVm42njP6lJ?= =?us-ascii?q?B7BFUaAPQUHaCE/Y5GhGc3h/TZNsEKcqBFgmuPFwSrErkMyX6x7CuYPXdqjwrS?= =?us-ascii?q?0x7qR2Oz91j2oTV+QSTS09fpilBVWaWvBUdOQyqpPld1sDySPArpsNr3vbo67E?= =?us-ascii?q?QtP2P5qt2Cj2qhN6lRH8HlI9ycOyY0rkoNjJItXtyvxZwbGd2lLdcX9HFzdfre?= =?us-ascii?q?62WukyNboqdHgYTe4tuP9fXMAXmglbCapKmRxDBF0Hg3o0sz6te6NvHB/9eKWe?= =?us-ascii?q?in134NTydjvAvMRxu1qrvdr1AINkyEzlzGmIkLPt5D23k3yF3m5eYkQNIp9wVe?= =?us-ascii?q?DZzMZ/UcqjDvIDH020qQY8orVimC1DtaBlb1EUJ9GKU8w2/wstzGmmrX+10yXI?= =?us-ascii?q?Zwb1bnhRt1D4omNU0t9EIbwi0ZEQgCcRqbFq2nBVz5LYsYUkgOcRGH3Lykdacy?= =?us-ascii?q?2k183Lev6fTcbeNiAKoNLe5dgRSSnFhaAJ0WtaweQLRge1BD8K7XogniC4f5UP?= =?us-ascii?q?jgiXU/K+e5QsZE/sAFr3Ei+BqwRwK86Zdf6LYWkIuIebRaYZfWs8Bz8Vxn6CUU?= =?us-ascii?q?diNXnhhwlRy5Xv4HpOz55NjUroao4P60VKkxX+UX6wQ0B2NmgpvygVAjpMra1+?= =?us-ascii?q?JCRYzVl4v/6gFNI3iFuIrA1RlzN/YOIZqxfLl873UHOzQeJ3UWMNqXavgz+TVi?= =?us-ascii?q?PynI6lxZHMwMec0XM9bXlQBTkE3pV6lZ9tDHFV+AF4dza8co4nLsxzA06ps9XP?= =?us-ascii?q?zv6D23JZDD91FCJe5DjCF3md3eo+ga3OTdBzIK4XmDbBh12DmNx4OKC/bq8uWG?= =?us-ascii?q?0MvUWE8eHi4qT4ddIyKP+RS9SeqpiJrpUg2V6sjpgJI9bU6QXWK+nKAEsqZKDO?= =?us-ascii?q?5BhT723iBEGYDpm/2Vs9St6GxNtl1ECopz7gPKGL9ZPpplPRT0jM6rRlJzBiHn?= =?us-ascii?q?YsHbagIuuPaKxucL++h+K1H+apEfIh0ezbL192FYQRZvSL75v1aZQfgeZMB8R/?= =?us-ascii?q?Pes3BZ84RgJLETPFKFvpzlsi9IqEwqAA8ucLIwoSZVdlPQkw1JW6b5o7oAigoA?= =?us-ascii?q?UdFnuU9DA3+wOHkk6zrBS6tVkLGbCOYJ/TWLUqwOT0JoPztxQxyr3pVuZ7ypnf?= =?us-ascii?q?dAvmNdgCx9pPkq0zp7RBqzoiDso7wC2Sgg+b6irjkBv2JKTvmGmSfSFVpD1OgK?= =?us-ascii?q?jbsbC3v671y8YWUMbIz24LZ9PsTs74gh43M4YRU4ZC0LRuGgBi7/jq+SBYyPqt?= =?us-ascii?q?1cjgaXuMrSdb+zMTQSNrMlxBLsW3d9yRPekA91/mUERDug7dkkJJiyOMs+ySqo?= =?us-ascii?q?HHLUdFAS7a9Tt8vxr1ELRvMsaVx92GVjztSHRioVSczNHGY1jg4kZX9Yf5JD7R?= =?us-ascii?q?8aCrQngzeJvqlA5QEUYzbUH5+7+onRg8fHw309Qsprxm7MoK2KmI8q2mV/m9xo?= =?us-ascii?q?9i6OpGgSd+vAXs9tHHj8zIFfxPf6Z/Wwr+8HSYxmyK+7XP8FKMmj9nO82I92VU?= =?us-ascii?q?+92rQeA125PfcBxrjFXSelR2mYVP+FcmeWmTY2LFLy6QOuLlIpdMdAt1U9Pffa?= =?us-ascii?q?hp5Aiw3hVqt5RiqUpV/cwm0sL+cadwYttYe8fAwKSu8RaPSGKego3vI+FEMGb2?= =?us-ascii?q?XVEituF++2rVmtkZB5O3Vg4UT6eePt8gTnMNuOBBYJCovarp9t+fygWG2NI3hg?= =?us-ascii?q?zAd9PENs7efQC0wxtvNAc5aWhdXQm9V70eseevdxMC0ypt0TlZxn6YWO1seFbw?= =?us-ascii?q?3RxI7oJd7JuviYH+Hfz0Myd2FfU7oZYgD154IhM947QbLTHrxZvRICCqg8WpAh?= =?us-ascii?q?MXn+9L1sJgNpbgHRfKi0gtXtpu+TfZRbuXnW7k4rISfHvx0DzeC0TRBlb5+0mn?= =?us-ascii?q?r+OpcwRihOr9d1EBtpAJNPG98crwqgG5OUlr+0i9uw+0NipeAHqqvxCvHP1NS8?= =?us-ascii?q?wYpxRZxa6lKRMDbWHqlrjVxvjv6ujffYzpnxFcTidMsKVehjWG7Fa6PJEZukJz?= =?us-ascii?q?KLO8L8Z1RG/KCG3LJ+SBWRazjzX7Cauy28KPVk/UI7x5R/fOrX0jMg9Knb2N/o?= =?us-ascii?q?aGFAuiejrGKGNIdF7FPUG+PSRRRURuSZ8Gx9B60YcZP09PsSMdwl2NWc5whz7D?= =?us-ascii?q?Jf0MqKOqShqk7M2llndZLAN0bp2jw2WY8NIBilNkssm2DZoGzHAXtANsikNdVt?= =?us-ascii?q?gNGNAxz2+UZxnWAtZmhcGmvnQtufNnQb28Kgaw2Q6g1LF8wMkvW0eUEmrK2yT/?= =?us-ascii?q?dnOpFeluW3u7ULi9FpKzvARMJCJSHfMKd2PiZNDuXIvFUoZh8Es6MpWoouZJmO?= =?us-ascii?q?OUUHP12axSP00wTCzVX+d8aw26aRPCYW7nJHwqrA0TdWuwa5ufeZgsvkUL3Ccp?= =?us-ascii?q?H2XfjSPzQhVjGbQzQyDEmo9U2ju/oes/qSOX0frUwMYiKOFA4TobhirdrKAW/Q?= =?us-ascii?q?nu1sZ4YHhO2cWyDsSC14k7cyBilLtUCQWfYDExfZb2P5impGpAOiPuNM/W7ib7?= =?us-ascii?q?CAyapaQfcZApFNcvKHR9vVYu5eJzMymTUCOea8YsfQr7An3VLUVWEZCbXH9EWC?= =?us-ascii?q?TE6KRfyR3zDrXYASv4guoCoo+8nQkzRxE6vSOraQuT+u/pS/jCaCtu3UTnMtbF?= =?us-ascii?q?AtgOIeHGmBxwFNJ38GC9ESuEHtRLWAZ0FK1H8yhuJuwQIMeBptXX10yHFWmuiy?= =?us-ascii?q?GtFBQ14OkGyuWOEGbExwDD4o5k+K7AjybsABtM3QXGJe6KUDSZAcLPgp74nXPr?= =?us-ascii?q?EcwPA30zJ6uCY6qTmSD0tBjgKZ9KrdBKB8xrpE5Wk85Px2W1+ATC7RcmjA0Iqp?= =?us-ascii?q?F9xAyT1ooX/6y8qH9txqYaBXo4B/HUciHTN9Jteb+ytIF27zxk/6px+mGByGKS?= =?us-ascii?q?8dpTMMIjYIMO1yyrxVqhHNI+3d5FuQuqRpk06iDQKGG/Lgw5BQIt343gW/Ly9Q?= =?us-ascii?q?eHOkEI4g+aUFr8obfa5yPdv2OFvGNAWrS1jAtg=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2ELBQAJHC9Y/wHyM5BeGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgn4OAQEBAQEfgVijKwEGl30piBBTAQEBAQEBAQECAQJfKIIzGoIjAjcUI?= =?us-ascii?q?AsDAwkCFykICAMBLRUYBwsFGASIS649KgKLLwEkhXKJPxEBhX0Fjml8imaQcgK?= =?us-ascii?q?BboR3gzOGCwKHSIoeVV0RAg8MHYU/VIYdgi0BAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 18 Nov 2016 15:21:35 +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 uAIFKFL3015865; Fri, 18 Nov 2016 10:20:37 -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 uAIFKCpm221234 for ; Fri, 18 Nov 2016 10:20:12 -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 uAIFKAYR015857; Fri, 18 Nov 2016 10:20:10 -0500 From: Stephen Smalley To: selinux@tycho.nsa.gov, paul@paul-moore.com Subject: [PATCH] selinux: keep SELinux in sync with new capability definitions Date: Fri, 18 Nov 2016 10:23:09 -0500 Message-Id: <1479482589-3889-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 When a new capability is defined, SELinux needs to be updated. Trigger a build error if a new capability is defined without corresponding update to security/selinux/include/classmap.h's COMMON_CAP2_PERMS. This is similar to BUILD_BUG_ON() guards in the SELinux nlmsgtab code to ensure that SELinux tracks new netlink message types as needed. Note that there is already a similar build guard in security/selinux/hooks.c to detect when more than 64 capabilities are defined, since that will require adding a third capability class to SELinux. A nicer way to do this would be to extend scripts/selinux/genheaders or a similar tool to auto-generate the necessary definitions and code for SELinux capability checking from include/uapi/linux/capability.h. AppArmor does something similar in its Makefile, although it only needs to generate a single table of names. That is left as future work. Signed-off-by: Stephen Smalley --- security/selinux/include/classmap.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/security/selinux/include/classmap.h b/security/selinux/include/classmap.h index 1f1f4b2..e2d4ad3a 100644 --- a/security/selinux/include/classmap.h +++ b/security/selinux/include/classmap.h @@ -24,6 +24,10 @@ #define COMMON_CAP2_PERMS "mac_override", "mac_admin", "syslog", \ "wake_alarm", "block_suspend", "audit_read" +#if CAP_LAST_CAP > CAP_AUDIT_READ +#error New capability defined, please update COMMON_CAP2_PERMS. +#endif + /* * Note: The name for any socket class should be suffixed by "socket", * and doesn't contain more than one substr of "socket".