From patchwork Tue Feb 28 14:35:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Smalley X-Patchwork-Id: 9595791 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 08824600CB for ; Tue, 28 Feb 2017 14:34:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F250926E56 for ; Tue, 28 Feb 2017 14:34:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E658A27BE5; Tue, 28 Feb 2017 14:34:32 +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 C6F8226E56 for ; Tue, 28 Feb 2017 14:34:30 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.35,219,1484006400"; d="scan'208";a="4320186" IronPort-PHdr: =?us-ascii?q?9a23=3AiKaWVRxzRemAUL/XCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1egSKvad9pjvdHbS+e9qxAeQG96KtrQe26GI7+jJYi8p2d65qncMcZhBBVcuqP?= =?us-ascii?q?49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6?= =?us-ascii?q?JvjvGo7Vks+7y/2+94fdbghMhDexe61+IRa5oQjQucQdnJdvJLs2xhbVuHVDZv?= =?us-ascii?q?5YxXlvJVKdnhb84tm/8Zt++ClOuPwv6tBNX7zic6s3UbJXAjImM3so5MLwrhnM?= =?us-ascii?q?URGP5noHXWoIlBdDHhXI4wv7Xpf1tSv6q/Z91SyHNsD4Ubw4RTKv5LplRx/yjC?= =?us-ascii?q?cMKiA3/mfZhMdtiK5XuQytqwB6z4PSfYqbNudxfrnFcN0aW2RPQ8hfWS9GDIOk?= =?us-ascii?q?bYYDEuQMMulEoIfyuVQOtgCzBRWuCe711jNFnGP60bM83u88EQ/GxgsgH9cWvX?= =?us-ascii?q?rJsNX6Kr8SUeCrw6nO0D7NcvZW1i356IjMbB8goeyHULVrccXM0kkiDB/Fj1WM?= =?us-ascii?q?pozlODOZzOINs3OB4OZ6WuKvjHAnphh3rzOyxckskpHEip8ax13L7yl0wJs5Kc?= =?us-ascii?q?emREN0f9KoCoZcuieHPIVsWMwiWXtnuCMix70Dvp60YTYFxYw8xx7ad/yHa4+I?= =?us-ascii?q?4g//VOqJITd3mnZleLWnihau60eg0Oz8VtSv0FpQsipEksXDtnAK1xDJ7MiIVu?= =?us-ascii?q?B98Vu71TaK1gDT7vlIIUEylaXFN54s2qM8m5UcvEjZHiL6hV/6gLGZe0k64OSk?= =?us-ascii?q?9vzrYrD8qZ+dM490hBv+MqMrmsGnGuQ3LAwOX2md+eSh27zv5Fb2QLJXjv0wjq?= =?us-ascii?q?bWrovaKN8Hpq+5HwBV0oEj5wy5Dze9ytsUh3YHLFVbeB6flYjmJ0nOIOzkDfe4?= =?us-ascii?q?m1mskjBrx/bcMb39ApXCNH7DnazjfbZ67U5czRA8zctD551KELEBO+j/WkjrtN?= =?us-ascii?q?zXFhU5KRC7w/77CNVh0YMTQWCPAq2DP6zOsl+I/eUvI++NZI8Lozv9Jfwl5+Ph?= =?us-ascii?q?jHAihF8de7Wp3YYNZHC/BPRmLF2TYWDwjdcZDWcKog0+QfTyiFKcSjFceXCyX6?= =?us-ascii?q?Mg5jE8E4+mDJnMSZ6zj7Cb2ye7BJJWbHhcCl+QCXfoa5mEW/AUZS2PJc9hlDoE?= =?us-ascii?q?WqW/RI8l1BGjrxX1xKR9LurT4CEYsojj1Ndt7e3JiR4y7SB0D9ia02yVUm50gn?= =?us-ascii?q?kHRyUt0a9jpkx9z0uM3rJjg/xED9BT4e1GUhsiP57G0+N6E8zyWh7GftqRSVam?= =?us-ascii?q?RMmmDi81Tt0vxt8BfVp9G8+ijx3Y2CqqG6Eal7qOBJMu86Lc22P+J8Fyynrc06?= =?us-ascii?q?khlVYmSNNVNWK6nq5/6xTTB4nRnkSZlqeqcqIc0TXI9GeH1GaOvUdYXBR2Uarf?= =?us-ascii?q?R3AfZUrWrcrn6U/YSb+hF6gnOBNbycGeMqtKdsHpjVJeSfj9INTReXixm2arBR?= =?us-ascii?q?uT3rODdpDqe2QG3CXFDEgLiRwc8micOQg5HCehrHrUDCZyGlL3f0Ps7e5+pWu1?= =?us-ascii?q?T081ywGKalNu16Cu9x4bm/OTVvQT3qgetyc5sTV0G1S90MzKBNqcvQZhe79cYd?= =?us-ascii?q?wl6lddyW3ZrxB9PoCnL616iF4eaR54v0Xy2BV2EYVNis0qrGsrzAZrMqKZ3khB?= =?us-ascii?q?eymf3ZDqNb3dMnPy8wy3a67KxlHe186b+qQV5/Q7rFXjoRqkFkk4/HVk1NlVzm?= =?us-ascii?q?GQ5pLQDAodSZjxSFo49wBmp7HGZSkw/5nb2mB2Mam1rDDCwckkC/E5xRalZdtf?= =?us-ascii?q?N7mEFADqGc0AG8euMPAqm0Subh8cIO9d7qo0MN29d/ua2K+rO/1tnCm6gmRG/o?= =?us-ascii?q?991F6M9ytmReLS2ZYK3e2Y1BOdVzjglFehrtz3mYdcaDESAGW/zSzkBIlKa612?= =?us-ascii?q?YIYLFWCuI8itydlkgJ7tQXFY/ka5B1wawM+pZQaSb1vl0A1L20QXu3unmTCkzz?= =?us-ascii?q?FviDEpqK2f3SLLw+v4choLIGhLS3d+jV30O4i7k8gaXFS0bwgujBak61z1x6xH?= =?us-ascii?q?pKthNWnTWlxFfzboIGF4SaSwq7+Cb9RI6JMyviVdSP68bkyCSr7hvxsa1DvuH3?= =?us-ascii?q?dDyz8mdjGloJH5kgdmh2KaKXZ8sGDWedpsxRvF4tzTW+JR1CIcRCZkkTnXGkS8?= =?us-ascii?q?P96x8NWSlpfDtuS+WHy6VpBIaybk05mAtCyh6W1tGx2/kOi5msf7HggizS/7y9?= =?us-ascii?q?5qWD3WrBb9fobry6O6Mfh9ckZ0BF/87Mx6Go5ln4s0hZEQ32IVho+S/XYdlmfz?= =?us-ascii?q?K9pb07rkbHURXT4L38LV4A/91U1nL3KJ3J75WmyGwsR/Y9m6Y2UW2j8y7s1RE6?= =?us-ascii?q?eU9L1EnS10olWktgLde/59kSkByfE28n4Vn/kJuBYxziWaGr0SB05YPSjolxuW?= =?us-ascii?q?9dCxsKJXZWi0fLiryUpxgcuhAKuFogFGV3bzYo0iEjNo7sVjLFLM12X+6pn+d9?= =?us-ascii?q?nNadIfrAebnw3bgOhSLJIxiv0KhSx8NGL4oXElzek7ggB00ZG8ooeHN31n/Lil?= =?us-ascii?q?DR5AKj31e8QT9ynujalAmMaWxJuiHpZ/FTUNR5voS+ynEC4IufTgLQaOHyU2qm?= =?us-ascii?q?2HFrrHAQ+f9EBmomrXE5+xKnGXIGcWzc14SxmbOExQnhoUUS4nnp4iCA+q3tfh?= =?us-ascii?q?fF1i5jAW+174sAdDxfxmNxn4SGffqxmnZi0ySJeBMBpc9htC6FvNMcyC8uJzGD?= =?us-ascii?q?lV/oOnrAOQMWGbeQJIAnwJWkCeAVDsIKWu78Ha8+eEHuq+M+fOYbKWpOxGTfiI?= =?us-ascii?q?2Jav35B68DaNKsWOPmBuD/Mh1UpFR3x5HN7ZmzoXQSwNiy3Nd9KbpAu7+iBvrc?= =?us-ascii?q?C+8PDrVxz06IuKDLtSP9tv9A6qgaefN+6QgyN5JihC2pMK23DI1KAV3EQOhCF2?= =?us-ascii?q?azmtDbMAuDbDTK3KnK9XExkbayZoOctG8a0zww5NOdTBhdPtzL54ifw1BElZWl?= =?us-ascii?q?z9gM2pYtYKI26lPlPdGEmLLKiGJSHMw8zvfKy8T6dfgf5JuB22ozmXCUjjPi6M?= =?us-ascii?q?lzPxTRCgLflMjD2HPBxZoIy9aAtiBnX4QdLpbx26P8V7jTsozr0onnnKL3ITMS?= =?us-ascii?q?Bgc0NRqb2d9TlYju9xGmBb63pqN+2EmyGZ7uTDMJkZrf5rDj5zl+JA73Qw06FV?= =?us-ascii?q?4z1cRPxphCvSqcZjo1+8kuaR1zVnSwBBqjBXhIKMpkVvIr/W+YVFWXre+xIN92?= =?us-ascii?q?qQAQwQp9R5Et3vp7xQyt/XmaL1MjdN6crU/dMHCsjaKcKHKmEhMQbnGD7VCgsK?= =?us-ascii?q?VzirOn3eh0NHlPGe7HqVroI1qpL0gpoBVqdbVEApFvMdEklqAccCL4ltUTMri7?= =?us-ascii?q?6UltAI6GGlrBbLR8Vao4rHWeiIDfXrNTaZi6NLZwERzbPkKoQTNY3620t4Zll8?= =?us-ascii?q?govKB1LaXcpRrS15cg80vEJN/WBlQW0y1ELlbQWt7WQOGvGqhRE2ixFxYeI3+D?= =?us-ascii?q?fr+Vc3KULApDEsn0kphdXlnTeRfSbrI6e/R45WFTT7ulM2MpPjXQl1awiyklZl?= =?us-ascii?q?NDfAXL1RiLRheXpsiA/GtptFAeRcQrFcYB8M2fGXYO0l0UhbqiWi30NH/+zFCJ?= =?us-ascii?q?p8mwssapGstXVA1BxgbNMuOaPQI69JwURKiaKVoi+kzOYxzxECJ0wV6mOdZDYI?= =?us-ascii?q?uFAUNrkhPyeo+PJj5haGmzZYe2gMUOEqou5w+UM7IOSAzCPg36RFKk+vK+yVN7?= =?us-ascii?q?mZtHTYlc6UXlMw0VsFl1Nb8rhtz8gsaVCUWFwvzLaKDBsJNNDCJhxSb8pc7HjT?= =?us-ascii?q?ZziBsOXXzZJzIYq9CvjiTfWSu6YMnkKkAAEpEpwR4csbAJms0VzXLdz8IbEf0x?= =?us-ascii?q?Ut/gPrJVueDPtXZB2LjS0Ho8CjzJ53x4VdIC8SAXllOyWt+rnXvhMqgOaEXNou?= =?us-ascii?q?ZncaWZEEOWwwWMy7nC5UpHtADD+q0u4DzwiC9TD8rDzKDDbgd9pjeOuUZRR0Bd?= =?us-ascii?q?Gt5zo/96m2iVjK8pTRPGz1KdNiutrT5uwAvJaHF+lYTb9jvEfAg4NYXWClU3bT?= =?us-ascii?q?Ed6pIJj9c5QjYsDxCna9VFy/ly85QtzvPNmzNKiIgADpRYFSsIWB2jAsK9O9HC?= =?us-ascii?q?kEGxhsv+ED+L58ZQobbpo4ex7ptx4xN6qjIAeYydiuTGGtKSNKQPVFy+W1eaBX?= =?us-ascii?q?xTI2buCm0HsgUo06z+6v/E4RRZEKixbexeqjZ4heSiX8B31degXVqiUijWRhMP?= =?us-ascii?q?g9wvsnyhPSrVYcKyyLdPBuaGFcsNE8H0mdIXNqCmcjRl+cioTC4giw37AS4SRd?= =?us-ascii?q?ntBU0fFbv3jkpJPfZiyjWLCzo5XPryUgdcQmo7F2MYH7OMSGsJLekSDBQ5bItw?= =?us-ascii?q?2EUCi6F/1cmtdKOy9XW/hIlnsjOcAft4pB9FA9VsEgKLxTEKMsvKylaSJ4DS4O?= =?us-ascii?q?yi8UT5iP0yIEguqnwbTViwmQf4o4MBwfqppCmNscXzRxYiMEq6+pT5/WmHOcSm?= =?us-ascii?q?gXPAcT6hxB5BgGlo9xYu/l4I3ITJtXyzBOuvx6TzHFG4Vv+VbgVm6Whl34R+m7?= =?us-ascii?q?nOyywQJe1vTs3ccHWBRnE0hS2/5Wllc0KLFwM6QfoozKvSWUek7hoG3tz++mJF?= =?us-ascii?q?1QycLKbV34EJTKunb8UiEG/n0UX4BPwmnFFZsOiwp5dLorpFJULYC8YEn+/Tsk?= =?us-ascii?q?yJ9yErmkT8Ck3UglomgCRyerFdpBBOVmsFPYWD1lf5Crpo/qO49XQmNK/p2StU?= =?us-ascii?q?tZml13MyGl0ZpcN91N4jkUUTlBuzmSoNuySMxG2c93FZAMIcxyu3bjF6xaJped?= =?us-ascii?q?uXo2uqbgynXB4TAzrE+6xCmvG6+/V+9Z52oeGgEzKGSEpEgvCO8s8mnJ/1DItV?= =?us-ascii?q?B0+PxbCaaTgkVrpzZ9BYtOBjdP1XCqNVhzS2NGs+pCIqTPb8NcW+UyZQOoOxEm?= =?us-ascii?q?D/EmxVGJ/UdukXf6eCFytwpa+yHBXwYvTyUVhKnimSEGoMG9JTAaU45IbSkmby?= =?us-ascii?q?rdNwKbniVXsQ1Da012XpAWGcxJ+7cF0otI5sDCU1qjKTkZXBx+MQI1yfpfmlRZ?= =?us-ascii?q?sEqCfSDSEBGleuvRvR1vZceessqpI+rj/AtdjYPnqu84/b0ZR3K6gQ2tXczer4?= =?us-ascii?q?jku92IsUuBarz1PPCibn/aUjfMlwywiqk5AJXQ+SjcLhZbIYFgyXU4eZjhFXLL?= =?us-ascii?q?PRNeKq0AKUpUSbx2ZNdbru1UfMJrZKEJ+apxCR2dXRPvBJajrP9YIVbPXT7eNT?= =?us-ascii?q?mO8vSjoYLP6rzQUfLgadKRyHbHWa13Iox36T38G7f0z4BS5Fb52vBw+UxkU1TG?= =?us-ascii?q?NT6OrMj5LAMR+MaiblfivoEuHT7OGJdwi2btyVtdeMoLWCCq65MYyI5D6HnsV+?= =?us-ascii?q?141FTzsPdI+Llg84U35KppycisL6fINftaqVNnAgSTBghy6pUtGnZwSH5MbeIK?= =?us-ascii?q?NffRebgZjdr0pODpFqwX7xmV9PJFadfdIEHBgMa/ACmGSRNYhAcBtSIaLgyE2v?= =?us-ascii?q?6AgaB0TcKlqvbl2kIx+VexNAULzLZz6oeY4aqHuPXYbwPPwrQeXKjlWN/zpKw2?= =?us-ascii?q?u0yO/f0kiKIOemttbg2lCucdTMkdxnzkza8w0yIhCMbDH6/k+P5fVnI2gjPglI?= =?us-ascii?q?p7H1UNAP8UGqCL/YtGlGcih+PZLsEWcrxFmmuXFx6rCLkCyXCx6yuQPWZqnArD?= =?us-ascii?q?0w3qTmO191/2qjV0QS3SwNf/ikBVTKW4BV9OXyq1Pk91qDyPPBfptNrzvaQ68k?= =?us-ascii?q?Q2P3f5u92Tj2ShOalYH8vlKNybOyk0q0odjIctSdy3xYAbBd29Lc8X8HF6dfbe?= =?us-ascii?q?6mWrkypbr6dGgYre7NuV9e/MHXm8la2atqmCxCxFyngio14z8NegNuvB59eSWf?= =?us-ascii?q?Sny34RTztjuwvGRxO1r7vbr1YIOUyEzkjGg4kKPtBD0nk+yE7m+OYiQNUp9AVd?= =?us-ascii?q?DYbMffUCqi7vODHs21aQf8o3VjWC0ztQBl/1FUJ4GK081W/rssLGi2rf+1oyRo?= =?us-ascii?q?Zqb0znnxt3D4cmJk0x9Fgb2C0DERICaRqDFrGnGVzlLZcYVUgEcRmHx6K1erkt?= =?us-ascii?q?0k183Lyv//TebfdmCKoTLPldgRCBnENBFpIQr6IeXKp2e0VB+67PugjiF4/nUu?= =?us-ascii?q?DklXoxMP24WcVa/t4ZtnQ8+Aa/Rhyg6ZhZ47Ydlp+IarZOYYLQs8Bk80dn+TkP?= =?us-ascii?q?ezRMgBl+lRy2S/wTqfv44tfFrJqn9PqhWLwqR+UN+Bg+H35+gIfogFA/vdHX0P?= =?us-ascii?q?9RRZbUiYTk/gFCOXyKuIfG0xlkM+UONoarca18+HUAOicROWgBPceMa/k7+S9i?= =?us-ascii?q?Ki/f51tYAsMDfdkYJtbCmRhIik31X7Fe7tLbFUWEC4hvd8Ap4W33yCo28ZclSe?= =?us-ascii?q?bv9ju2JZHZ71FQMPJOlz1sm8jepOcJwfrTBi8X4WOaaxRvwSON1YONC/Du8uWI?= =?us-ascii?q?0t3UUEkGHiEuWYdHODWC4RCnRvaylJjxTgOU8NH8gJYke0KWWHO8h7kKsqdDEe?= =?us-ascii?q?5BliX0xCNeGZrvh/KIqdas7nVYtkFfGoZp8RLFALlfPol8ORngmcmkXFJ8CTXj?= =?us-ascii?q?eMHUbRcuvOuWxvsS7OV+LUT+eJQbLggCy73k9XpfVhFuR6LuvlaFQeIRY8NrSP?= =?us-ascii?q?zaoXBT9YJgLKgPMF+GpJP0qjdIqVY2ABImabIrqjxVaFPOnQ1PVKruvr4PlBcc?= =?us-ascii?q?W8ZjuUBQAWKwJH4+5z3fWKRTjameFPsV8jGJQawVSUloMyR+QxSu2JV1YLapmP?= =?us-ascii?q?9Ks2xckiN6uvgq3CRsRAGgti30u6INxTUg9am3tDodonxFVfySnTrHB1tFzfQK?= =?us-ascii?q?i7ocCnn55FyzZXkMdo3y76d9KcTn74kh7Gw1YQ8/cC0eQeSgFybwgruKAoyIsN?= =?us-ascii?q?JcggSBt9nObb+3MCgdK7U8yRPlR3hm0QjenQ1l8HUKQjW+9tAkIJiyOcc/yiqu?= =?us-ascii?q?B2fbaE4G4rlVv8vpqV4LUOw2ZEtgwGV9yMeHQDYARMjSG2kojwgkbn5EfIhE6R?= =?us-ascii?q?8AGKkimiyIsbVe/gEIfDfUFZyo+ovOksfG13k9Scxnx2zMqa2DmJwqzGdpm9Vq?= =?us-ascii?q?4S6SoH4SbfDXU9dwAnjv0YdS0eP+Z/GqsuEJVoRmzLChXeQZMsmk/2u22YllVl?= =?us-ascii?q?WjxrsAA1qzKPUDyavDUye5VW2YXvyGc2qMnzc5Kk7y4h2oLlwraMhUtEI9N+rC?= =?us-ascii?q?hoJGlwL/S790QT+QpVDDxmw5Lewabx42uJugewESUO4RZu2cKPMywP0/FFQMbG?= =?us-ascii?q?HGHS9sB++wr1GtgJBxO2987kXifeTt7gfmPcOXGhkFEo7arZlx9Oe4Rm2bOn9g?= =?us-ascii?q?yxtyM1dy9+vFEVQ+qPNceY6LndfMn9R7zfIFd/B1PCImpNETnJ5j5JKP0MeOdh?= =?us-ascii?q?HR0oryJc/LrfeFGfHfyF4qem5CWLoDfQz1/5k6PsI+W7DLE7tWoxAcBakiQJM/?= =?us-ascii?q?LGrw9aB0LAZ2cgHPfrS0htflqviMZptOqH/c9kgwIzvEux0f1vy0ShR2bp6yh3?= =?us-ascii?q?XoIZA/WixOosZoChtnAItPAd0PoxCgA56Ol6Gxk8Wx9F9iu+8WrarwDejH1NO9?= =?us-ascii?q?34pvRJVa/UiLMyzKBKl3g0Rqkviygu3e3ZbvE8/if80LVPRjSG7fdrDGBpm/Ki?= =?us-ascii?q?6JOs/kf05G8ric0K92UxmIYCD5XrGGtDG/NPh/4EU00Ip4fO3JwDwq9bHb18P4?= =?us-ascii?q?Z3tHqSe7sX6JKJxf4UTRBePAWxJUSPyF8HtqHKEQYoX06OcOPsI4wNeC+wl89i?= =?us-ascii?q?9P0MibLKi7qE/DxEZ7eonGLEvmwSo5XpMKIBunO0s2nWDZsmjdAWhbLsW8LMli?= =?us-ascii?q?msqaDhzs50l3nmEgfXBBGmvuRdiPPWgb2sS+ZBCF9Q5RCNYDheG3c1YitqKuUe?= =?us-ascii?q?loJolFmeKyubUFi9lpKCbPS9NBMiHNKr92IjpRDuLSpFgnYh4Er6I5WoErapiS?= =?us-ascii?q?OEkHKluPyTvuzQve1k35b8ej272OLCYS83VH1K7F0SNWqwmip/mWntfvUKvHY5?= =?us-ascii?q?HyXf7SNjclVz6BSDsuEUep40qku+EesPuWO2gfvksUYiWUCAIJoaBvt9fQBHfJ?= =?us-ascii?q?meJ/ZJ0KmOyaWyfoRS13jqU9HTxLtUGSTPoHDgTWcXvhj3BHuAyjO/9A53TlYK?= =?us-ascii?q?OExqBNQewZHpNMcuGFQ9vfYf1eJTIoljIDOOamft3ctK000lTSQmscDabI9UeS?= =?us-ascii?q?TEmMQvyT3zjrR5kav5Aouio0/dLdhjR3E6rNP7mDpjOj8ZW1jDiGtu3EV2ksYk?= =?us-ascii?q?s1gOQYDGmH3hZANHkOC8sJt0H1Xq6Ae0FM2WorieJp3R8MfB9+Unhw3XJLkva9?= =?us-ascii?q?HddZRkIKg2+0Rv0Jckx3X3sM+hqI6wj/epoE/8XUXXVf7ZMLU4MWKPRu447Sa4?= =?us-ascii?q?UKx/N85y5ruCw3tW2mClpZig+Uu/7LELlU2qxJ5W5++ep/GE6IXWWMISD81oO6?= =?us-ascii?q?BpcXlm9Vqnf+2p+R5Lhg?= X-IPAS-Result: =?us-ascii?q?A2G4AwB4ibVY/wHyM5BeGgEBAQECAQEBAQgBAQEBFgEBAQM?= =?us-ascii?q?BAQEJAQEBgyWBao5Wj0MBAQEBAQaYWCuILlcBAQEBAQEBAQIBAl8ogjMigiMCN?= =?us-ascii?q?xQgCwMDCQIXKQgIAwEtFR8LBRgEiUkNsxQmAosTJoYHiVoLBgFohRkFkFKLUZI?= =?us-ascii?q?sAoF5iGcMhigCkzJYeQgZCAISCB0PPoZrV4dsDheCFwEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 28 Feb 2017 14:33:53 +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 v1SEVphr001166; Tue, 28 Feb 2017 09:32:15 -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 v1SEVjOX067680 for ; Tue, 28 Feb 2017 09:31:45 -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 v1SEVdwJ001154; Tue, 28 Feb 2017 09:31:39 -0500 From: Stephen Smalley To: james.l.morris@oracle.com Subject: [PATCH] selinux: fix kernel BUG on prlimit(..., NULL, NULL) Date: Tue, 28 Feb 2017 09:35:08 -0500 Message-Id: <1488292508-32506-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: jslaby@suse.cz, xiaolong.ye@intel.com, linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov, Stephen Smalley MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP commit 79bcf325e6b32b3c ("prlimit,security,selinux: add a security hook for prlimit") introduced a security hook for prlimit() and implemented it for SELinux. However, if prlimit() is called with NULL arguments for both the new limit and the old limit, then the hook is called with 0 for the read/write flags, since the prlimit() will neither read nor write the process' limits. This would in turn lead to calling avc_has_perm() with 0 for the requested permissions, which triggers a BUG_ON() in avc_has_perm_noaudit() since the kernel should never be invoking avc_has_perm() with no permissions. Fix this in the SELinux hook by returning immediately if the flags are 0. Arguably prlimit64() itself ought to return immediately if both old_rlim and new_rlim are NULL since it is effectively a no-op in that case. Reported by the lkp-robot based on trinity testing. Signed-off-by: Stephen Smalley Acked-by: Paul Moore --- security/selinux/hooks.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 4a80bd8..af1ff15 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -3922,6 +3922,8 @@ int selinux_task_prlimit(const struct cred *cred, const struct cred *tcred, { u32 av = 0; + if (!flags) + return 0; if (flags & LSM_PRLIMIT_WRITE) av |= PROCESS__SETRLIMIT; if (flags & LSM_PRLIMIT_READ)