From patchwork Fri May 11 20:25:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Casey Schaufler X-Patchwork-Id: 10395341 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 38A7560153 for ; Fri, 11 May 2018 20:27:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 24AA828DA1 for ; Fri, 11 May 2018 20:27:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1918928FA6; Fri, 11 May 2018 20:27:31 +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.4 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,NO_RDNS_DOTCOM_HELO,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from upbd19pa10.eemsg.mail.mil (upbd19pa10.eemsg.mail.mil [214.24.27.85]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4490328DA1 for ; Fri, 11 May 2018 20:27:28 +0000 (UTC) Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.3]) by upbd19pa10.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 11 May 2018 20:27:26 +0000 X-IronPort-AV: E=Sophos;i="5.49,390,1520899200"; d="scan'208";a="13208749" IronPort-PHdr: =?us-ascii?q?9a23=3A2UUn0BRwws9oLu5GA1NLp8L5c9psv+yvbD5Q0Y?= =?us-ascii?q?Iujvd0So/mwa68ZBeBt8tkgFKBZ4jH8fUM07OQ7/i7HzRYqb+681k6OKRWUB?= =?us-ascii?q?EEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAA?= =?us-ascii?q?jwOhRoLerpBIHSk9631+ev8JHPfglEnjWwba98IRmssQndqtQdjJd/JKo21h?= =?us-ascii?q?bHuGZDdf5MxWNvK1KTnhL86dm18ZV+7SleuO8v+tBZX6nicKs2UbJXDDI9M2?= =?us-ascii?q?Ao/8LrrgXMTRGO5nQHTGoblAdDDhXf4xH7WpfxtTb6tvZ41SKHM8D6Uaw4VD?= =?us-ascii?q?K/5KpwVhTmlDkIOCI48GHPi8x/kqRboA66pxdix4LYeZyZOOZicq/Ye94VS3?= =?us-ascii?q?BBXsJMXCJfBI2yYZYEA+4YMepFs4Xxol0Dohy8Cga2BOPvzThIimbv0aAm3e?= =?us-ascii?q?ksEBzK0BU8E94TrX/YqMv5OLsXXe2z0aLGzyjMb+lO1Dnj5ojGchMvr/+CUr?= =?us-ascii?q?1/c8Xe1UYhGR7djliStIDoMS2a1v8WvmiH7edtT/6jh3IppgxzpDWk28ciip?= =?us-ascii?q?POhoIQ0l3J6z92wJ0rKty4VUV1fMKrEJtKuCGHOYt2Rt0tQ3t1sys91rIJo4?= =?us-ascii?q?W7czYKyZk83B7Qd/yHfJKV4hLtUOaePy14iGt5d72lnRq97U+gyujlW8SyzV?= =?us-ascii?q?1ErTJFn8HRun0C2BHf8MiKRuZn8ku/1juDyRrf5vxcLU01l6fXMYMtz780m5?= =?us-ascii?q?YJsEnOHjX6lFvogKKZcEgv5/Km5P79Yrr8o5+RL4p0igbjPaswgsG/GuE4Mh?= =?us-ascii?q?QWX2ic5OS8yKXv/U3nT7VOif07irXZv4rAJcQau665GBVZ0poj6hmjDzem18?= =?us-ascii?q?4UnX8bI1JeZB2LlY3pO1DKIPzgDPe/hUqjkCtzyvzbMbDsDY/BI3jenLv7Y7?= =?us-ascii?q?pw5FBQxBAuwdxH4pJbELABIPb9Wk/rs9zYCwc0MxeqzObjCdV90J4eWG2WDq?= =?us-ascii?q?CCN6PSrFmI6f4xLOmXf4IVpDb8JOQl5/7pl3M5n0QdcrOz0ZsYb3C4AOxqI1?= =?us-ascii?q?+Fbnr0ntcBDWAKsxI8TOztjl2NSyJTZ3aoUKI6/Tw7CoWmDYHGRo+3m7yBwD?= =?us-ascii?q?m0HodNZmxcDVCMC3jofZ2eW/gQcCKSPtNhkjscWLijSY8uzw2htAzhy7pgKO?= =?us-ascii?q?rU+zMYuInt1Nhx+u3Smgo99SFyD8SBzmGBVWZ0nnkHRzUuxqBwvVR9ykuf0a?= =?us-ascii?q?h/m/FYDcJc6OhXXQc8NJ7c0+t6BsvzWg3fYNiGVkyqQtK8ATE+Vtgx2cMBY1?= =?us-ascii?q?5hG9W+iRDOxzelA7gTl7yNGZM77Kbc33nqKsln1XnGzq4hg0MhQstVOm2snr?= =?us-ascii?q?R/+BTLB47Vj0WZkL6nerkA3CHX7meO1naBvEZdUAFsS6rFRmwfalHQrdvn+k?= =?us-ascii?q?PIV6WuBqg/Mgtd1c6CLbNHZcPxjVpcXvfjOc/ebnmpm2iqHxaIx6iMbJLue2?= =?us-ascii?q?oHwCrSFlIIkwcJ/XaJLQI+HDuuo3rCDDxyElLie0Ls8e9iqHylSk870QSKYF?= =?us-ascii?q?N917qv+h8YnvucS+sN0bICvScusTR0HFKm0NLRBNuMvQ1hfL9TYdkl+ldIyX?= =?us-ascii?q?rZtxBhPpynN61jhl8fcwNxv0710hV3DpxMkcksrH8wygp9M7iY0FBAdzOGw5?= =?us-ascii?q?/8ILvXJXfu/Bq3ca7Zxkne0MqK+qcI8Pk5pVTjvAWsFkU86XVqyNdV3GWB6Z?= =?us-ascii?q?XNFgodS4rxUlww9xh4ub7VfjU965nT1X12Pqm+qiXC1M4xBOs51hageM9SMK?= =?us-ascii?q?2eFADoFc0VG8muKPcxllisdhIEPfle9LU6PsO9bfeG37SrPOl4ljK8kWtH+J?= =?us-ascii?q?x90l6L9ydkSe7HxZUFw/aF3gacVDfzllShssfqmYxeYjESBGW/wzD+BIFNfq?= =?us-ascii?q?1yYZoLCWC2LsKt29p+nZ/tVGBC9FO4HVwJxMqpdQCVb1zn0g1azV4XrmC/mS?= =?us-ascii?q?uk0zx0lCkkobaF0yzK3evibwYHO25MRGR5llfjPYm0gM4cXEi0bggmjgGp5U?= =?us-ascii?q?DkyKhHvK5/NXXcQV9UfyjqKGFvSrGwuaefbMNU55MotCpWXP66YV+EVr73uw?= =?us-ascii?q?Ea3D/7H2tC2DA7cCmnuo73nxxgj2KdN2pzoWHCecF2whfe6tncSuRX3jYcQi?= =?us-ascii?q?l3lyXXDECmP9a15dWUi4vDsuemWmOvTJJTdTXrwp2atCug/mBqHwOwn+qold?= =?us-ascii?q?36FAg2yyj718NlVS/QthbzfpHr17imMeJgZkRoGl785NZmGoF5iIs8no0f2X?= =?us-ascii?q?gdhpWT8noKimPzMdRd2a3kdnoNQiQHw9nP4AjqwEdjNG6Gx5rlVnWBxctsf9?= =?us-ascii?q?26YmIN2iIh9sxKE7mb7LhFnStzv1q5ohncYeNlnjccz/su6WIVg/oTtAor0C?= =?us-ascii?q?qdHqgYHVNEMiz0ixSI89e+ob1NZGaodbiw0FRxncq9A7GFrABRQ235eoo+Ei?= =?us-ascii?q?9r9Ml/N0jM0HLr4IH+ZNbQdc4TtgGTkxrYjOhaNpQxluERiCpkJ239u2Yly+?= =?us-ascii?q?glghxyx526u5KHK2p19qKjHhFYLiH1Z98U+jz1laZRhNuW34SxEZV5ADoLWo?= =?us-ascii?q?foQuyyED8JqPTnLBiBECcnqnuBArrfGhKf6F16oH3RHZCrMGuXJHYHwtl4Qh?= =?us-ascii?q?mSOlBfihgOXDomhp45ChyqxMv5fUdn4DAe+0X1qgVKyu11NxnzSGHfqxm0aj?= =?us-ascii?q?0sUpiQMAJW7h1e50fSKcGe9vh8Hzxc/pC6sAONK3CbZgRRAWEHQEOEAUrvPr?= =?us-ascii?q?605dnP6+KYHPaxL+PSYbWSruxTT/SIxJKr0oR45DuMM8KPPndsD/IlxkpDQX?= =?us-ascii?q?B5G8PcmzoRUSAXkTzCb9KDrhem5iJ3tty/8OjsWA/364uAEb1SMclo+xCzmq?= =?us-ascii?q?qDOfCfizt+KTZCzJwM3WXIyL8d3FEMly5uayOhEbMatS7CVKjQgLNYDwYHay?= =?us-ascii?q?NvM8tF978z0RVIOc7cjNP1yqN0g+UrC1hbT1zhm8CoZcsMI22nMlPIGlqLPq?= =?us-ascii?q?ycJTLX28H3fb+8SbpIgeVarR2/pyuUE1T5MTSFiznpUAuvPPpWgy6HORxSoo?= =?us-ascii?q?a9cgxiCWL7VtLpdgW7MMNrjT0x2bA0gGnKOnQEMThkaE5NoLyQ7TlDgvVjFW?= =?us-ascii?q?xB73xlIvOCmymF7unXMJIWveFsAiRumOJQ+G46xKdN7CFYWPx1nzPfocV1rF?= =?us-ascii?q?2hlumPyyFnUAZVqjpRn4KEo1ltNb/C9pZeXXbE/RQN7XifChkRu9RkCsfvu7?= =?us-ascii?q?1LytTVmqP8MitC88nT/csaHcTUL9iHMHU5OxrzBDHUFBcFTSKsNWzHgUxdkf?= =?us-ascii?q?WS9nmLoZghsZXjgoQBSqVcVFAvEfMaEEtlFsQYIJhrRjMkjaKbjMkQ6HWlrR?= =?us-ascii?q?nRS8JavpbcW/2PH/rgMzeZgqNCZxcSxrP4N4sTPJXh20N+cll6gJjKG03IUN?= =?us-ascii?q?9XrS1udBE0r1tW/Xh5Vm08xUTlaga3738SEf67hRk2iwRkbeQq7jfs7E89Jk?= =?us-ascii?q?DWqysojEkxhdLljCiNcD72Kae8R5tWCy31tkcvNJP0WBx1bQqskkxnLzrLW7?= =?us-ascii?q?VRj758em9xkw/cpYFDGfhCQq1YeBUQ3+2YZ+000VRArSWq3U1H5evFCJt6kw?= =?us-ascii?q?sqdZ+sr25e1A94ad41JLDQJLBXwVRKgaKOpCCo3PgrwAACP0YN7H+SeCkQtU?= =?us-ascii?q?wOKLYpPS6o8/dv6QyFgDtDZHIDV/wxovJp90MxIeKAwDz807RbMEC+K/SfL7?= =?us-ascii?q?+Fu2jHjcOIWE0/1lgWmEZf57h5zccjflGPWEAu1rueChMJNcTaKQFPccVT9G?= =?us-ascii?q?LffSCQvuXR2Zh1JZmyFvj0Te+Ss6YZml+rExw3H4QN88sBBYKh31vCLcf9K7?= =?us-ascii?q?4Exw4t6xr3K1WYFvRJeQ6LkTcdr8G50pB3wZFXJisBDmVlLSW3+rHXqxcugP?= =?us-ascii?q?qERtc5fHEaX4oDNn8tV826nTNZs25HDDmt3eIT0BKC4CPkpiTMEDn8aMJuZO?= =?us-ascii?q?yKahNoCdG2/yg/8qethFHL9ZXeIn31Os55ut/T8+8aoYiIC+9MR7lnr0jcg5?= =?us-ascii?q?VYR2CtU2PXDd61Jp3wa44wbdz0Cne3SUGwizM1TsjrJ9mhNK6Ijh/0RYxMqo?= =?us-ascii?q?mUwCgjNdOhFjEZAxp/veUD5KNgagIde5U7ZB7ptwI5N6y5OgiVyc6hQ2e3Jj?= =?us-ascii?q?tQVvVfw/i6a6ZRzyUycu+w0GEgQY0iz+mr7U4NQ4kHgQrAyvalfIRRSzX8Gm?= =?us-ascii?q?JDdAXVvio2jXJhN+Yozuc42hPIvkEWMyqXe+xxdGxEo9Y8CEuIIXVwC2o3W1?= =?us-ascii?q?+cjY3H4g63x74c5jZTkcxI3ONCq3XxopjfYDewV6OxspXVrzAsbd44rK1tKY?= =?us-ascii?q?bjONeJtIvCnjzDS5ndqhGKUCygGPVGgdVfPCVYQP1MmWEkJ8MGo5ZB5lQtWc?= =?us-ascii?q?c+PbBPD7Mspr+yYzp+ESES1TMZV5+H3DEamOezwaHalhCLf5k5LBwEqo9Ngs?= =?us-ascii?q?UDXC5yYyMeoqCjV4HXl2+LSmgLPAkT4h5W5AIFjINweP7q4JbQRp9W1zFWu+?= =?us-ascii?q?50UjfMFpRw+Vr3UH2ZgVj5SPWkkuymxwFSwent0tYFRhFwF1JRx+FMlksnML?= =?us-ascii?q?t3MbUfvpbWsj+UckP3pGftx/G8JFlS18LUa1z4DIzKtWfnXCwT43sUSpNLyH?= =?us-ascii?q?HYCJQdjhF5ZLwtpFpSPICsYlz+6CA8x4R1A7m4Utimx04irXYCXSiqCdRAC+?= =?us-ascii?q?ZisFLZQzBlZperqJL+O5pMXmBQ4pqdq0xCkEVsNS65xoBQK8ZX4j4DRDJPuy?= =?us-ascii?q?mSvMOuSM1f3s97F4UDIs1iu3f7Aq9EO4Oco3w3urzu1n/W4CowsFGkyzWvA6?= =?us-ascii?q?W4Vf5W/3UCGgU1IGSTslUvD+wp8mrJ7lDBrlV08PxBCriJk0pxvC53HopSCT?= =?us-ascii?q?ZRyXClM1NzQWFGs+pAMqTaachcTOQpaBCyJRM+DeYm0FKN/U5qh3f1eStyth?= =?us-ascii?q?FV+yrFRQk7STEVgqvxmT0ZssynOzgaRIxTYDo8cSjFMByUmTpLvBlBdk5mQZ?= =?us-ascii?q?YZDchZ+7sDx4tb4tLCSVqwKSECRBFiKh833udelUFZtEWVYjzSDQ2tdfnTqB?= =?us-ascii?q?J3ZtuRoNSvLPvn4AdNkpnnv/wg96UfW32mnhWgTsvQr4DgqtGHtFaCeanjPu?= =?us-ascii?q?KgZn/BSSTDggqrhbc4FZXK+TbcMBZDIZlg1XUkeYThCXLMPRlePaIUOVdUVa?= =?us-ascii?q?BgZtVaue1aY8hkeLgX9qNzGh2HQQ7gF5K1oPlAMFnTWSzULz+d/eynvYLT8b?= =?us-ascii?q?vdRPD4ZsyX23bIWb94Poth5DngHLfqzJVe9Vbo1fdr6kN6U0LJMySboNTmPA?= =?us-ascii?q?ML69GodlH+sZ0xATPWHJBwnWLxxkFaacUYXTCl/Y8FyJNd9HbwU/h30lbysO?= =?us-ascii?q?1V87lr95U376puyceuKqfYMe5avlN/AhiIGgVq8Y0gAG1lSGBVZu8eNuvRfb?= =?us-ascii?q?gDgs/0sO33EbIY6AGO++NFc9THP1/OltO5Cj6CVRxOhB0BpiICLguAy/6FnL?= =?us-ascii?q?d5ScS/qujj3UIt+Fy+IQQYzL124IeE566IpPPWbxTNzLgLQK7qRtjporQroU?= =?us-ascii?q?OS6uUulKQSdWxtfw2nDO8dW9Yfxmj6y6AqwzgsE8TeEL3+4/NDS2g2njT7m5?= =?us-ascii?q?B6BVkWHO0bHaaT94REgmg4g/DZNsERcq1alWaPCB+kErsGyXG17iuaO3RqjQ?= =?us-ascii?q?/V3BHxW2yz6kX6rShiQSvD193jiFZaVqGrBUdOWCqkIU14sDKKPAfzsdr4p6?= =?us-ascii?q?Q0418sMmzlstKNm3GtOLVJEM3jPNacOzU7pEoLjJ0tQdyiwYYbGd6mLdcQ9n?= =?us-ascii?q?F+a+HS62Ktky9PuadInZHe4t2P+vXKAXagk7Caq6+TyzxCzXg4p14/4Mi6Nv?= =?us-ascii?q?7S/92KX+io12EJQid6vAvBWQK1qrPFoF0PPEyL0V3EmIoUMdFF03g40Vvm5O?= =?us-ascii?q?s4QN4p8gVRCJrAbesYpT/vIDv03UqfY9UvWymayDtXG1L4HEJ2GKcixW3wu9?= =?us-ascii?q?jJmm3I+10yQYlwdVLoigBrD4kiLkIt8lcXyDIZEQcRcRCbEK2oBUP9IIsFVE?= =?us-ascii?q?kMcw6I06Shd6csw0Jz3q2g6/PJYex7HaoNOe5XjhSSk1hDBpIWraoeTapndF?= =?us-ascii?q?9c767WqBLtC4rmX/j6jXo/L+C1QsRB/M8FsHst/xiwSAC96ZdZ6LYbkoqHer?= =?us-ascii?q?RDYZjWs8B2911n6iIXdixRnBh/iAu0UfgGq+D//tfbsJSp6uG0VKYuXukX7A?= =?us-ascii?q?Y7B2B/j5v2nVAirsra1/9GRY3JlYv/8A5MI3mQuIbZyRV8KvQBK5itfLl+83?= =?us-ascii?q?ULPS8eJ2gBPdCOcfkz/zdtMCnP51xFGs4MaskXPNDTlgBIik3kQ7VT9svHGl?= =?us-ascii?q?CGC4d8bd0o73HtxDAz75Q8Tv7q6CWqKpDH81FNI/RDgT1jlN3cougV3f3SCC?= =?us-ascii?q?8Q7XmCdRd1xiKCy5+QC/f/5uiMzM/bV0kGHyEsSYtdIiSN+RC/TOqviJrpSh?= =?us-ascii?q?+U6tP0gJ8mckKQR2C+nKMBsqlWCu5MkCT73j9ZFoDunPKYqN+s5WRYt1FdF4?= =?us-ascii?q?Zz9xLFEr1FPppnIRT4itWrRk9kCyvwZM7UbQEutPOLyOkD5et+Nk3+ZZIUIx?= =?us-ascii?q?8fxLL67GBaTg1wR7LsuVaZR+0RbsN8SPzYtnBV9Z5gK6gXMVifo5zqrjFIpE?= =?us-ascii?q?oqDw8pbL8wsyFVd0jPnA1TQKb0u78AhxACUd54p09DA2awN38/5zbdU6Rakr?= =?us-ascii?q?WRAuQP8jqPVqwOT1loMiRmThO0xpVhYb2pkOtDsmNbgyx9of8q0yd8SBu7oy?= =?us-ascii?q?3sqLoH2Sg897GgqDUBpXtFQ/2ckyjWB1VDwvAKgLwSCnn471yzfmUDYJH04L?= =?us-ascii?q?Z5OcTq7ZMh7GgnYRU/Yy0GWvytCy70j6OPDI2ArtZchBqWtcXVar+zKykSOa?= =?us-ascii?q?gnxRLlWXd9zhDUnAx0/2sTXjWg8NgkKZ24OcYkxSqoGm/beU0O4qxTs8vxsl?= =?us-ascii?q?gLQ/UwaV97xmVszNSHTDUXRMPTA2Y1khQkaWJcfZ1Y9xAaEbUojy2TvqlC+Q?= =?us-ascii?q?EUfCvUEpq79YbNh8vI3mM9TdhyzGLMuqKFno8q0GFim95s4C6BpnASd+3AU8?= =?us-ascii?q?ByGXXy14Zfyen7Z/qzqOAHTJVpxK6mUP8YPcmp4XG214lyWk+52rQeGEK0Me?= =?us-ascii?q?EbxrfBUieqVXOXVP+Oc2iNgzY5KFD96QOvLl0tZ8dAt1U9Pffahp5Aiw3hVq?= =?us-ascii?q?t5RiKUpVDF12EjKecaeBgtuIe7egwFUPIRZ/KCKucw2vE+DkUDb2PRFytsF+?= =?us-ascii?q?C2qUKtnJR8O3h45UX6YOLt8h3pMdeLHhkEEJXaroJq+fGhR2KOI3lgzBpoME?= =?us-ascii?q?lz7effGEw7tvVAfJaJgdjQm9N73PYAd/h3LSI9ut8TmoRk6YSPzseKcBfRwY?= =?us-ascii?q?j2JdHUpPiYHvLew14temFAXboTeRn16JkiPt4lR73TGqNUvRYGCqg5R5wuLH?= =?us-ascii?q?z89LxyLANvcg7RY6m0gsbqpuKXfJdUoWHZ7k4oJifGpxID0uC0TRB8b52ynH?= =?us-ascii?q?XyLpUwSS5AotBuERZmApVAG9kBrwumBJ6Unru3i9mv9ENm6Kc2tv/UMdWCgN?= =?us-ascii?q?C42ZhhGoNX7lGRPSrAQaxsjllhg8ysjfralJr8E8XvfZUDTuctBibhSZvjVt?= =?us-ascii?q?G7KzSTKof/dlRA/rq0zr10SFOSaTr/Uq7AszerYrEs2UwmzsRde+3JwXR597?= =?us-ascii?q?jG3PPqbnxf4yKkqmSEcpBY6QqOTdfCUgpURPzNy2NsGakafMOg7+sVGcAzy9?= =?us-ascii?q?ibpQ9o5XJN19XTZ+Cagwfo20RmZdqPN0bt2iAkSaEWMR+/Ng0qmmafpXPDVz?= =?us-ascii?q?AUZPOBAOJOxdqUFRfw/FJZnWA2enUHQjOuQs2ecyBP4OeXTy7P+ANQBMsYhM?= =?us-ascii?q?azeFUkrevqEK9vIJoT3a2Is7UB2fRuKyjJX8Vcd3XSK79weDhWDuzJv1UuSh?= =?us-ascii?q?UNtb8zW4w8Yd6FJ0ZRdA+jxC7phSDF1k68I9+h2b2CJyEV2n5H1bXA0CVJ4Q?= =?us-ascii?q?6jtqDdyvHuTKvEa9nWVfjeOWJxTjycSikzFwOq9E2itv4svb+cJnkS5EsdYT?= =?us-ascii?q?+IAUgVq+ZttY6URk3anOB4NLgNnuqbQGikSih/jrAzHQ5NvEWBQrwEDwaAPF?= =?us-ascii?q?H7h28JkwW5K+4ExnnlZqCWwqdPE7gdC5BBY9WCSNvRZP5aKi1tnTxfM+G5KY?= =?us-ascii?q?6P540l207FGDNKW5LD80eTGQvHGqbGlTv2QYUYuZQ1sSM0+9XW2zV6CLnMI6?= =?us-ascii?q?3A9myz8o+81XeAsLSDEGQgZlc6xucLAW3HxRhEewRmQ90WuUS4WqebfA4Mz3?= =?us-ascii?q?Mmj+tyxgUBMBp+SHxg03Ba3b69F8RVRERSjTaGUfQGa1cxBzQ18A=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2BvDwDT+/Va/wHyM5BbHAEBAQQBAQoBAYNAA4FcKINyi?= =?us-ascii?q?GKMEoFQKXUagUCSCYFdKhMBgUuDPIJEITgUAQIBAQEBAQECAWscDII1JIJPA?= =?us-ascii?q?QMDAQIgBBkBATgCAwkBARsDAQIDAiIEAgIDAUEKCAYBDAYCAQEBgx6BaQMVA?= =?us-ascii?q?6BvihhtgWkzgm8BAQWBAgEBXoI2A4E1gh8IF3KEeIIkghOBDyOCMweEZoM7g?= =?us-ascii?q?lSMe4p2QwmOS2SHFYR4izaGTDMhgVJNIxWCfoIUDBeDRYocAVVPegEBkCABA?= =?us-ascii?q?Q?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 11 May 2018 20:27:25 +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 w4BKRBjv027901; Fri, 11 May 2018 16:27:14 -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 w4BKPH2K026078 for ; Fri, 11 May 2018 16:25:17 -0400 Received: from goalie.tycho.ncsc.mil (goalie [144.51.242.250]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w4BKPOgk027815 for ; Fri, 11 May 2018 16:25:25 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1ChBQCP+/Valy0VGNZbHAEBAQQBAQoBA?= =?us-ascii?q?YNAgV8og3KIYowSgVApdRqBQJIJgWSCAoJ1AkWCRCE4FAECAQEBAQEBAhQBAQE?= =?us-ascii?q?BAQYYBkuFNAEDAyMEGQEBOA8cAwECAwImAgJFCggGAQwGAgEBgx+BaQMVA6B8i?= =?us-ascii?q?hhtgWkzgm8BAQWBAgEBXoI1A4E1gh8IF3KEeIIkghOBDyOCMweEZoM7glSMe4p?= =?us-ascii?q?2QwmOS2SHFYR4giuJC4ZMM4FzTSMVgn6CFAwOCYNFihwBVU+RHAEB?= X-IPAS-Result: =?us-ascii?q?A1ChBQCP+/Valy0VGNZbHAEBAQQBAQoBAYNAgV8og3KIYow?= =?us-ascii?q?SgVApdRqBQJIJgWSCAoJ1AkWCRCE4FAECAQEBAQEBAhQBAQEBAQYYBkuFNAEDA?= =?us-ascii?q?yMEGQEBOA8cAwECAwImAgJFCggGAQwGAgEBgx+BaQMVA6B8ihhtgWkzgm8BAQW?= =?us-ascii?q?BAgEBXoI1A4E1gh8IF3KEeIIkghOBDyOCMweEZoM7glSMe4p2QwmOS2SHFYR4g?= =?us-ascii?q?iuJC4ZMM4FzTSMVgn6CFAwOCYNFihwBVU+RHAEB?= X-IronPort-AV: E=Sophos;i="5.49,390,1520913600"; d="scan'208";a="275327" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 11 May 2018 16:25:24 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3Av7jgkxPMMLA2uu5KFZIl6mtUPXoX/o7sNwtQ0K?= =?us-ascii?q?IMzox0K/76o8bcNUDSrc9gkEXOFd2Cra4c0KyO6+jJYi8p2d65qncMcZhBBV?= =?us-ascii?q?cuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx?= =?us-ascii?q?7xKRR6JvjvGo7Vks+7y/2+94fcbglUijexe69+IAmrpgjNq8cahpdvJLwswR?= =?us-ascii?q?XTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3?= =?us-ascii?q?sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Qi?= =?us-ascii?q?qp4bt1RxD0iScHLz85/3/Risxsl6JQvRatqwViz4LIfI2ZMfxzcaTfctwARW?= =?us-ascii?q?pBWcFRWzVYDo6gYYYCDvcNMf9Eo4XgulACqQWyCRWpCO7p1zRGhGL53bci3u?= =?us-ascii?q?o8Dw/G0gwuEdEAvnvao9r6NrsdX++uwanUzzjOde9a1Svz5YXKdB0qvPGCXa?= =?us-ascii?q?h3ccrU0UQiCRnKjk6Opo3lIjiby/gCs2iB4Op9W+Kvj3AoqxtsqTWo2sgjkJ?= =?us-ascii?q?LJiZwVy13f7iV23IY1KselSE51Zd6rDoFQuziGOIRsWM8tX2ZouCMjx7AApJ?= =?us-ascii?q?W1fzAKxYw5yxLCZPGLaZaE7x35WOqPPDt0nn1odbKnixuz80Ws0PDwW8iw3V?= =?us-ascii?q?pQrydIksPAum4T2xHc7MWMV+Fz8V272TmV0gDe8uFELl4wlarcM5MuzLw+mJ?= =?us-ascii?q?kVv0nNACL4gln7gLOXe0k+5Oen9eHnYq7pppOGMo97kAD+MqA0lsy6AOQ4Nh?= =?us-ascii?q?ACX2md+euiyL3u5VP1TKhFg/EsjKXUv4rWKdoGqqKjDAJY0p4v6xOlADen1N?= =?us-ascii?q?QYk2MHLFVAeB+fk4fmIUrOL+74DPqkmFSjjDdryOrbPr3vBpXCMGLDnK79cr?= =?us-ascii?q?ln8UJT1A0zzdVH65JOFr4BOO7zWlP2tNHAFR82LQi0w+fhCNVg2YITQn6PA6?= =?us-ascii?q?+FP6PStl+E/OQvI/KWa4MPtzb9LOYltLbSiiodonpVKa2o24YHLWu1Fel8Il?= =?us-ascii?q?mIJH/rjsoFHE8UsQckCu/nkluPVXhUfXnkG+oYxRUeQNaiDIHeVsWujaaH0S?= =?us-ascii?q?OTAJJbfCZFB0qKHHOucJ+LDbNEUCuPJodElTseWPD1U4Y80Tm2vRL+jr9gKf?= =?us-ascii?q?DZvCYfsMSnnONp6vXTmBd6zjl9C8CQwinZVG1vtn8ZTD8xmqZkqApyzUnVle?= =?us-ascii?q?BDrrR8FNpO97sdSQo+NJjB38RmGtvyXUTHZd7PR1G4FJHuSwoUZ/kShtMPeE?= =?us-ascii?q?1gAM6KihHYwzHsW+ZTkKaETtRgyYf19Fu0K8dmwGvdz4EljkI6WY0XbCuhnK?= =?us-ascii?q?Eps0DxAI7P22eel6+sbqkalHrP82eFi2iJvEheSwN2ea7MW3cZZ0DfqZLy4U?= =?us-ascii?q?aUC/eNBLk8eiBGzs3KfqhHZ8biilJFbPzjItPbYn+03WCqCkDMjo+BcJH3fC?= =?us-ascii?q?091SPRAQBQiw0V8muHM009Cz2nrmb2DXlqEkziJVjl8vRkoTW9Qwk211fOJ2?= =?us-ascii?q?9o0reusjsSn+adULtH3LcDoj0gsB1yFVOw3pTREdXW9CR7e6AJStom7UYP7m?= =?us-ascii?q?nZvhFzOpG6Z/Rpj0UTYixstEPnyhtzB58FmsFsp3QvmlkhYZmE2U9MImvLla?= =?us-ascii?q?v7PafafyyipEr1OafLxlHT1sqX8a4T6fM+7k/upxytClF9rCd609hRiiqE78?= =?us-ascii?q?yXSgcfVIn+FEM+9hw8orDeMWEx5ILRgGVlKrL88iTD1NQgGPY/x16+cs1ePq?= =?us-ascii?q?KJGE66E8ATC8W0bu1/s0mgbhUDeutV8aM=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0A1BQDX+vValy0VGNZbHAEBAQQBAQo?= =?us-ascii?q?BAYNAgV8og3KIYowSgVApdRqBQJIJgWSCAoJ1AkWCRCE4FAECAQEBAQEBAgE?= =?us-ascii?q?TAQEBAQEGGAZLDII1JIJPAQMDIwQZAQE4DxwDAQIDAiYCAkUKCAYBDAYCAQG?= =?us-ascii?q?DH4FpAxUDoHiKGG2BaTOCbwEBBYECAQFegjUDgTWCHwgXcoR4giSCE4EPI4I?= =?us-ascii?q?zB4RmgzuCVIx7inZDCY5LZIcVhHiCK4kLhkwzgXNNIxWCfoIUDA4Jg0WKHAF?= =?us-ascii?q?VT5EcAQE?= X-IPAS-Result: =?us-ascii?q?A0A1BQDX+vValy0VGNZbHAEBAQQBAQoBAYNAgV8og3KIY?= =?us-ascii?q?owSgVApdRqBQJIJgWSCAoJ1AkWCRCE4FAECAQEBAQEBAgETAQEBAQEGGAZLD?= =?us-ascii?q?II1JIJPAQMDIwQZAQE4DxwDAQIDAiYCAkUKCAYBDAYCAQGDH4FpAxUDoHiKG?= =?us-ascii?q?G2BaTOCbwEBBYECAQFegjUDgTWCHwgXcoR4giSCE4EPI4IzB4RmgzuCVIx7i?= =?us-ascii?q?nZDCY5LZIcVhHiCK4kLhkwzgXNNIxWCfoIUDA4Jg0WKHAFVT5EcAQE?= X-IronPort-AV: E=Sophos;i="5.49,390,1520899200"; d="scan'208";a="11715298" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from uhil3cpa06.eemsg.mail.mil ([214.24.21.45]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 11 May 2018 20:25:23 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;3b0f6dd7-d123-463c-a4bd-615d288352c7 Authentication-Results: uhil19pa15.eemsg.mail.mil; dkim=pass (signature verified) header.i=@yahoo.com X-EEMSG-check-008: 306842601|UHIL19PA15_EEMSG_MP13.csd.disa.mil X-EEMSG-SBRS: 3.5 X-EEMSG-ORIG-IP: 66.163.185.40 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AwAwAa+/Vahyi5o0JbHAEBAQQBAQoBAYUfKINyiGKNYil1GoFAkgmBZIICgnUCRYJEITgUAQIBAQEBAQECFAEBAQoLCQgoIwyFKAEDAyMEGQEBOA8cAwECAwImAgJFCggGAQwGAgEBgx+BaQMVoH2KGG2BaTOCbwEBBYECAQFegjUDgTWCHwgXcoR4hDeBDyOCMweEZoM7glSMe4p2QwmOS2SHFYR4izaGTDOBc00jFYJ+ghQMDgmDRYocAVUfMJEcAQE X-IPAS-Result: A0AwAwAa+/Vahyi5o0JbHAEBAQQBAQoBAYUfKINyiGKNYil1GoFAkgmBZIICgnUCRYJEITgUAQIBAQEBAQECFAEBAQoLCQgoIwyFKAEDAyMEGQEBOA8cAwECAwImAgJFCggGAQwGAgEBgx+BaQMVoH2KGG2BaTOCbwEBBYECAQFegjUDgTWCHwgXcoR4hDeBDyOCMweEZoM7glSMe4p2QwmOS2SHFYR4izaGTDOBc00jFYJ+ghQMDgmDRYocAVUfMJEcAQE Received: from sonic313-17.consmr.mail.ne1.yahoo.com ([66.163.185.40]) by uhil19pa15.eemsg.mail.mil with ESMTP; 11 May 2018 20:25:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1526070321; bh=bxBeQBlYpmF7Bg1Hx988D9Yy6AJyqX3mG+o0QJJsauI=; h=Subject:To:References:From:Date:In-Reply-To:From:Subject; b=GvXonRu5zQIfoVL0Zq4lbnU1hThaxnl7o8Jdggx/V/CI//cJi/bcwr3XIIjcBNdwbrqBsc8XbJfTRA4ksPkNcYUY84GH9p+byymEavUESzaarR8ZzLKU5yU5XlYnotk1fq+Ofv+ix0qHbsozlJezRPQuxrZUId5nZSrVyY6DCH3vaYGeOThVGdbvAa1ZllrDiMuDSI0y62E4XOgUf0JMri6vZx1irB+eSb54II70elFoFfxvVujyjMvGzzmaJnRPl+xJ3C0QM853zQewytVW1a9eeBPj0ifu+e09NHswaHTzZDxCjcAkBuThABsarFADA4FPsr6pgncBmFNtjDc3Uw== X-YMail-OSG: nXVfdSkVM1lSVNUo.s04dM6x27bSGGgl69Nzh9ea6tlDM0NVHrDrbmnv8zMT9ou 7NSrIfmB5O6xOmBXad2rcenHptsdqNJuHYghwqOj.2iDi4Pm3XCPixGBYvzcepRXukNHL5MAGcs9 AXo.YgfAE.tfFB2vz_07939opsnPkBkUh3QTYZ9fBqWC2wNxAealFDO8KhX9JMfqgn6UbyvCoBiG YIcm9OLGonpi9NeLUp7iMHvaA4Hc6zA5b2.ZWjQZQKlk9KccKic88RwJTnWc4VKMcMTxHNMuEqv2 uUxK6azRswcrSb5ZJFvsZuDvWWQUHyTLIht6bkWO4ObxdeKUurdRuYDxfUhdqmT8_.kkqptPbe6T 4ZNd_Eur3PIqX9VjZZ4xK40X3g5M1_lrSXuYROgBd8oItv0isVRHCMxrPmc5k5CeSxWokBBONTlX uUX6wmfq3IaNtF.qx1P0ubiOpcjNmgn8S4qqk6Qa4RYOhLYlL9hQzgAeCxLxVShTcdXmX4cHPdo2 jYNNQsm.Ds4ZimwjLGKdBlq6Pno.DVELR0989gJiJnbYtfST6F.QHnaGVIEZneX71wlxo64fIwgs 0PfuZ0a08K._q55iZp1K41tyfUu3Oe0bD_io7unFwXz3418S3YXB1oDGyyYH5DQ0tms68gBptJmC fj1Y- Received: from sonic.gate.mail.ne1.yahoo.com by sonic313.consmr.mail.ne1.yahoo.com with HTTP; Fri, 11 May 2018 20:25:21 +0000 Received: from c-67-169-65-224.hsd1.ca.comcast.net (EHLO [192.168.0.105]) ([67.169.65.224]) by smtp431.mail.ne1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 902bc9134b8f213491b78228e38c90a6; Fri, 11 May 2018 20:25:17 +0000 (UTC) To: LSM , LKLM , Paul Moore , Stephen Smalley , SE Linux , "SMACK-discuss@lists.01.org" , John Johansen , Kees Cook , Tetsuo Handa , James Morris References: <7e8702ce-2598-e0a3-31a2-bc29157fb73d@schaufler-ca.com> X-EEMSG-check-009: 444-444 From: Casey Schaufler Message-ID: Date: Fri, 11 May 2018 13:25:16 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <7e8702ce-2598-e0a3-31a2-bc29157fb73d@schaufler-ca.com> Content-Language: en-US X-Mailman-Approved-At: Fri, 11 May 2018 16:27:03 -0400 Subject: [PATCH 24/23] LSM: Functions for dealing with struct secids X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP From: Casey Schaufler Date: Fri, 11 May 2018 13:18:11 -0700 Subject: [PATCH 24/23] LSM: Functions for deling with struct secids These are the functions that mainipulate the collection of secids. Signed-off-by: Casey Schaufler --- security/stacking.c | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 security/stacking.c diff --git a/security/stacking.c b/security/stacking.c new file mode 100644 index 000000000000..7c9643323a1e --- /dev/null +++ b/security/stacking.c @@ -0,0 +1,119 @@ +/* + * Security secid functions + * + * Copyright (C) 2018 Casey Schaufler + * Copyright (C) 2018 Intel + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ +#include +#include +#include +#include + +/* + * A secids structure contains all of the modules specific + * secids and the secmark used to represent the combination + * of module specific secids. Code that uses secmarks won't + * know or care about module specific secids, and won't have + * set them in the secids nor will it look at the module specific + * values. Modules won't care about the secmark. If there's only + * one module that uses secids the mapping is one-to-one. The + * general case is not so simple. + */ + +void secid_from_skb(struct secids *secid, const struct sk_buff *skb) +{ + struct secids *se; + + se = skb->sk->sk_security; + if (se) + *secid = *se; +} +EXPORT_SYMBOL(secid_from_skb); + +void secid_to_skb(struct secids *secid, struct sk_buff *skb) +{ + struct secids *se; + + se = skb->sk->sk_security; + if (se) + *se = *secid; +} +EXPORT_SYMBOL(secid_to_skb); + +bool secid_valid(const struct secids *secid) +{ +#ifdef CONFIG_SECURITY_SELINUX + if (secid->selinux) + return true; +#endif +#ifdef CONFIG_SECURITY_SMACK + if (secid->smack) + return true; +#endif + return false; +} + +#ifdef CONFIG_NETLABEL +/** + * lsm_sock_vet_attr - does the netlabel agree with what other LSMs want + * @sk: the socket in question + * @secattr: the desired netlabel security attributes + * @flags: which LSM is making the request + * + * Determine whether the calling LSM can set the security attributes + * on the socket without interferring with what has already been set + * by other LSMs. The first LSM calling will always be allowed. An + * LSM that resets itself will also be allowed. It will require careful + * configuration for any other case to succeed. + * + * If @secattr is NULL the check is for deleting the attribute. + * + * Returns 0 if there is agreement, -EACCES if there is conflict, + * and any error from the netlabel system. + */ +int lsm_sock_vet_attr(struct sock *sk, struct netlbl_lsm_secattr *secattr, + u32 flags) +{ + struct secids *se = sk->sk_security; + struct netlbl_lsm_secattr asis; + int rc; + + /* + * First in always shows as allowed. + * Changing what this module has set is OK, too. + */ + if (se->flags == 0 || se->flags == flags) { + se->flags = flags; + return 0; + } + + netlbl_secattr_init(&asis); + rc = netlbl_sock_getattr(sk, &asis); + + switch (rc) { + case 0: + /* + * Can't delete another modules's attributes or + * change them if they don't match well enough. + */ + if (secattr == NULL || !netlbl_secattr_equal(secattr, &asis)) + rc = -EACCES; + else + se->flags = flags; + break; + case -ENOMSG: + se->flags = flags; + rc = 0; + break; + default: + break; + } + netlbl_secattr_destroy(&asis); + return rc; +} +#endif /* CONFIG_NETLABEL */