From patchwork Fri May 12 16:41:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Smalley X-Patchwork-Id: 9724565 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 B425960348 for ; Fri, 12 May 2017 16:38:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9518128854 for ; Fri, 12 May 2017 16:38:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 867562885D; Fri, 12 May 2017 16:38:04 +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=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from emsm-gh1-uea11.nsa.gov (emsm-gh1-uea11.nsa.gov [8.44.101.9]) (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 7F5D228854 for ; Fri, 12 May 2017 16:38:01 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.38,330,1491264000"; d="scan'208";a="5729993" IronPort-PHdr: =?us-ascii?q?9a23=3Ats8moRS6VelUWbbxYXhSi3hdjNpsv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa68ZB2Ct8tkgFKBZ4jH8fUM07OQ6PG/HzRfqs/Z7DgrS99lb1c9k8?= =?us-ascii?q?IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBo?= =?us-ascii?q?KevrB4Xck9q41/yo+53Ufg5EmCexbal8IRiyrwjdrNUajIltJqos1hfErWZDdv?= =?us-ascii?q?hLy29vOV+dhQv36N2q/J5k/SRQuvYh+NBFXK7nYak2TqFWASo/PWwt68LlqRfM?= =?us-ascii?q?TQ2U5nsBSWoWiQZHAxLE7B7hQJj8tDbxu/dn1ymbOc32Sq00WSin4qx2RhLklD?= =?us-ascii?q?sLOjgk+27ZkMxwiL9QrgynqRJx3oXYZJiZOORicq/Ye94RWGhPUdtLVyFZAo2y?= =?us-ascii?q?cZYBAeQCM+hft4nwpUYCoBWgCgm3H+7j1iNEi2Xq0aAgz+gtDQfL1xEgEdIUt3?= =?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?n0iskDBzyvDEOb3hBI/CLmTDkLj7e7Zw8ExcyA01zdBa/Z1UEa0BL+zpWk/qrt?= =?us-ascii?q?DYCQU5MwOsyeb9FNp9zp8eWX6IAqKBMqPSs0WH6f4sI+mXY48Vvjf9K+Y+6v7g?= =?us-ascii?q?iX85hFAccrK03ZsRdHC4A+5qI0KDYXrjmt0BC3sFvhIiTOz2j12PSSZTaGipUK?= =?us-ascii?q?0i4DE7CZ6mDYDYS4CsnrOOwjm0EodRZmBcBVCGCW3oeJmcW/cQdCKSJddsnSED?= =?us-ascii?q?VbinTY8uyA+htAv7y7d8NOXb5DcYtZX52Nhy/e3Tmgk49SZoAMSFz2GNU2Z0k3?= =?us-ascii?q?sVSD8qxq9/u1dwxUuE0ah9n/NXD8dT5+9TXgc8K5Hc0/RwC8ruVQLZYteJVFGm?= =?us-ascii?q?T82nATE3UtI+3dsObFh4G9q8khDDxSqrDqQSl7yTGpM09Kfc0GLwJ8Z50HnG06?= =?us-ascii?q?Ygg0MhQstVOm2snrR/+BTLB47Vj0WZkL6ndKQd3S7K8meO1m+OvEVBXA5xV6XJ?= =?us-ascii?q?R3YfaVHMrdT650PCUaGhBa4hMgRf1c6IMrFKZcHxjVVaWPfjP8zTbHypm2iqHx?= =?us-ascii?q?aIx6iMYZHye2oHxiXdCVMEkxgX/XmcKQcxGD2to2XEDDxhDVjveV/j8fFiqHOn?= =?us-ascii?q?SU851w+Lb0xl17qw5BEVn+eRS/0N0b0ZvychsS97HE6n39LRCdqPuRZufLlGbd?= =?us-ascii?q?M6+ldH2nrTtxZhMZy4M6Bimlkefhx5v0P0zRp3DJlPkckxrH4xyQpyMaOY3Epa?= =?us-ascii?q?dzKWxpD8ILrXKnP9/Bq3ca7Zxkne0MqK+qcI8Pk4qE/svAKuFko/6Hhn0MNa03?= =?us-ascii?q?ib5pXXFgYSVojxUkkv/Rhgu77aejU955/T1XB0K6a7ryXC29M3C+s/0RuvZctQ?= =?us-ascii?q?MKaeGA/1Cc0aCNCkKPY2lFixchIEIOdS+bYoMMy8c/uJxrWrPPpgnTKhlmlH+5?= =?us-ascii?q?xy0kOS+Cp6Vu7I3owKz+ue3gSZSzf2lE2hvdzvmYBYeTESGXKyyTPqBI5LYa1y?= =?us-ascii?q?ZpoLBHy1I82xwdV/iZvtVGRe9FK5AVMJxtOpcwKIb1PhxQ1QyVgXoXu/lCq21T?= =?us-ascii?q?N0ly0pobSF3CzV2OniagQIOnRQS2l/iFfgO4+0j8oVXEKwdQgmiAOl5Vrmx6hc?= =?us-ascii?q?vKl/M3TcTlpJfyfsK2FvSbe/tr2HY8FT8pwoqjlXXP66YV+EVr73uwEa3D/7H2?= =?us-ascii?q?tC2DA7cCmnuov4nxNmlGKdK2xzoGDFdsFwwhff4tPcSOVV3joHQil3kyPXBl+m?= =?us-ascii?q?M9mu59WUmI/JsvqiWGK5Sp1TbS7rwJuEtCu6/m1qHQSzn+utld3jEAg61zL71t?= =?us-ascii?q?ZxWCXTtBb8Y4/r16WmPuJ8ZEVoAkHz69ZiEIFkjoQwnI0Q2WQdhpiN53oHlmPz?= =?us-ascii?q?MdFF1qLkcHUNQjAKzsXO4Aj4xEJjNWiFx4XjVnWS2sFhfcW1YnsK2iIh6MBHEL?= =?us-ascii?q?+U46ZZnStxuFa3txjdbuN6njcZ1fsu73gajvoMuAYxyCWdBawdEVNePSPyixSC?= =?us-ascii?q?98q+o7lPZGazbbiw01JzndO/A7GEuQFRQ3X5dYkkHS9r6MVwLk7M3Gf06oH+d9?= =?us-ascii?q?nadcgTuQGMkxfck+hVL4o8luIQiip6PWLyo2UlxPQ9jRxyw566ppOKK3h2/K2n?= =?us-ascii?q?GB5YLSf5Z9gU+jHwl6ZRgtiZ346oHpV7FTUEQoHkTfS2HzIOrf7nLRqBECUgqn?= =?us-ascii?q?eHHrrSBRGf6EF7oH/UDZCrMWyYJHkDwdVkWhadOFRVgBoIUzUigp45CgeqydT5?= =?us-ascii?q?cEhj+zAR4kX1pQdNyuJ0NxjzS2nfqx2uajsuT5ifNhVW5BlY50jJKcye8v5zHy?= =?us-ascii?q?ZA852irA2NLnKUah9NDWEOVEyECU7sPqWy5dnA9OiYA/SxI+HIYbqQtexUT+2I?= =?us-ascii?q?yo630ot64zaMMd2CPnd4AP09xkpDWnV5Ft/XmzoRViMXkDjNYNSDpBem/S13rN?= =?us-ascii?q?6w/+j3WA714ouPEbRSO811+x+qmaeDK/KQhCFhJDZCzJ8Ny2XEyL0F014WjCFv?= =?us-ascii?q?dyKgHq4cui7IVq7QnbVXDxEDYSNpKMRI97483hVKOcPDhNP1zKB3geMuC1hfU1?= =?us-ascii?q?zhhsapZdcRLm6nKFzHAVyHNLOcJT3E28v3e7+zSaVMjOVIsB29oTCbE1X5MTSb?= =?us-ascii?q?jznkTB6vMeBWjCGAIBxetoC9chB3BmjlUN3mawe0MNttgT0x2700iWvANXQAPj?= =?us-ascii?q?hkb0NNsrqQ4DtFjfVkBWNO9HVlLfOelCaH9OTYMYwZsfh2AiRuje1W+nA6y6ZT?= =?us-ascii?q?7C5eXvx5gTfSrtlto1CmlemD0DxnXwRSqjxTnoKEoV1iObnF9plHQXvE+hMN7W?= =?us-ascii?q?GUCxsUvNtoEcfgtL5KytjIjq7zLy1C893M98sGG8fUMN6HMGYmMRfxAzHUDQQF?= =?us-ascii?q?TTmtNWzEmkNSjuqd9nyPoZg8sJTsn4AOSrBDXlwvCvwaElhlHMAFIJpvRDwknq?= =?us-ascii?q?SUjNAW6nelqxnRXNtVvpbCVv2IAPXvLC2Wjb5LZhcSxrP4N4sTPJXh20N+cll6?= =?us-ascii?q?gJjKG03IUNBRpS1haxU4oF9K8Hl/UGIz3Vnqahmq4HANFv65hQI5igx7Yesx7j?= =?us-ascii?q?js+Es3KkDMpCQujEk7gc/ljiyJcD7tMKewWplbCyzquEcrNpP2WAV1bQqpnUx4?= =?us-ascii?q?LjjEQalRj7hhdWxxjg/Tp4dPE+ZGTaJYeB8Q2e2XZ/Iw3FRGtCqn3lFI6vHfCZ?= =?us-ascii?q?R+lAsnaoWjr3Na2w1+a941K7TQJLBXwVlQnK6OuDGn1vwpyg8EO0kN6H+SeDIP?= =?us-ascii?q?uEEQK7YpPTSo/u1x5gyZgDZMYnIMV+AtovNk7UMyJfiPzz/6075CNkCwN/aTL6?= =?us-ascii?q?WHtGjcjcSIWE8/1lsUl0lZ+rh7ycMjc02OV08xyruQFhMJONHNKQFTcspe7n/T?= =?us-ascii?q?fTyBse/V25J6I529Fvz0Te+JrKsUmVyrHAIoH4QK88QAEYKh313fLcfiMLEK0w?= =?us-ascii?q?4t5BjxKFWDEvtJZAqBkC0brMGn0J93wY5dKykADmphNCW34bDXphM3jPeYQtc5?= =?us-ascii?q?fG0aXooFN3IxXs22gShZsGpcDDOvyOIW1BCC7yPgpiTXFDT8bMBjZfeOahNqFN?= =?us-ascii?q?G2+S4y86exiV7P7prSPWf6Osp+utXX8+MVu46HC+9ITbl6q0rch4hYR3mtU27T?= =?us-ascii?q?Ed60J4P9ZJQtbd30EHm1SUazizQrQMftJNytNLSHgRn0RYZIt4mWxD8jNdWnGT?= =?us-ascii?q?EYBxd9vOAD5KVyZA0Ff5o7YQDntwU4N6yjPgiYyM+iQ2CzJjtKV/Nf1/m1Z6RL?= =?us-ascii?q?zyowae+30GEvTpU7z+ar70ECXJQKjxHYxfakYYlRSzP+FWdcewrVoyo1jmZhNv?= =?us-ascii?q?sozuc53hzIrUEWMyqXe+xxdGxEo9Y8CEuJLnpoDGo1XEWTgpfd4gGyxbAS5DFS?= =?us-ascii?q?n8xU0OFft3j+pJDfaiq2WKO3sZXVrzYgbd8+rq1rN4zjI9eJtJPZnjzbV5neqh?= =?us-ascii?q?SLXjOgGfdGndZdOz5XQP5NmW45I8MGopZB5VA3VsggO7xFELMsqayyaTp4ES4S?= =?us-ascii?q?yjcUWJ+C3DMYnuixwKfVlhCUcJQmMRwLro9CgscDXCFqYiMSvqijV5/Zl2WcUG?= =?us-ascii?q?gEPB8T7RhQ5AIHjoJwZPrq4JDPTJBX0DNWv+h0XTHVFpZ281v7S2eWgVf8SPWg?= =?us-ascii?q?nOyp3R5SzPz23dkBXR5zE05dyPhKlkEwMrF4N7EQvpLWsj+PbU77snjhx/emJF?= =?us-ascii?q?lQzM3Udkf3DIneuGr9TCIT52MbSZVIyHHFGpQYixB5Z7ozpFVQPICmfV7z5yQj?= =?us-ascii?q?x4RtBba4T86qx1EhrXYIXCqqFt1BC+Z9sF3JRDJleZerqI7+O5VTRG9Q94eRq1?= =?us-ascii?q?BDkEViKyS504ZTK9lR4j4QWzhCuS+SvMGvSM1Fw8N2DIQBItZ+u3f8BKNLI4Kd?= =?us-ascii?q?o3sotbzz0nXZ4SwzsE+mxDWvHK+1V/5Z/2obGggyO2SStkwvAPA2/mfU7F/Nrk?= =?us-ascii?q?h+//1HCbiXkUVxvDF9E4hOBjlTz3CqNVBzQ2RdvupHNqvVa9RcTOc2ZRCxIRwy?= =?us-ascii?q?D/km31aG/Utsh3f2fzRythdG+yDaRwQ0Vy4Vjan2lDIDtM6nIiEVS4hUbTo/ci?= =?us-ascii?q?jJMQSblj5LvBxHcUFlR4gZAspZ+7EcxYZb5cTCRlqwJSwHQRBvOBk13uZYlU5G?= =?us-ascii?q?rEqXYzvdDRayefbJrBJ3Yd+brNS1I/Th4AdHloTnvfgi96odWnKmmReiQczFoo?= =?us-ascii?q?/4sd2KqFWBeLnkPO27fHDOUiLAjRauirc4F5PK5TTcMBJHK5lmznopeYDhCXXX?= =?us-ascii?q?PRtcOq0bO1FWVbt9adVbuOBVe9FreKAV+a93HB2HQgnjGIu1rPlJNlzTXyjRLz?= =?us-ascii?q?2d8uyjpoLe9aDdSfL+acOS2nnKWL93PpNm6TnhAbjqz45e+k3y2vhz6kN2U1/G?= =?us-ascii?q?MzqOrN75PAME+NGidlf+vp0uBT7WBY1/kH7pxk5ea8oXXzel/44DxZNf9nnwVf?= =?us-ascii?q?l43VTpv+1K6bZo84837K51yc2sP6fdNexasVN7AhiTHghq9I8iAHJ4R2BKZu8e?= =?us-ascii?q?MunRcL8cjcDzr+D3C60X5wGU++NDb9vHPFvNms6lCjGTURZEhhsOqSYGLguA0P?= =?us-ascii?q?6Ig610Rtyjpej3wEIt5EWxIQAdwbBx/4iE/LGIpOjNYxvX07cERrDgRtnvobQ0?= =?us-ascii?q?p0OS+fokmaYBemxoYg2nFOwdWdAYxmr70K8l0zkjE8LZELLm4vJDUGg5nj34kZ?= =?us-ascii?q?BnA1oWAu8UHaaM/YlGmGc4n/fUNtwQcqBHgGqPFBikErEYyXGx8CuXPHNlggzS?= =?us-ascii?q?3BHsXGOz9kH5oTV/QSvWwNfpilBVWaWvBUdOQyqpPld1sDaIPAruqNr3tro64V?= =?us-ascii?q?ozMmzlrt2NknWuOK9ZHs34PtycIjI0qEgRjJIvWtylwZobFsalINcN7HF+aePT?= =?us-ascii?q?63m2nCBcuKpHiI/e486P9vXRA3agk7WQq6+RyzBA1ng4oVY/58ikNvHV4t2HQ+?= =?us-ascii?q?+l12gPQChivAvBRQS6qqTBr1ATO0yEzlvEmJAQMtFex3k42Vns5PI/T9Ir6AVe?= =?us-ascii?q?CoHAausZpT/pJjv721mfbMwsViSFyDtYBEz1HkN3GKciw2L8psTJmmnM+1cwXI?= =?us-ascii?q?l/a1TnhQBrD4U/MU8t6lkXwi8YHAgIdx+aDK+nBV7kLYsCWkgPcxKH06ameq0v?= =?us-ascii?q?x0183quv5PPPbex7H6cNN/dcgRSUk1dHAZ8WqrMRQK5idFBB7qLXoRLiC4f/Vf?= =?us-ascii?q?j8iXUwLeG1Qtxd8c0BrHQi4x2/RhS65pdB7rYblIiIebRZYZjIp81z80Bn6iMR?= =?us-ascii?q?eSNXnRh/lRS5UfoGq+z55djbqpWo4P60VKkxX+UX6wQ0B2Nmgpvoml8jvc3Y1+?= =?us-ascii?q?dSS43Sk4T/8xlBI2WUt4be0hl8L/cOKo2wcbZ47XoHOzQRJ3IAPNqRcfk84DVh?= =?us-ascii?q?MDbN6FxYBMMDe9cYMNDKmQBOhU3jQKtT+dbDGl+EF4dzcNgl73btyD8r9ZszSO?= =?us-ascii?q?Dg5yGtKJ/C7lFNMPJDjDl2m9LZvucV2+fSBDIR4XaHdxh/2jmCxIWVC/bs4eWM?= =?us-ascii?q?z8nZV1wcES4sTYhdODqC9BejRuq0iJXmTAOU5dXugJIlbk6QQGK+nLgduKZWDe?= =?us-ascii?q?FAkjn73iRZFo3tiPKardys6HdQtl1AF4pz9gPKGKFePpV9JBT5mdKmRkxiCSvl?= =?us-ascii?q?eMDbbAAiuOyIyecQ++9+LVfxZZcHIhIYzLL38XxVTgpyR77xulaWR/kRaMFnSP?= =?us-ascii?q?PDqXBV8plgJrQKPFWSq53mtDBIqEo5AAUxcr8/siRadlXSnA1SQ6v0t6IPihAH?= =?us-ascii?q?UdJgpEFCFmS+OGM45zraWqVYl6aRCPkP/TWVUKMCSUJoMjlxQxmtwpVhZ6Opne?= =?us-ascii?q?xbsmNBhi59ov8q0zxgRBempSLsp6YN2S8997C5tTUBv2dFTuafkyrTF1VDzeoK?= =?us-ascii?q?gr0YC3n/6Fywen8DY5Xu4LN/P8Tv6ZEh42gjYRUkZyAGXPqgBDv2j66TBoyPrc?= =?us-ascii?q?9ThB+KuMXVd7OzKjISNrslwxL5W3d9yhTenApv8GYTQDWv8tEkJIu5Ocs+yCun?= =?us-ascii?q?A27be0gQ4q9Ttsv+q0ILRvMsaVx92GVjztSHRioVSczAH2Y1iQYlZntAcJJH8h?= =?us-ascii?q?IaDK4ogjCJvqZa5A0UZinbEpi98InKgcjIwWU9Tcttxm/OpK2FhpMr0GVim9Nw?= =?us-ascii?q?7y6OpGodevfdU89tHnjzzJlQxfb5Z/W3veANUJFmx6i5UP8eLsmj/nO72IlrWk?= =?us-ascii?q?+g3bkeA1u5P/MAxrjFVyepU2uYVvqXc2KUhTY2Llby5QW0Ll0wcMpKqk49MujB?= =?us-ascii?q?hp5bjADhU6l7RiaXpV/d0mMjN/kWdwQot4e7YwYKVvIeZ/CAJegyx/0zEEADYG?= =?us-ascii?q?HPHStqEOK2qlqtnI9nO3V8/0X1f/ni/hrhMNuIFRkOCZTaoYJp+fymWmKBPmdt?= =?us-ascii?q?zBNsM0lw9uffD0o+u/RdcpaQmNjQgsp00fQBd/hzKyE9vcQTmo1744mOzMiKaQ?= =?us-ascii?q?3Rzor1JdzNrPmYG+ffz0U2dW5ESbcZZAL155kgPtEnQbHTGqFZvRsED6ggXJMh?= =?us-ascii?q?L3vx9L1zLA5rdQ7RYKq7j9LypuKPfJRUvGPW7lMsIyfAoR0M1OK7QRZ9b5+0m3?= =?us-ascii?q?X4OIowSS5Zr91xFhtmG5NCG8cBrwqhHp6Vl7i3i9uw+0Nhp+8KqrH9CvHQ29S/?= =?us-ascii?q?2IV9RZ9a5VaEPDzJHqlknlxljviugvfHypTxEt3tedcFVOh9X27EZbjKEIqjKj?= =?us-ascii?q?KOJM38YVBJ86aG379iURWeejr5X6yYuy2gL/pk/Eo7xpZ/fOrJwzwn96vb18fq?= =?us-ascii?q?Z2FHuiejqmaENJ5F41PWBezeXhRUSf2e/WZ7HK0Xa5X79OMPMdwk3did7BN/7D?= =?us-ascii?q?NY0MuKO6KhtFPD2lpndZLHK0vkwyQ5VpMJIBS4KkQhmnLZqnLBAXRcKcikNMZt?= =?us-ascii?q?gNaJDhD34Ul+h30tbHZbGmX0XdeRJXQb28WmaQKR7w1HCNIDn++seU4kra2+U/?= =?us-ascii?q?JoNYtZlumwr7UIj9JpKyDJRMhHMCDdN6N5PzpLDuXSv1gkeBAFvKIpWocuYpiO?= =?us-ascii?q?JlkLMECaySP91QHCy1H7d8Sw1KaVJyYb6npHwKje3jhWpgm2p/KZj9b9ULDddp?= =?us-ascii?q?72R//SMDc/WjGcWzsyDV6j+U24tPocoPqYPWAfr0gWYiKXDw4TvLpvrdnLDmLI?= =?us-ascii?q?n+1sZpgKi+6bWyzqTy14jqUyDD5RtU+QW/oDCRXWb3j5jWpHtgyiI+ND8HPmYr?= =?us-ascii?q?CD2KpaRfYWAopNc/2eRdvUY/ZeKCk0lmZRBOHpZ9TBq54h20/MCG4eFLPFslaZ?= =?us-ascii?q?SR24WPuZkgn3UJ0Vso58gS8h/tbdj2cjCKjTF6qOrD6ptIijhWCXvvOIBTplWF?= =?us-ascii?q?A8nO9XWDrJ+xJHMmxRTotNtQ=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2F6AgDS4xVZ/wHyM5BcGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwEpgW6Odo8/BpkgKoseVwEBAQEBAQEBAgECaCiCMySCSQIkUgMDCQIXM?= =?us-ascii?q?QgDAWwFiAKCDw2xKTomAopYhhmKboUmBZ4Kkw4NixmGUAKUQ1iBCiYJAh4IHw+?= =?us-ascii?q?FPByBf1qIawEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 12 May 2017 16:37: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 v4CGbFOF031129; Fri, 12 May 2017 12:37:23 -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 v4CGbDCm223209 for ; Fri, 12 May 2017 12:37:13 -0400 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 v4CGbBGV031111; Fri, 12 May 2017 12:37:12 -0400 From: Stephen Smalley To: paul@paul-moore.com Subject: [PATCH] selinux: do not check open permission on sockets Date: Fri, 12 May 2017 12:41:24 -0400 Message-Id: <20170512164124.16981-1-sds@tycho.nsa.gov> X-Mailer: git-send-email 2.9.3 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 , selinux@tycho.nsa.gov Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP open permission is currently only defined for files in the kernel (COMMON_FILE_PERMS rather than COMMON_FILE_SOCK_PERMS). Construction of an artificial test case that tries to open a socket via /proc/pid/fd will generate a recvfrom avc denial because recvfrom and open happen to map to the same permission bit in socket vs file classes. open of a socket via /proc/pid/fd is not supported by the kernel regardless and will ultimately return ENXIO. But we hit the permission check first and can thus produce these odd/misleading denials. Omit the open check when operating on a socket. Signed-off-by: Stephen Smalley --- security/selinux/hooks.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index e67a526..dd356ed 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -2063,8 +2063,9 @@ static inline u32 file_to_av(struct file *file) static inline u32 open_file_to_av(struct file *file) { u32 av = file_to_av(file); + struct inode *inode = file_inode(file); - if (selinux_policycap_openperm) + if (selinux_policycap_openperm && inode->i_sb->s_magic != SOCKFS_MAGIC) av |= FILE__OPEN; return av; @@ -3059,6 +3060,7 @@ static int selinux_inode_permission(struct inode *inode, int mask) static int selinux_inode_setattr(struct dentry *dentry, struct iattr *iattr) { const struct cred *cred = current_cred(); + struct inode *inode = d_backing_inode(dentry); unsigned int ia_valid = iattr->ia_valid; __u32 av = FILE__WRITE; @@ -3074,8 +3076,10 @@ static int selinux_inode_setattr(struct dentry *dentry, struct iattr *iattr) ATTR_ATIME_SET | ATTR_MTIME_SET | ATTR_TIMES_SET)) return dentry_has_perm(cred, dentry, FILE__SETATTR); - if (selinux_policycap_openperm && (ia_valid & ATTR_SIZE) - && !(ia_valid & ATTR_FILE)) + if (selinux_policycap_openperm && + inode->i_sb->s_magic != SOCKFS_MAGIC && + (ia_valid & ATTR_SIZE) && + !(ia_valid & ATTR_FILE)) av |= FILE__OPEN; return dentry_has_perm(cred, dentry, av);