From patchwork Tue May 8 17:05:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Moore X-Patchwork-Id: 10386581 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 04E0A60353 for ; Tue, 8 May 2018 17:06:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E803B2843C for ; Tue, 8 May 2018 17:06:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DAD6F2852C; Tue, 8 May 2018 17:06: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=-5.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from upbd19pa08.eemsg.mail.mil (upbd19pa08.eemsg.mail.mil [214.24.27.83]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9C88F2843C for ; Tue, 8 May 2018 17:06:29 +0000 (UTC) Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by upbd19pa08.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 08 May 2018 17:06:27 +0000 X-IronPort-AV: E=Sophos;i="5.49,379,1520899200"; d="scan'208";a="11551932" IronPort-PHdr: =?us-ascii?q?9a23=3AFULzvxNWi1UnY+dQp+Ml6mtUPXoX/o7sNwtQ0K?= =?us-ascii?q?IMzox0L/v6r8bcNUDSrc9gkEXOFd2Cra4c0KyO6+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/Risxsl6JQvRatqwViz4LIfI2ZMfxzca3HfdMeWG?= =?us-ascii?q?FPQMBfWSJcCY+4docDEvYNMeNeooLgpVUBsAG+CBGtBOztxD9GhnH4064k3e?= =?us-ascii?q?s9DA/GxA4tE88AvXvKt9X4L7sSXfyvwaXU0TnPc/Fb1DHg44bIaBAhpvSMUK?= =?us-ascii?q?pqf8XL1EkvEx7OgFKXqYziJTOayPkGvm+D7+V6SOKvj3UqqxlrrTiywscgk4?= =?us-ascii?q?zJhoUSylDe6yp12po6Jdq9SENiZ9OvDZVetyafN4RsQ8MiRXlluD4gxb0bvZ?= =?us-ascii?q?63ZS0KyJMgxx7FdfOLaZSH4hXmVOuXPDx2h2pldaqiixu9/kWs0O3xWtSu3F?= =?us-ascii?q?pUoSdJjMPAum0V2xHS6cWLUOZx80Wj1DqVygzf9OVJLVopmafYJJMt2qA8mo?= =?us-ascii?q?YXvEjZHSL7mF/6gLGLekgk4OSl5ODqb7P7rZGGLYB0kBvxMqE2l8y6BuQ3Lx?= =?us-ascii?q?YBUnCA+eS5yL3j5Ur5QKhWjvEukqnWrpTaJcMDq66lGQBVyIcj6wukDzu8zN?= =?us-ascii?q?QZnWUILFJCeB6diYjmJ0rOL+ziAfe6glSslC9nx/HAPrL/HpXANmXPnbjucL?= =?us-ascii?q?pn60NQ1RA/wc5Q6p5KEL0NPer/Wkrru9zZCh85PRa0w+HiCNhlzYMRR2aPAq?= =?us-ascii?q?6fMKPPvl6E//kgI+6RZI8TpDnyNeMl6uXyjX45hVAdfa6p0YERaHCjBPtqOU?= =?us-ascii?q?qZYX3ygtsZC2cFohI+TPD2iF2FSTNTZXGyX6Qm6TEnCIKpF4HDS5uvgLyG2i?= =?us-ascii?q?e7G4dZZntaCl+SC3fobJ+IW/AWaCKdOsVhiCALVaC9S4890hGjrA36y7h9Ie?= =?us-ascii?q?XI+S0YrpXj1N505+3Njhwy+zh0D9mS0m6WUmF0mH8IRyIs0KB4u0x9xU+J0b?= =?us-ascii?q?JkjPxACdxT+/RJXx80NJ7dy+x6Ds79Whjac9eHVlmpX9KmASsrQdIp2d8OZE?= =?us-ascii?q?R9FMu+gRDfxSaqBKUVl7OTDpwu7q3cx2TxJ9p6y3veyaYuk1wmQsxJNW26m6?= =?us-ascii?q?Jy7BbTCJDTk0WYlqeqcqIc0DTL9Gid0WqEpFtYXxJoUaXZQXAfYVPbosnl5k?= =?us-ascii?q?zYVb+jEqgoMgxEycGeMKRKccHpgU9ARPj9JNTUe3ixlHuoBRaU2rOMa5Lnem?= =?us-ascii?q?Uc3SXaDkgJiAUT/XKfOQg/ACetuWTeAyZ0FVLsYkPs7/dxpGm9TkAq0wGAd1?= =?us-ascii?q?dh2Kat+h4JmfycTOse3rweuCg7rTV7AFe938nNBtqFvwphfbxQYcgz4Vdcz2?= =?us-ascii?q?7ZsBZ9PpO4JaB4mlEeaxh3v1/p1xhvCYVPi8sqrHQ3zAdpKqKXylBBdzSF3Z?= =?us-ascii?q?zqPb3XMGby9gi1a6HKwlHezMqW+qAX5fsitlrjpgCpGVQ483h8ydZaz36c6o?= =?us-ascii?q?/NDAoIXpL7Slw3+ARip7HGfik94JvZ1WdxPqapqTLC1NcpBeQ/xhamYdhfLL?= =?us-ascii?q?uOFBXuHM0CG8iuNOsqlkCybhIKJuBS87U0P9+9evud3q6rO+hhnDe8gmRB+o?= =?us-ascii?q?x91FyD9zZkQO7Sw5kF2+2Y3heAVzrkglauqMT3mZxaajEIBWqy0jbkC5BLZq?= =?us-ascii?q?JpYIYLDH2iI8qtxtVxn5TtQWJX9Ea/B1Ma38+kYRySb1353Q1Uy0sXumeqlj?= =?us-ascii?q?GmwDxulDEltK2f3DbBw+76bhoIJnZLRHV+jVfrOYW0kdEaU1S0bwgujhup/1?= =?us-ascii?q?r1x6hcpKR5IGneWkNIfynwL254SKuwsaCOY8lV6JMnqS9XSvizYUiGSr7hpB?= =?us-ascii?q?sXyyfjH2pFxDAnbj2qoYv2nxh7iGKbMXZyo2HUedpoxRfe4tzcROJe3iEcSC?= =?us-ascii?q?l+lzbXGkC2P8O18tWMi5fDrue+Wnq7Vp1UdSnryZ2PtDGn6m1tDxyyhOuzms?= =?us-ascii?q?D7HgghyyP70MNqVSrQphbmfobrz7i6Mf5gfkRwB1/z9cx6Gppln4szmp4Q32?= =?us-ascii?q?MahpOL8nobi2vzNs9b2a3mZnoXWTEL28LV4BTi2EB7NnKG3Z/5VnGDzct5fd?= =?us-ascii?q?a6ZH8W1Twn781RFaeU96JLnTFuolaitgLRZuV9ni0BxvQw5n4ahPsJuAUzwS?= =?us-ascii?q?mHBLAdA1VYNzT2lxuU99C+sLlXZGG3fLiu0kpxgMusDK+Eog5BWHb1YJEiEj?= =?us-ascii?q?Fs7s9nKlLDzGXz6p34eNnXdd8TrgebkwrEj+VONJ0xl+YKhCp+NWLzp3Ilzf?= =?us-ascii?q?Q3jRt03ZG1pIKHMXli/LqlAh5EMT34f80T9SvrjaZCmcaW2puiHpt/FToWW5?= =?us-ascii?q?voV+inECoItfTgNQaBDiEzqmuBFbrYBw+f519sr2jTHJCzK3GXOH4ZwM1nRB?= =?us-ascii?q?aHIExfhB4bXCkmnpEjDA+n38rhf1ll5jAK+lH3sANMxfxyOxn5TGjfuB+iai?= =?us-ascii?q?0oR5iHMBpW8gZC6l/bMcyE8O18AjpY8YenrAyRLWybfB9FAnsVVUyBHVzjOa?= =?us-ascii?q?Ou5dbY+eiCGuW+N+fOYamJqeFGUfeI34ig0pN+/zuXOMWPP2NiD+Yn2kpNXH?= =?us-ascii?q?B5Hd7WmzMTRCwWjS3Na9SXpBCm+i14tsq/6ujkWBrz5YuTDLtfKc1v9A6tjq?= =?us-ascii?q?idMe6QhTp5KTFD25MN23DH1qYQ0EQViyF0eDmnCa4AujLVTKLMhq9XCAYWZD?= =?us-ascii?q?hoO8dP66I83xJNOdLAit/vzb53kOI6B01eVVP/nsGpZMoKI3yyNV7cGEmKNK?= =?us-ascii?q?6GJSDQw83tb6KzU6FQjP5Ttx22ozqbFFXjPjubnTnzSx+vKf1MjD2cPBFGo4?= =?us-ascii?q?69cxltCW/lTN/9dxK0LsR4jTwszr0ynH/KMnQcMTdkeUNXsrKQ9T9Ygul4G2?= =?us-ascii?q?FZ9HVlIvOLmziH4OTDLZYWqeVkAiJxl+1A4XQ6z6Ba7CZLRfBvnyvStNFuqU?= =?us-ascii?q?m8kuaT0jpnTAZOqjFTiYKXukViPL/V9oNHWXfF4h0N636fCw4Np9R7Cd3ioL?= =?us-ascii?q?xfyt/KlK3vMjhC6M7U8dEaB8fKNMKNKGAhPgbxGD7IEAsFSiamNWPfh01diP?= =?us-ascii?q?GS8XmVrpkmqpfyg5cOT75bVEAvFvwEEEhlG8YCIJhvVDM+jbGblNII5Wa5rB?= =?us-ascii?q?TJR8VbvpTHWeyJDPXqLzaZg7dEaAUUwbPkLYQTMYj71FJ4Zll8govKB1LaXc?= =?us-ascii?q?pRrS15cg80vEJN/WB4TmItwU3lbhig4HwUFf6vgh45kA1+Yf8u9Dft+Vs3IE?= =?us-ascii?q?TFpDcomkkrhdrlmSyRcCL2LKqoR4FZFTH0uFYrPZPhXwl1bRa/kldlNDfeWr?= =?us-ascii?q?1RiLVgdXhxiADCuZpDA/hcQrNYYBUI3/GYe+0o0UhAqiWg3UJI+OzFCZ1klA?= =?us-ascii?q?Q3b5Gsq3NA1hl5Y9ErP6zQI7BFzl9KhqKBpiWozPw+wBcCJ0YR92OfYDMHt1?= =?us-ascii?q?YWNrknOiWo5fdh5haYmztZf2gNWeEqrex2+UMgIeSAzj7g0r5ZJkC3KeOfM7?= =?us-ascii?q?uTu3Lcms6QXlMwykQImlFB/bhxy8csbUyUVkEozLaKGBQJM9fCJRtSb8pI+3?= =?us-ascii?q?jZZTyOvvnVwZJpI4W9EfjlTfSQu6YQg0KkGhspHosX48sdGZms1V3XIt38LL?= =?us-ascii?q?4Z0xkt4hrkJEmdBvRTZB2LiCsHo924zJJvwYldJzQdAWJhMSW35rfavRIlgP?= =?us-ascii?q?uDXdgseXgWRI0EOWwqWMeigS5Wo2xADCWr0uIe0AWN9Tv8piXMAzbid9VjYf?= =?us-ascii?q?eVZRVrCNGw4zoy6LO5iV/N/ZXYPm36O8litsXJ6ewEu5aNE+lUQqVls0fAh4?= =?us-ascii?q?lYQGSnXHXRHt6zPJX/cZQjbcLqBXagSVywkSg1TsfrMNaqNKiIjhniRZxIv4?= =?us-ascii?q?mDwDAjKci9GykRGxdtpuED4KZ8ahMGY5cgfBHnqR8xN62lLweeyNmuRHytKT?= =?us-ascii?q?RORflF0eq6f6BXzzYrbuKi0nsgSJA6wPW38U4KQJEKlQnQy+++aYdETSX9HW?= =?us-ascii?q?dQdBnIpSo8i2duLP0ywvslzBPOr1YcLyiBdPZ1Z2xco9E8GVSSLG1sCmUiXV?= =?us-ascii?q?+cipHM7xWw37AI5SRdgchb0elEsHj4sZ/fZDOsWKOrqZXJvSovd8Imo6hrPY?= =?us-ascii?q?zlPMSGqIvUnibDQ5nIrg2FTCm6GuJUm9RKPC1YQPhImWQkOcMcuopM8ksxWd?= =?us-ascii?q?kgKLNREqUsoaqqaTV8By4I0SAZT5+A3CAFguqk3rvVjA2QcJc8PxwYsZVChN?= =?us-ascii?q?QdXjV4YywEoq+sS4HWl2iZSmcWOwcf9wJM6xwcloVoZODq/JLITINQyz5Ru/?= =?us-ascii?q?97SDHLFoRu91fhSWGbmln4SPSgk+y1xg1e1vTs3ccHWBRnE0hS2/5Wllc0KL?= =?us-ascii?q?FwM6QQv4jKsiOWekP+om3tzfWpJEVLyczUbFD4C5LFunT6Ui0Z43IURItPx2?= =?us-ascii?q?rYFZUdiQZ5b7wrpFpUKoC8Zkn+/yAkx5huH7SgScCrwFMloG0aRyu2FtpOEP?= =?us-ascii?q?tqsFTJVz15e5qrsonqO41OQm9M/52Qs1dZn193MyGjzZpTNtpA7SMSUzhXuT?= =?us-ascii?q?WSot+yR9NZ2cNsCJ8MONh/sW/nGKxYIJiRv2E2urv3x3/b/DAzrky3yyitFK?= =?us-ascii?q?+jUe1Z5XEeFRs0KGiErEkgEfcs+H/I8l/RqlB04/tbBr+XgEVtvTlyA5FOCS?= =?us-ascii?q?xN1X2+M1tzS3xGvPlAJ6TOb8xQWf8yagGzOxYmD/4pw1SJ/V1onXf+eyF9rQ?= =?us-ascii?q?Va9DzBUwQ2SCUYjKzgliEZqsGiJTAVUYlIbSk7YyfDNQ2bhThdvAxDZEFyR5?= =?us-ascii?q?AZHtFF9qkB3YRK48XCSVyjKT0eURxmMQI4z+RQmVBfv0WfZC/SExCkdfDRvR?= =?us-ascii?q?1rZc2RttKmLOzl/AdbjYPqqPg4974fR3K8hAKtXcvTr5T7tt2XrEuBaLn3M+?= =?us-ascii?q?ugYX/bVjfMiQq8hbA+D5nF5yLTKhZUK4FmyXo4ZpjsEXLLPQ5YKK0FOkVWTr?= =?us-ascii?q?16adFaouBAfcBkZqcJ+ahpBh2ZWhPjAouvrONJLlzLXzTRMz2B8vCjoYLU9b?= =?us-ascii?q?HdS/LvZtaLx3bcR6J4JIl65CL+G7f31Y9e5kv21ets9kxgT1jGKDqNrNP7Jg?= =?us-ascii?q?ME/MOibFftvoU1HTPKB5d9iHjtyVtGd8oZWS2q94kXx41C5XbsU+141FPzsO?= =?us-ascii?q?pI+7li94Y3/6hjyd2oKqfKNfRarUhnDwCSBgVu7ZgtAW5/R2VLbu8QLvfRc7?= =?us-ascii?q?4Zgtr1q+DrDawX9QGa+/BEadvdOU7NgM6/CiuTSRZchgcOtSYaLheA1/6Cg6?= =?us-ascii?q?J0T8elqvT+2kIp+Ve+NQQKzLFq5YeD4aqIv/Tabx7ewLkLQKTqQdnzrrs0sU?= =?us-ascii?q?OI+fIkjKIOenByYwC/DOcSTModyXn7zaA2zSMsFNjOH6n89/5CSX05mC7gm5?= =?us-ascii?q?FnEFkMHPMbA6aL95xEnmgkg+zZKsEWcqdal2aLDh6kF78PxGWl6ySJPWZlhQ?= =?us-ascii?q?vO3AvoQWOp61/2rzF3TjfQz9v5lUpVTLa3D19IXyW1IU94rC+PPA3wudr1uK?= =?us-ascii?q?Q16Vo7Mmn6u9ONimShIrJXH8vwJNCGJyk7uk4XhoUrRtOzwYAbBca9INAJ/X?= =?us-ascii?q?F/b/rR8XmknDNarqdcmYXe/t+a9enNEXmnla2apK2HxCpExXggoVE/9tegO+?= =?us-ascii?q?nV6N2LWPSp2XweTyV+uwvdRx66sKHbr1QPNEOX10fEhZIFMctE3Xki0UHm/v?= =?us-ascii?q?IsTMg09AVEGYbKf+kCqizrODvo3VafZMo6VjGE3DtLAl31EVd5GK8m2GLzpc?= =?us-ascii?q?7Jjmnf+1kpRol2akzmigd6D50iJkIx9FcXwiQCEQ8XaRCYFr2oBlrqLZECVU?= =?us-ascii?q?cdbRSLxr+6er043Udr2LOg+PfTbfBgB6oKLvtdgRSBnEJFFZIKsa0TW7Z8e1?= =?us-ascii?q?5B9KHJpgjtEZXnX+P8mXo2K/K1XthQ8doFuHs6/ga/Wx2g5I9M77kFjpCIaq?= =?us-ascii?q?lEYZ/LsMBn8Uhn4T8PdipQgBlwlB65Vf4TpPrj49fBqpao7PihVLo1TeUN6x?= =?us-ascii?q?c0H3h+j4f3gF07vd7X1f1TRZHOhIvj9wBNJ3qKuIfE3BlmNeoBNZ6kfLZ6+3?= =?us-ascii?q?UAPSgeKGoEPcCKZPkk/y9tLDLT6kRHAsMLY9MYIMXNlh5Ph03sWbFc7MzbFU?= =?us-ascii?q?GEC4Z9cMAo9Wn3yCsv/Zs6TOng9Ce8JYrD4FFVI/NDkCJsmcrNpOcJ2vrSEz?= =?us-ascii?q?Eb72SWZRZzwyOCzYSNCvnr8OWDzdHbTVUGETAsX4daPjqC9hStRvCpm5XxTg?= =?us-ascii?q?OU9sjzjYo8dEKXRnyxmr4JvbpMEe5ElyX0wzlfFoHzh/KOsNqs6XBatkNGEI?= =?us-ascii?q?Zt9xLFHLhQPpRhNRT+iMarWlB2BjHjd8HMahoupO2Wy/8N4+VgLUT+Y5QWIh?= =?us-ascii?q?YZy73n6HpVSRBuRKTxvlaDUuIbfMFmR+/crnBJ9YJgLLcCPFqDq5zkoDdIrE?= =?us-ascii?q?s7AQEzZ782sDNaalPCnAtLVKbooLQAkBcTUcZluU9QHmK9IG0+5z7AVaVbkq?= =?us-ascii?q?aRDPgV/y6ITqwJVUVoMz9xTwmz2JpwZ7ujhepHvX9eniNhvPgq1CRrRB69uS?= =?us-ascii?q?3vpKIN3ikt+LOiuzUCvnxFSPuRkyHSBVVF0vsKkb8WC2z+5lykfHkDcIzy7a?= =?us-ascii?q?F8Ksv+84kh/28yYQ4nfy0BQeSgFz/wgL2VDYCVt9JcnhGNst3UbbCvNSgSKq?= =?us-ascii?q?g9yRX7Snhl1QjemAxn8HEFQzWn6N8kKp6wOcMixiqvAmjUakoD4rlOsMvqrl?= =?us-ascii?q?4LTe02aVx7zGVkyMiHSTUHRNbTFGYtkggkdWJEfYpN6RAEE6kogy6Isbdd8w?= =?us-ascii?q?AVYTfUF4Gl9ZfKncfMx3YxV9BqxnjZpqednJMlzGVlm89o7i6JoHkTefTYU9?= =?us-ascii?q?VtAnfvyIhS0un+Z/SxsuAdVoRq0rOhUOUNMsO742u5xI1qWlO5xrQZB1e5N+?= =?us-ascii?q?sDyanAXie9TW2XQ/+Lc3SNnzklLk7y/wenIUMtZMdMsUA9LvPIhoRAmA35Tb?= =?us-ascii?q?N0WiKQqEffzGwiN+Maag03tJ6jewwLV+4Re/OcKPMvwPIkDlsMaGXFHSxsC+?= =?us-ascii?q?+5qVSthpR0O2184UXmZuTg6gXmP8GOFRkEEI7aqJlx9OekRmKAP39v0hlyPE?= =?us-ascii?q?hy9+fCGFU9rOhcc4yendLIndR0zfYFd+txMS06otMTmJhs6YqT0MiRahzR05?= =?us-ascii?q?DyJc3VovifHv3fwEQqen1AXroffwz1+50wPsQlVL3LAbtZoRMcCLA4QJwkMG?= =?us-ascii?q?fx7rt0LAJocgPKYrS7mMzqqfyKZpdOoH/W9F0wJj/GuxIf0vy0URB7b5eyin?= =?us-ascii?q?XpLpAwQy5OotxuBxZ9AotABdkArwumAp6TnqG3kdmx9F1mu7xCja2lI/THxN?= =?us-ascii?q?mol6Z2U5Fc6FLDaD/VCblmkwJmiei7hPre+p7rAMjmdJUPU+0tBib/a7TGF5?= =?us-ascii?q?+zYhKHO8TxYAYS6b+X0LtjXiKaUyDwXqyLrwWuKPRi/UghzIFkOuHUyWp+wa?= =?us-ascii?q?vc3Y7Kbnxf7gKkqmSEfM9H5UHOLfTXQhYRTP2C6msjFqoSO9invNwSOMAvlY?= =?us-ascii?q?DPqzJ46y5PhY7cevD79B3Fx157eJTHLUDgxyc+X8wQLQ+iNVc32DeI+EnlLV?= =?us-ascii?q?8HBfCNcZgrjduQFROr4kBwnScoZ2oSfwigSdSQPD0D0tmlLE2R9Q1NBsoehe?= =?us-ascii?q?P/Z0Mit6OzROUpX/cNmeijuLgd19c8AznGWcwfOibXNrIzNT1USL+X/QVwPE?= =?us-ascii?q?Rf9bc8Qp8ufp2SOAUMN0KN?= X-IPAS-Result: =?us-ascii?q?A2COAQCD2PFa/wHyM5BcGgEBAQEBAgEBAQEIAQEBAYNAA?= =?us-ascii?q?2F6KAqDZYgCXowWgXl1Go8LhB2BIgNMKgcMAYcnITQYAQIBAQEBAQECAWscD?= =?us-ascii?q?II1JAGCTgEBAQECAQECIAQZAQEHMAECAgEJAQEKCw0CAiIEAgIDAR4SAQUBH?= =?us-ascii?q?AYBEgWDSAGBTggDm3Y8ihhtgWkzgm8BAQWFTYJACBJ3hHiCJFSBP4EPglY1h?= =?us-ascii?q?3OCVIcXkRUIjk1ejAQrkBIwgQQcOIFSMxoIGxVsBoIMCYILDBcRgzSKblMBe?= =?us-ascii?q?QEBGY8mAYEXAQE?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 08 May 2018 17:06: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 w48H5xaR026346; Tue, 8 May 2018 13:06:06 -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 w48H5kOu153588 for ; Tue, 8 May 2018 13:05:46 -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 w48H5r9l026343 for ; Tue, 8 May 2018 13:05:53 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1CbAAAE2PFaly0bGNZcGwEBAQEDAQEBC?= =?us-ascii?q?QEBAYNAZHooCoNliAKMdIF5dRqPC4QdgSIDUyoNhEACgmUhNBgBAgEBAQEBAQI?= =?us-ascii?q?UAQEBAQEGGAZLhTQBAQICASMEGQEBBzABBAsWDQICJgICIhIBBQEcBgESg00Bg?= =?us-ascii?q?U4IA5t2PIoYbYFpM4JvAQEFhU2CQAgSd4R4giRUgT+BD4JWiCiCVIcXkRUIjk1?= =?us-ascii?q?ejAQrkBIwgQQcggozGggbFWwGggwJggsMDgkRgzSKblMBgRSPJgGBFwEB?= X-IPAS-Result: =?us-ascii?q?A1CbAAAE2PFaly0bGNZcGwEBAQEDAQEBCQEBAYNAZHooCoN?= =?us-ascii?q?liAKMdIF5dRqPC4QdgSIDUyoNhEACgmUhNBgBAgEBAQEBAQIUAQEBAQEGGAZLh?= =?us-ascii?q?TQBAQICASMEGQEBBzABBAsWDQICJgICIhIBBQEcBgESg00BgU4IA5t2PIoYbYF?= =?us-ascii?q?pM4JvAQEFhU2CQAgSd4R4giRUgT+BD4JWiCiCVIcXkRUIjk1ejAQrkBIwgQQcg?= =?us-ascii?q?gozGggbFWwGggwJggsMDgkRgzSKblMBgRSPJgGBFwEB?= X-IronPort-AV: E=Sophos;i="5.49,379,1520913600"; d="scan'208";a="271673" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 08 May 2018 13:05:53 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AwDVD9RM4f8k9j21pAtsl6mtUPXoX/o7sNwtQ0K?= =?us-ascii?q?IMzox0I/z7rarrMEGX3/hxlliBBdydt6ofzbKO+4nbGkU4qa6bt34DdJEeHz?= =?us-ascii?q?Qksu4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPER?= =?us-ascii?q?vjKwV1Ov71GonPhMiryuy+4ZLebxlGiTanfb9+MAi9oBnMuMURnYZsMLs6xA?= =?us-ascii?q?HTontPdeRWxGdoKkyWkh3h+Mq+/4Nt/jpJtf45+MFOTav1f6IjTbxFFzsmKH?= =?us-ascii?q?w65NfqtRbYUwSC4GYXX3gMnRpJBwjF6wz6Xov0vyDnuOdxxDWWMMvrRr0vRz?= =?us-ascii?q?+s87lkRwPpiCcfNj427mfXitBrjKlGpB6tvgFzz5LIbI2QMvd1Y6HTcs4ARW?= =?us-ascii?q?dZQ8heWC1BDYGyb4UPAeQPPvhWoJXmqlsSsRezHxWgCP/zxjJKgHL9wK000/?= =?us-ascii?q?4mEQHDxAEuBcgBsGnQrN7oM6kSVue1zLPWwj7eaP5WwS3y6JXMch06ufGDR6?= =?us-ascii?q?9wcc7IxUkqEAPFiU+QppL/MzyJ0eQNtnGW4ux9XuyhjG4nrht+ojmpxso0ko?= =?us-ascii?q?nGnJ8VylTd+SV8x4Y1Ise4R1BhbdG4F5tQsieXPJZ1TMM6W2xkpjs2x7IctZ?= =?us-ascii?q?KlcyUG0ooryhzFZ/GIc4WE+hPuWeWLLTtlhn9oeqiziwus/UWk0OHwS8q53V?= =?us-ascii?q?lSoiZbjtXBsmoB2h/T58SdVPdx40es1SyA2g3X7OxPPFo6mrDBK5E7x749jp?= =?us-ascii?q?oTvlrHHi/xgEj5grWYeEs69+Wm9enpeKnrqoOdOoNulA7xLKEumtewAegiNw?= =?us-ascii?q?gBRWmb+eCm2L3m/E35RK1GjvwwkqbHrJDXPdoXqrO2DgNPzIou5AyzAymk3d?= =?us-ascii?q?gCknQKLEpJeBedgIjoP1HOLur4DfC6g1m0iDdk3e3GPrn6D5XVNHfDjbPhca?= =?us-ascii?q?94605bzwoz185Q64hIBbEGJfL/QlXxu8DADh8lLwy0xP7qCM5j2YMaWGKPBL?= =?us-ascii?q?KZMazJvF+U5uMgP+mMZIgPtDb7MPgq/eTijXA+mV8DLuGV2s4+bH2oE+UuAE?= =?us-ascii?q?KVaHzhnJ9VGGMHrgcvCu/thFSEXCB7YGy7VKYxoDo8DdTiRb3CTYCkmrDJ/C?= =?us-ascii?q?66GJBNLjRcC1uMGG3kQI6zW/4Nbi+JCsV9kzoYWKKnRpNn3har4lzU0b1ie9?= =?us-ascii?q?Ld5ylQkJXkztU9s/XaiBUa7TVpC4GY1GaXQid/mWZeFGx+57x2vUEokgTL6q?= =?us-ascii?q?N/mfENUIULv6kTAA4nKZ7RyfB7ANnuWwXHO82EU0uiXs7/WWxjc+od6IQlW2?= =?us-ascii?q?8lSpOvgxXY0GyvCr4R0bmKAM98/qHd2i3pLt1mgzbd1aYnhkU7WMYHK2C8h6?= =?us-ascii?q?B++gSST47EmkmUjeCrIIwE1TPJsWKEynCD+UpfVUgqCfyYBS5FPQ3ZpMzh/V?= =?us-ascii?q?jHU6foArMiPw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0B7AACD2PFaly0bGNZcGwEBAQEDAQE?= =?us-ascii?q?BCQEBAYNAZHooCoNliAKMdIF5dRqPC4QdgSIDUyoNhEACgmUhNBgBAgEBAQE?= =?us-ascii?q?BAQIBEwEBAQEBBhgGSwyCNSQBgk4BAQICASMEGQEBBzABBAsWDQICJgICIhI?= =?us-ascii?q?BBQEcBgESg00BgU4IA5t2PIoYbYFpM4JvAQEFhU2CQAgSd4R4giRUgT+BD4J?= =?us-ascii?q?WiCiCVIcXkRUIjk1ejAQrkBIwgQQcggozGggbFWwGggwJggsMDgkRgzSKblM?= =?us-ascii?q?BgRSPJgGBFwEB?= X-IPAS-Result: =?us-ascii?q?A0B7AACD2PFaly0bGNZcGwEBAQEDAQEBCQEBAYNAZHooC?= =?us-ascii?q?oNliAKMdIF5dRqPC4QdgSIDUyoNhEACgmUhNBgBAgEBAQEBAQIBEwEBAQEBB?= =?us-ascii?q?hgGSwyCNSQBgk4BAQICASMEGQEBBzABBAsWDQICJgICIhIBBQEcBgESg00Bg?= =?us-ascii?q?U4IA5t2PIoYbYFpM4JvAQEFhU2CQAgSd4R4giRUgT+BD4JWiCiCVIcXkRUIj?= =?us-ascii?q?k1ejAQrkBIwgQQcggozGggbFWwGggwJggsMDgkRgzSKblMBgRSPJgGBFwEB?= X-IronPort-AV: E=Sophos;i="5.49,379,1520899200"; d="scan'208";a="11551884" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from updc3cpa06.eemsg.mail.mil ([214.24.27.45]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 08 May 2018 17:05:52 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;7aa9d098-deba-4c06-bb7b-87e9a4a79fda Received: from localhost.localdomain (localhost [127.0.0.1]) by UPDCF3IC02.oob.disa.mil (Postfix) with SMTP id 40gQqM5VnYz2Sj57 for ; Tue, 8 May 2018 17:05:51 +0000 (UTC) Received: from UPDC3CPA09_EEMSG_MP25.eemsg.mil (unknown [192.168.18.20]) by UPDCF3IC02.oob.disa.mil (Postfix) with ESMTP id 40gQqM1c4Jz2Sj52 for ; Tue, 8 May 2018 17:05:51 +0000 (UTC) Authentication-Results: UPDC3CPA09.eemsg.mail.mil; dkim=pass (signature verified) header.i=@paul-moore-com.20150623.gappssmtp.com X-EEMSG-check-008: 25567901|UPDC3CPA09_EEMSG_MP25.csd.disa.mil X-EEMSG-check-001: false X-EEMSG-SBRS: 2.8 X-EEMSG-ORIG-IP: 209.85.215.49 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CdAAA31fFagDHXVdFcGwEBAQEDAQEBCQEBAYQkeigKg2WIAox0gXl1Go8LhB2BIgNTKg2EQAKCZSE0GAECAQEBAQEBAhQBAQkNCQgmJQyFKAEBAQECASMEGQEBBzABBAsLCw0CAiYCAiISAQUBHAYBEoNNAYFOCJwHPIoYbYFpM4JvAQEFhU2CQAgSd4R4giRUgT+BD4JWNYdzglSHF5EVCI5NXowEK5ASMIEEHIIKMxoIGxVsBoIMCYILDBcRgzSKblMBgRSPJgGBFwEB X-IPAS-Result: A0CdAAA31fFagDHXVdFcGwEBAQEDAQEBCQEBAYQkeigKg2WIAox0gXl1Go8LhB2BIgNTKg2EQAKCZSE0GAECAQEBAQEBAhQBAQkNCQgmJQyFKAEBAQECASMEGQEBBzABBAsLCw0CAiYCAiISAQUBHAYBEoNNAYFOCJwHPIoYbYFpM4JvAQEFhU2CQAgSd4R4giRUgT+BD4JWNYdzglSHF5EVCI5NXowEK5ASMIEEHIIKMxoIGxVsBoIMCYILDBcRgzSKblMBgRSPJgGBFwEB Received: from mail-lf0-f49.google.com ([209.85.215.49]) by UPDC3CPA09.eemsg.mail.mil with ESMTP; 08 May 2018 17:05:50 +0000 Received: by mail-lf0-f49.google.com with SMTP id y72-v6so33171833lfd.2 for ; Tue, 08 May 2018 10:05:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paul-moore-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=5HxAXu4LfWZY5NXJAgfgeVUAaCYmgWwbscYUq6a2Y3g=; b=MwAa6rYIV5mpHiB+UqjRvftnqtKYhD3VdXj9OjaKaPbzAUqGbieFRT3jpT3FHbDV2s z2EV1TyAcFbRQhHknrh99UQncaJDuqvCSSYh3h5bRLmmJ2/mKNIb99+j+OggKbtqgKmV HGYe2jKJyHjR0LzLUpxTcNXe5S6JuNzhJ7kjz0eldsrvH5CE/sTkx8flksvic8MVZ5SJ yyp5FDMgciTpuijdHZfRdvxdU8fhoOsDI4//LNg3h0jdulTLusX9NUCXWGymg9EEt+Cu TxuMrFsQFpQPUv51VQGMDbkZ3kYSV1zcp+5XU++I/+suS/W6KeCKl8D4eSDJVbdHw7+S NOBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=5HxAXu4LfWZY5NXJAgfgeVUAaCYmgWwbscYUq6a2Y3g=; b=HYkxDizkZnkBl4ELJWzXRDU0GRsiu1bWRjsLyuuqDr1fo/jsKsuWj7tzVZpYjhsMnu UD/uK3hYtKtKh+XIj903oEKTgnULO+W/bdjDRPUgNTpzpU9IieceVFtbR1bvarac3Rnh 11kzBPuRmxFd7e4zG67m12hajrK77yD0rpb5TOnKBCD5sIhJHHcTCUFmt/ZzxSc+F5ow 3f4lnM5DeQNigSAvbqKZT9Rq+/Bv5HOvs4pJAUFExut4jDEuxbdEmggVMiydR7DWglc4 tOthgHOX+VFICWmsn/4m3QJ0oHBmqbWXyn3PnzWCPyGw8QyRoxszIztrrEtivdo8SpiK Hx5w== X-Gm-Message-State: ALQs6tB+u38gw80cjDByAkRPdUS88ZHqbsNQYficXV9LdDC+mAspiXp1 49MgdeBouTUiKeQ8Nxp8cZYEDRWixpKUlr2NhzH0 X-Google-Smtp-Source: AB8JxZqmfitUCIJIgcFqjASsvctB4xWZBBY6t2EKEiwbUzSqlnp19d5N1LTQVqbMYZkBVVIEUElzgWyR23lpKHpMpVE= X-Received: by 2002:a19:4ed1:: with SMTP id u78-v6mr10885049lfk.40.1525799149645; Tue, 08 May 2018 10:05:49 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a19:a947:0:0:0:0:0 with HTTP; Tue, 8 May 2018 10:05:48 -0700 (PDT) X-Originating-IP: [68.177.129.184] In-Reply-To: <1525788303-23244-1-git-send-email-alexey.kodanev@oracle.com> References: <1525788303-23244-1-git-send-email-alexey.kodanev@oracle.com> X-EEMSG-check-009: 444-444 From: Paul Moore Date: Tue, 8 May 2018 13:05:48 -0400 Message-ID: To: Alexey Kodanev , Richard Haines Subject: Re: [PATCH] selinux: add AF_UNSPEC and INADDR_ANY checks to selinux_socket_bind() 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: Cc: linux-security-module@vger.kernel.org, Stephen Smalley , selinux@tycho.nsa.gov, netdev Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP On Tue, May 8, 2018 at 10:05 AM, Alexey Kodanev wrote: > Commit d452930fd3b9 ("selinux: Add SCTP support") breaks compatibility > with the old programs that can pass sockaddr_in with AF_UNSPEC and > INADDR_ANY to bind(). As a result, bind() returns EAFNOSUPPORT error. > It was found with LTP/asapi_01 test. > > Similar to commit 29c486df6a20 ("net: ipv4: relax AF_INET check in > bind()"), which relaxed AF_INET check for compatibility, add AF_UNSPEC > case to AF_INET and make sure that the address is INADDR_ANY. > > Also, in the end of selinux_socket_bind(), instead of adding AF_UNSPEC > to 'address->sa_family == AF_INET', verify AF_INET6 first. > > Fixes: d452930fd3b9 ("selinux: Add SCTP support") > Signed-off-by: Alexey Kodanev > --- > security/selinux/hooks.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) Thanks for finding and reporting this regression. I think I would prefer to avoid having to duplicate the AF_UNSPEC/INADDR_ANY checking logic in the SELinux hook, even though it is a small bit of code and unlikely to change. I'm wondering if it would be better to check both the socket and sockaddr address family in the main if conditional inside selinux_socket_bind(), what do you think? Another option would be to go back to just checking the soackaddr address family; we moved away from that for a reason which escapes at the moment (code cleanliness?), but perhaps that was a mistake. > diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c > index 4cafe6a..649a3be 100644 > --- a/security/selinux/hooks.c > +++ b/security/selinux/hooks.c > @@ -4602,10 +4602,16 @@ static int selinux_socket_bind(struct socket *sock, struct sockaddr *address, in > * sk->sk_family = PF_INET6 with addr->sa_family = AF_INET. > */ > switch (address->sa_family) { > + case AF_UNSPEC: > case AF_INET: > if (addrlen < sizeof(struct sockaddr_in)) > return -EINVAL; > addr4 = (struct sockaddr_in *)address; > + > + if (address->sa_family == AF_UNSPEC && > + addr4->sin_addr.s_addr != htonl(INADDR_ANY)) > + return -EAFNOSUPPORT; > + > snum = ntohs(addr4->sin_port); > addrp = (char *)&addr4->sin_addr.s_addr; > break; > @@ -4681,10 +4687,10 @@ static int selinux_socket_bind(struct socket *sock, struct sockaddr *address, in > ad.u.net->sport = htons(snum); > ad.u.net->family = family; > > - if (address->sa_family == AF_INET) > - ad.u.net->v4info.saddr = addr4->sin_addr.s_addr; > - else > + if (address->sa_family == AF_INET6) > ad.u.net->v6info.saddr = addr6->sin6_addr; > + else > + ad.u.net->v4info.saddr = addr4->sin_addr.s_addr; > > err = avc_has_perm(&selinux_state, > sksec->sid, sid, > -- > 1.8.3.1 > diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 4cafe6a19167..a3789b167667 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -4577,6 +4577,7 @@ static int selinux_socket_bind(struct socket *sock, struc> { struct sock *sk = sock->sk; u16 family; + u16 family_sa; int err; err = sock_has_perm(sk, SOCKET__BIND); @@ -4585,7 +4586,9 @@ static int selinux_socket_bind(struct socket *sock, struc> /* If PF_INET or PF_INET6, check name_bind permission for the port. */ family = sk->sk_family; - if (family == PF_INET || family == PF_INET6) { + family_sa = address->sa_family; + if ((family == PF_INET || family == PF_INET6) && + (family_sa == PF_INET || family_sa == PF_INET6)) { char *addrp; struct sk_security_struct *sksec = sk->sk_security; struct common_audit_data ad; @@ -4601,7 +4604,7 @@ static int selinux_socket_bind(struct socket *sock, struc> * need to check address->sa_family as it is possible to have * sk->sk_family = PF_INET6 with addr->sa_family = AF_INET. */ - switch (address->sa_family) { + switch (family_sa) { case AF_INET: if (addrlen < sizeof(struct sockaddr_in)) return -EINVAL;