From patchwork Tue Oct 17 13:58:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Haines X-Patchwork-Id: 10012221 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 1BA1D60235 for ; Tue, 17 Oct 2017 14:47:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1E0B328936 for ; Tue, 17 Oct 2017 14:47:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1183328939; Tue, 17 Oct 2017 14:47:16 +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.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from UCOL19PA10.eemsg.mail.mil (ucol19pa10.eemsg.mail.mil [214.24.24.83]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1203528936 for ; Tue, 17 Oct 2017 14:47:13 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.43,391,1503360000"; d="scan'208";a="356758416" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by UCOL19PA10.eemsg.mail.mil with ESMTP; 17 Oct 2017 14:47:11 +0000 X-IronPort-AV: E=Sophos;i="5.43,391,1503360000"; d="scan'208";a="4819241" IronPort-PHdr: =?us-ascii?q?9a23=3AHGYYXxFXJZpOC1ahKWNBBJ1GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ7+rsy6bnLW6fgltlLVR4KTs6sC17KO9fm8EjxYqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRo?= =?us-ascii?q?LerpBIHSk9631+ev8JHPfglEnjWwba9uIBmssAncucYajIh+Jq0s1hbHv3xEdv?= =?us-ascii?q?hMy2h1P1yThRH85smx/J5n7Stdvu8q+tBDX6vnYak2VKRUAzs6PW874s3rrgTD?= =?us-ascii?q?QhCU5nQASGUWkwFHDBbD4RrnQ5r+qCr6tu562CmHIc37SK0/VDq+46t3ThLjlS?= =?us-ascii?q?kINyQ98GrKlMJ+iqxVqw+lqxBm3oLYfISZOfxjda3fYNwaX3JMUMZPWSJPAY2y?= =?us-ascii?q?aJYBD/IDMOpFoYTyuUAOoACiCQWwHu7j1iVFimPq0aA8zu8vERvG3AslH98WrH?= =?us-ascii?q?rUrcn6NKcIXuCv0abD0DfNYOlX2Tf79ofIaQ0qrPaWXbJxbcXRyVMgFxnYgVqI?= =?us-ascii?q?tYPqJzOV2f4Ms2id8eVgTvmihHU7qwFwpDiv2tkjipPPho0L1lDI7zl2wIEwJd?= =?us-ascii?q?ChTkNwfN2qEINIui2HOIZ7TdkuTmF1tCog1LELtoC3cDIXxJg/xBPSauaLf5WG?= =?us-ascii?q?7x/sTuqcITl1iGh4dL++mRq/91WrxPfmWcmuyllKqzJIktzLtn8QyRPe8tOHSv?= =?us-ascii?q?5h/ke53jaPyhzT5vlEIU8qkarbLIYswqIqmZoJsETDAzT2lF/qjK6Wakok+u+o?= =?us-ascii?q?5/7hYrr6vZ+TK5V4igT/MqQqgsC/AOI4PRYSX2WD5Oix27Lu8Vf5TblXlPE6jK?= =?us-ascii?q?bUvI7AKcgGvqK5BhVa0ocn6xaxFTem19EYkGEcLF1bfBKHjo7pO0zBIfzhFvi/?= =?us-ascii?q?hEmskDF3yP/YJb3sGYnNL3jfn7fherZx8UhcyBEpwtxF6JJUDa8BLOrpWkDtrN?= =?us-ascii?q?zYEgM5MwuszublD9V90JkRWX6PAqCDNqPfql2I5uUpI+mJfoAVoyr9JOY/5/71?= =?us-ascii?q?l3M5nkUdfaax15sNdH+4BuhmI1meYXf0gNcBE30FsRY9TOzxj12CVz9TZ2ipUq?= =?us-ascii?q?Iy4jE7FY2nApzeRoCrnLyBwT23HppMZmBJElqMC2vnd52YW/cQbyKfOsFgkj0A?= =?us-ascii?q?VbikVYAhzwqjtAHkxLV6KerU4DcXtYr51Nhy5e3ciw099SBuA8SayWGNQHl+nn?= =?us-ascii?q?kUSD8uwKB/vUt9x0+e3qdkhvxYEtpT5+9UXgohK57T0fZ6C9HzWwLGeNeFUlCm?= =?us-ascii?q?Tcu6ATspVNI+38cOY1phG9Wllh3MwjaqDKUPl7GQGJM09afc0GTrKMZm13bKzq?= =?us-ascii?q?8hgEc6QsFXL22pmrZ/9xTPB47Oi0iYl6erdaMa3CPW8WeDyXOCvEBeUAJqV6XK?= =?us-ascii?q?R2ofZkjXrdTn+EzOVbmuBqo7MgFZ086NNrNKasH1jVVBXPrjNs7ebHi3m2isBB?= =?us-ascii?q?aI3aiBbI/ye2UcxSndE0YFkxsJ8XaBLwg+CT+ro3jCAzx2CVLvf0Ts/PF9qHyh?= =?us-ascii?q?TU80yByKYlZi17Wv+R4VguGcR+kU3rIetycrsy90E0ql39LKF9qAoBJsc79Bbt?= =?us-ascii?q?Mn4VdIy3jZuhdnMZO8KqBunFkecx54v0n2zRV4Fp1AkdQ2rHMt1AdyM7+X305a?= =?us-ascii?q?ejOX2JDxNafbKm/s8xCzc6TWwE3R0M6K+qcT7/Q1s07jvA+zFkol6HVnz8JY02?= =?us-ascii?q?Ca5pXNAgsSVIj+UkAt+xh8ub7afjE355nI2n10Lam0rjjC1sonBeQ/zhagY8lQ?= =?us-ascii?q?MLmfFALpDc0VGdKuJ/c3m1isdB4EO/pS9KEsNcO8a/SGwLKrPPpnnD++kWRI/Z?= =?us-ascii?q?1y0kOW+Cp4UePHw5EFw/SE0QSdTDf8kE2tssbploBYfTsSBHawyTD4BI5NYa1/?= =?us-ascii?q?ZYALCWaqI82z2Np+nIXgVGRG+165AFMKwsipeQCdb1blxw1fyVwXoWC7mSu/1z?= =?us-ascii?q?F0jTApobaD3CzJ2eTubgYIOm5MRGlkglfhOoy0j9EcXEeydQgpkwGp5UHgx6hU?= =?us-ascii?q?vK5/NXXcQV9UfyjqKGFvSq+wtruZY85T8Z8oqjtYUOC9YVCcV778rAAX0zj7H2?= =?us-ascii?q?tfwjA7di2luo7jkxx8lm2dMG55rGDFdsFo2Rff+NvcSOZL3joBQCl4jSfYBkKg?= =?us-ascii?q?MNmu89SZjIzDsv2iWGK6TJFTdjPrzYyYviuh+WJqGQG/n+y0mtD/Egg1zyn718?= =?us-ascii?q?JxWCXLshn8ZJLr16KkPuJ7ZEVoA0X868ViEIFkjoQwnI0Q2WQdhpiN5XoIi3rz?= =?us-ascii?q?MdFF1qLmdnUNQyILzMDP4AX+xU1jNWyGx5jiVnmH2cthYMS6YnkK1S0j4cBKD7?= =?us-ascii?q?2U7LNakidvpFq3sx7Ra+BnnjgB0fsu9GIag+YRtQozyCWSH6sfHVdePSPxlxSE?= =?us-ascii?q?9da+o7tLZGy3a7i/yFJ+ncy9DLGFugxcQGz2eoomHSJr8sp/MU7M0X3q5oHqYt?= =?us-ascii?q?bQa8gfthqOkxfPl+JVMo4+luIWhSp7PmLwpXMlxPQ9jRxy2pG6uZOKK2tz862k?= =?us-ascii?q?BR5YLCf6Z9sJ+jHqj6ZRgNqZ35y1EpVmADULU4PiTei0HzIKqfTnKwGOHSU5qn?= =?us-ascii?q?iBHbrfGRGQ6Ft6r33VCZ+mLHeXK2cFzdV5WBaSPlRfjx4OUDU8gJE5ChigxNb9?= =?us-ascii?q?f0dh+jAR+ln4pwNWyu5yORjzSGLfqx2sajczSJmSNwBZ4R1H50vPNsye9O1zFT?= =?us-ascii?q?lC/pK9tAyNNnCbZwNQAGEHQEyLGU3sPqK06tnG7+iYAfG+IuDUbrqSrOxSTfCI?= =?us-ascii?q?xYig0oF+5TaDKt2PPmV+D/08wkdDW2p5FN7BmzUXUCEXmSPNb9SApBeg9C13r8?= =?us-ascii?q?a//+7tWA3z5IuAEb9SPc9o+xCsjqeJL/SQizphKTZEypMMwmfFyKAB01EJlS5u?= =?us-ascii?q?cTitEagHtSPWTaLfhLFYAAABZyN0LstI4Lo23hNRNs7DltP1yrl4g+YuBFheUl?= =?us-ascii?q?DhnsCpZdcWI2GmLl/HH1iEO6icKT3Q3c73ZaK8SbtNjORbrBC/pTaaE1X+PjSY?= =?us-ascii?q?jTXoWQqgMf1XjCGcOhxSooa9cgxiCWL7VtLpdgW7MMNrjT0x2bA7nXLKNWEbMT?= =?us-ascii?q?h6aE5Cs6Of4jhZgvplHWxN9H1lLfOLmyyB9enXNo4Wsed3AiRzj+9V+ns6xKFL?= =?us-ascii?q?7C5aX/F1nzPSocBoo1GjiOaPyz5nXwFJqjdEno6Lul9iOarB/JlaRXnE5A4N7X?= =?us-ascii?q?mXCxkSu9tlDdjvt7pKytjIlaP8NjFC/MnO/csbGcfUK9mKP2YmMRrsBDHbFhAF?= =?us-ascii?q?TSKxOWHZmUNdjOmY9meJoZgitpjshJ0OR6dYVF01EvMVFF9oHNkFIJd5UDMrj6?= =?us-ascii?q?KbjNII5Xq5qRneWt9WvpbZWfKOGf/vMiqWjaFYZxsUxrP1NYITOZPh1ExmcVR6?= =?us-ascii?q?n4PKG1HMXd9XpC1hdQw0oERX/Hh4UGIzx1rvahmx738LCf60ghk2hxNkYesz7z?= =?us-ascii?q?fj/U04JkDWqyswi0Q+gtTlgSqMfz72IqewRZtWBDT0tkQrNJP0XRp1ZxWonUN4?= =?us-ascii?q?LDfEW65Rj7x4eG92jw/cv51PFuNCQq1AYR8d3uuYaOsy0VRbsCmnwlVH5eTdA5?= =?us-ascii?q?t4iAQqaYKsr25H2w97cdE6P7LQJKtUwVhLna+BpDWo1vo2wA4QPEYC7n+deDMS?= =?us-ascii?q?uEwJKrknJzCk/upy5gyegzFDYnQDV+I2ovJ28UMwI+CAzyX607FdLECwNuufIr?= =?us-ascii?q?iWu2jGiM6EWFQw1lkHl0Nd57h5zd8jc1aIV0Ao1LaRDAoGNc7DKQFTcspT+2Pe?= =?us-ascii?q?cjqJseXI3Z16JZ69FvzyQe+IqqkUnlquHBw1EIQU8sQBAp6s3VnELcfmKb4Fzg?= =?us-ascii?q?kt5ATrJVieEftJeRKKny0crM2lyp94w5VdLCkHAWphKSW3+qrXpggyjfWZWNc2?= =?us-ascii?q?Y2sVUZUcOXIzWMy6nSlZv3JaAzSsye0ZyRKN7znlqiTeETnwddxja+mIZRl0Et?= =?us-ascii?q?G55S0/87SqiV7Q6pjRPH/1NdJ5t9DV9OwauYiIC+lPTbZnqUfdm5NUR3uwU27A?= =?us-ascii?q?CdS1PYT/a5EwbdzoDXa3SlO/iy80T8f1ONaiMK2IjBr1SolKq4ab3SosNcmnGj?= =?us-ascii?q?EZARdwqPkJ5Lhgag0bf5o7fRnouhwkN6y5IQeXztWuQ2GpKTtNV/dR1Pi0aaZL?= =?us-ascii?q?wiQrdeK11HwgTpQmwOat6k4NWIsGjhfAyva/f4NeSzT8GmRBewXToio0j3JhOf?= =?us-ascii?q?wowuc42xzFqkUcMyqRe+x3dmNEu9A8BVWdIXVyC2o4SF+cjZbN4gG2xbAS+jFR?= =?us-ascii?q?n9BK3u1ZqHL+pIPQYCqwWKy3rpXYqyQhYcI6rK1xMIzjJ8qGu4ndnjHETZnfrB?= =?us-ascii?q?OKXzCgG/pdgNhQLzpSQONUlmE9JcwGpY1B5FIrWcckOrxPDrMgprOxZDplDC4S?= =?us-ascii?q?zDMZWJia0DwEnOi8x6PQlg2Mf5Q6LBwErJJCj8McUy5wfiMRuqujWJvTl2CaVm?= =?us-ascii?q?gLOgcS4B9L5AIYiIBweOXl75DJTJ9I0DFWpP11XjHMFply+FvxUnuWjkTgSPW9?= =?us-ascii?q?j+yp2hpfzP320tYBXh5/FVNQx+dRlkomLrF3N6kQsZDLsj+OaUP1onjtxPGgJF?= =?us-ascii?q?ZP1c3eb0f4A5bdtWrgTi0c/mUZRZNIyHHaDpkSjxZ1aKMwq1lWJoCpZFr+7SQ+?= =?us-ascii?q?x4t1B7m4Sdyrx1E9oHYGXSiqCcBOC+V7v1/MRTJqfYirqI37NJVWXGBQ4oeRq1?= =?us-ascii?q?BDkEViKyS504ZTK9lR4j4QWzhCuTedvNysR8BYxMB5EYQMLcllu3fhBqxLJYKd?= =?us-ascii?q?o3sotbzz0nXZ4SwzsE+mxDWvHK+1V/lW/2MCFQk1JWmSt0ciAvAw/WfV91DCrk?= =?us-ascii?q?p7//xHBrSVi0V+vip9FIhUBjlVzXClM0hzTH5evuVANqvabsxcTOMuZRK0Pxw+?= =?us-ascii?q?EuAm0FKX8U5omnf2fjJ9uhFc+y/DQwk+TTMVjav1mT0CtsGnPicXS4pTbTU9dS?= =?us-ascii?q?jKNh6blDtMvBZYdkFqQYwWDchD+7EHx4tb5M7CRVyrKSEfUxxoLhg43uZHlU5f?= =?us-ascii?q?rEWYfjjQDRaydfnRrBJ4YNycrNOtLPTl5gdIkJ3nsOE/96UHWXKmhRehQdfEr4?= =?us-ascii?q?/zrteKrFeBdL/kM+2gZn/MVDrMggqqhbcjFJnK+zLcMBRAJpl/1HokZYThCW/X?= =?us-ascii?q?MhRHPa0bIVFbWbp9adVcreBQf9Vkd7oR+a9xGhKHQQviGI61o/lAIFbTXzPeID?= =?us-ascii?q?if/eGkvYLc97rdSfPnZsCWwXbIXb53NI9g6TbnA7fqzZNe+k3u1/dr8kN3UlnG?= =?us-ascii?q?MyaErNj7JwML4seidlH4sZ0yATPWGopwn2bxxkFdbcoYXTem8JMCyJNW8HzwU/?= =?us-ascii?q?530lDvsO1O8Llp8Y8347F1xsezIafdM+9avVVmAhiTAQVq7Y4tDXN6R21ebe4d?= =?us-ascii?q?MvDRfb4Wjcr2seD4C7QX6AGJ++xecdbIO1vOms2hBTGHVRxFnAABpCUBLgSA1v?= =?us-ascii?q?6Khal0SdqkpefjwE4t5UaxLgIexrB3+YiE4raIpPPQbxbJybgEQa3qS8Poo7Qi?= =?us-ascii?q?pUyd+PoklKQUdWxteQ2nF+odWdAByWf816wqyjgsE8zbFbL65PFDT245ni7nm5?= =?us-ascii?q?1lHVUWG/YUEKGO/YtAnmY3hfbZNtwQcqBNgGqPEwCrEqMaw36x9ySXOHVlgg3J?= =?us-ascii?q?0xzoQGOy7UX5ojVkTibX1NfsjFZVWaerCktIWCqpI0B4uiuVPAX0rNr3pbg17E?= =?us-ascii?q?YuP2P/tdKNj2WgN6lVH83+ONycOTM7pE8TjJAqWtOv3p0UFsSnL9cM6nF+aeHe?= =?us-ascii?q?5Hmxny9GuadHiJLU4tuJ9fXPAXmgk6qapq2VxD9C1ng3oVE/696nNvHU5N2GWu?= =?us-ascii?q?+o2HgVTyd+vQvBQhG0p6fDr18OJUyEzEfLmYINPtFD3nk0zELm6/Y5QNI16gpe?= =?us-ascii?q?EpzMZ/QYpTD8IDH020qQY8orVimC1DtaBk71EUNmF6g4wm3wutzGmGzN9F0pSY?= =?us-ascii?q?lwdlDnigZsD4oiM0It9UIbwiwdHggRcRqbFq2nBVz5LYsYUkgOcRuH06Kgeqgp?= =?us-ascii?q?wU1zwqii5OvSbexgGaUNNuxSjhOVnFRBHJIZr7EeSqpme1BB7K7XuhTiC4//Uv?= =?us-ascii?q?jpi3UwM+G1Qsdd8cwerHst/AK/Rxum6Zde4LcWk5SIebBeYZnMps9w9UFn6iAT?= =?us-ascii?q?diZVmhhwkwu5UfwApODk+tXUrJio5fyyW6s2W+oX8Bw0B2B/j5TumlAjvc/Y2P?= =?us-ascii?q?tcSoHPjoT/6g9NKWaQuInGyxl8NfYOK4WzcbZl8HUHITQeJ30QMteNbvk84jVi?= =?us-ascii?q?MDPN6FxeDMIMYskYPMnWmQxOjE3mRq1T/NLBGlCEE4dza9wo723vxTA67ZQ8Sf?= =?us-ascii?q?3g5CarK57Q6V9NPvVDjDhjld/Zq+gVxODdCC4J7nWDbBh12CyCwYGXC/ns5eWM?= =?us-ascii?q?1M3UV1QeEy40VIddJDyC9Ra7Seq1kJXpTx6b687ygJI4b0KQRX2xkb8bsqZND+?= =?us-ascii?q?5PkCH70SVfFozvgfKarcas4nNNtlJbCIZz8QHFGKJHM5V6JxT3jM+rS1N4Bivi?= =?us-ascii?q?Zc7Udx0uuPGMyucL+eV+OFP0ZZUHLRIc17L69X1VQxNsSLHosFaZU+YRacBoSf?= =?us-ascii?q?zeqHBa955gJ7UJPFeDuJzgti1Ip0wuAA81dL8wqSRXdkbKnA1SVaf7proAig8H?= =?us-ascii?q?XN5ivk9MH2OwN34k6zrBS6tVkLGbCOYJ/TWLUqwOT0JoPzt8QxO12JRuY7ypnf?= =?us-ascii?q?RGsmNagCxwu/0q0z16RBumpyLgvaUN2Sgv+LugrjUOpWRFTvmCkyfPEVhD0PUK?= =?us-ascii?q?jaIHBnb+6FyzfHoDY5X24LV9I8Tv65Uh6WwlYRo/Zy0GQfigCybogqONA4yPs9?= =?us-ascii?q?FchBmWtcXMd7CzLi8SNrIjxhLlXXR91BbRnApw+msRXjqg9MMkJJm6Ocs93SWn?= =?us-ascii?q?B27bdEoX76NStMvxskILTPcoaVx/3WpvyM+HRjcCRMbXAWY6khAkaXlYcJJE8R?= =?us-ascii?q?IaD64ogjKSsalc8AAUZzPUEoq+94nVmsfI3mI9Qsl2yWLMoa2FnYgq0Hxjm9N7?= =?us-ascii?q?9CKOv24Sd+PAWc92HnfzzptfyfD5Z/i1vOAIVo9myLW5UPAcKcSi+Gq22JBvWk?= =?us-ascii?q?C73LQeG0S2PPUExrfBXCevUXeYVviTc2iQgzY5NVb/5BewLl0tacdFs1EyP/DH?= =?us-ascii?q?hp5diw3hS617Sj+XpV/Bw2wpKfkaeB4uuIe7ZwwKS/YcZ++YJecw2/A+EF8MYG?= =?us-ascii?q?XSHStqCu+5rUKtnJJlNHp++0n6Z/ri8hz+OtuIBhYECZLaroJ2+fGiQmKBOHlg?= =?us-ascii?q?zAB9PUVt8+ffFk8xtvNHc5uKnNjfndJ70ekfe/dqKy09tcYZmph/5omMzMeKbR?= =?us-ascii?q?bRw47pJd7LpviYAvvfz1kle21dXbQZfQP16JsgPtEnQ73cB6BUvRcCCqggRpwu?= =?us-ascii?q?KWPx+7ppLAN8aALRY660gsbyrOKRepRUv2PW7k43LCrEvh0M0OC7TQx6b5CsgH?= =?us-ascii?q?X/O44wRjNHr9JzDhtmHY1PG94Prga9BJ6Ugq67gcer+0xmo+8KrbbwCvfS2dS7?= =?us-ascii?q?xYpxXJ9a6leQMTbMAqlrnkRljuOvgvfP0pnxFdnuedUaW+hnWmTFcKPJHp2jKj?= =?us-ascii?q?KSPcLxY0xG87ub0LJjSBWRZTv5UrGAtCK+MfVr/0Q7xpZ/fOrJwzwn96vb18fq?= =?us-ascii?q?Z2FHuiejqmaENIBR7FzPGePTXhFZROGb8Gl7B60XbIr19OAIMdA4xtiT/RVzv3?= =?us-ascii?q?x+156eLqygqFLc8l5qfpLcak3y0mA2XpdOaBKyLUchn0fHpXnHR3dRNM6pLY9q?= =?us-ascii?q?mtnRRhjs4VRh3HomenZpBGXlX5GSNHId1sb4YxeFsEpPDtAej6usdEUlrKyuWK?= =?us-ascii?q?xtPZlYneiCqroKi5BqJjvJScwcODvff5FsOT8ENOTEpFEyblYkurkzV5x9MYKP?= =?us-ascii?q?K0MOKku3whTyxArE3FbcfcCt0rqEOiAb7jNMyLeTgmsEnBWwpfvM2p6ra7vedp?= =?us-ascii?q?yjGaeKPQ=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2DqAgCAF+ZZ/wHyM5BdGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwgpA4FSJ48NjkOCc5dFKYoRQhUBAQEBAQEBAQEBAWoogjgkgkkCJBkBO?= =?us-ascii?q?AECAwkCBUMIAwFaEgWISIE3AQMVAwGsKjqDCQWBAoRggm8ECIMugTZRgzuCdoM?= =?us-ascii?q?TiBsFoUuUXpMllyk1IoFZNCElg0KCDEEPHIFodYp+AQEB?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 17 Oct 2017 14:46:00 +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 v9HEjqV6028819; Tue, 17 Oct 2017 10:45:53 -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 v9HELpJS045475 for ; Tue, 17 Oct 2017 10:21:51 -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 v9HELnv6016732; Tue, 17 Oct 2017 10:21:49 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1CPAgAfEeZZf3IbGNZdHAEBBAEBCgEBg?= =?us-ascii?q?zMpgVUnnVCCcZU4ghQPhTaEbUEWAQIBAQEBAQEBEwEBCxaGKBkBOAEVgSkSiE2?= =?us-ascii?q?BNwEDFQMBrBo6gwkFgQKEYIJJASUECIMugTZRgzuCdoMTiBsFoUuUXpMllykmA?= =?us-ascii?q?oIINCElg0KCDEEPHIFodYp5AQEB?= X-IPAS-Result: =?us-ascii?q?A1CPAgAfEeZZf3IbGNZdHAEBBAEBCgEBgzMpgVUnnVCCcZU?= =?us-ascii?q?4ghQPhTaEbUEWAQIBAQEBAQEBEwEBCxaGKBkBOAEVgSkSiE2BNwEDFQMBrBo6g?= =?us-ascii?q?wkFgQKEYIJJASUECIMugTZRgzuCdoMTiBsFoUuUXpMllykmAoIINCElg0KCDEE?= =?us-ascii?q?PHIFodYp5AQEB?= X-IronPort-AV: E=Sophos;i="5.43,391,1503374400"; d="scan'208";a="86239" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 17 Oct 2017 10:21:41 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AHsJdkhVX0MFi1Z9r9rBrS8iF7n3V8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYbReHt8tkgFKBZ4jH8fUM07OQ7/i4HzVcqsnd+Fk5M7V0Hycfjs?= =?us-ascii?q?sXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFRrwLxd6?= =?us-ascii?q?KfroEYDOkcu3y/qy+5rOaAlUmTaxe7x/IAmqoQnLq8UbjoRuJ6Q+xxDUvnZGZu?= =?us-ascii?q?NayH9yK1mOhRj8/MCw/JBi8yRUpf0s8tNLXLv5caolU7FWFSwqPG8p6sLlsxnD?= =?us-ascii?q?VhaP6WAHUmoKiBpIAhPK4w/8U5zsryb1rOt92C2dPc3rUbA5XCmp4ql3RBP0ji?= =?us-ascii?q?oMKjg0+3zVhMNtlqJWuA+vqRxhzYDaY4+bM+Fzcr/Bcd4AWWZMRNpdWzBHD4ih?= =?us-ascii?q?b4UPFe0BPeNAoofhplsBsRu+ChO2BOzy1zRGhGX53aw80+s/CgHNwQstH8gPsH?= =?us-ascii?q?vIrNX6Lr0SXv2tw6bU1TrDb+lZ2Tb76IfWaRAsuuqDXa5xccrX1UkgCRnFjlOO?= =?us-ascii?q?poz5JT+ayuMNs22C4udmSOmhiHYnphlvrjSyycogkJfFi40Pxlza9yh12ps5Kc?= =?us-ascii?q?C3RUJjYtOpEYFcuzyUOoZ5WM8vQ29ltDwnxrAHp5K2ejUBxo49yB7FcfOHdpCF?= =?us-ascii?q?4hL9W+aVJjd1nHxqdqiiihi87EStzvfyW9Wp3FtFtCZKjMfDtnUW1xzc8MSHT+?= =?us-ascii?q?Fy/kal2TqV0gDT6+VELVg1lardNZEh3qY9moQOvUnMBCP6hkr7gLWIekgm4OSk?= =?us-ascii?q?9vnrb7r+qp+ZLYB0iwX+Mqo0msy4BOQ1KhIOX2mH9uS8zrLj51D2T61WgfIukq?= =?us-ascii?q?nWqpHaJcIFqa6iGAJayZoj6xe5Dze6ztsYh38HI0xZeB6dk4fpPFTOLOjiDfij?= =?us-ascii?q?m1SsjCtrx/feM736H5rNNWPOkKvhfLlh605czxA/zdZE551OEL0BL/XzWlHpvt?= =?us-ascii?q?zCEhA5KxC0w/rgCNhlzYMRR2aPAq6fMKPPvl6F/f4vIumQa48VvzbxMf4l5+X0?= =?us-ascii?q?gnMjll8derepjtMrbyWjE/BnJViJSWb9idcGV2ERt0wxS/KuwFuPTTJeeV6sUK?= =?us-ascii?q?8moDI2EoSrCcHEXI/pyLiA2jqrW4ZdenhuFF+BCzHrep+CVvNKbzidZodlkzoZ?= =?us-ascii?q?Rf26RoQ8zxCypUr/zLZ6Kuf85CIVr9Tg2cJz6umVkgs9phJuCMHI6WCGT2huki?= =?us-ascii?q?soTj4w0bs39VZ8wVeKy6RPiMtYHN1V6uhhWBs7M4LR1ep3F5b5XQeXLYTBc0qv?= =?us-ascii?q?XtjzWWJ5ddk22dJbO0s=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CPAgCVEeZZf3IbGNZdHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgwgpgVUnnVCCcZU4ghQPhTaEbUEWAQEBAQEBAQEBAQESAQELFl2?= =?us-ascii?q?COCKCcRkBOAEVgSkSiE2BNwEDFQMBrBo6gwkFgQKEYIJJASUECIMugTZRgzuCd?= =?us-ascii?q?oMThH0MgxIFoUuUXpMllykmAoIINCElg0KCDEEPHIFodYp5AQEB?= X-IPAS-Result: =?us-ascii?q?A0CPAgCVEeZZf3IbGNZdHAEBBAEBCgEBFwEBBAEBCgEBgwg?= =?us-ascii?q?pgVUnnVCCcZU4ghQPhTaEbUEWAQEBAQEBAQEBAQESAQELFl2COCKCcRkBOAEVg?= =?us-ascii?q?SkSiE2BNwEDFQMBrBo6gwkFgQKEYIJJASUECIMugTZRgzuCdoMThH0MgxIFoUu?= =?us-ascii?q?UXpMllykmAoIINCElg0KCDEEPHIFodYp5AQEB?= X-IronPort-AV: E=Sophos;i="5.43,391,1503360000"; d="scan'208";a="4817655" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from upbd19pa14.eemsg.mail.mil ([214.24.27.114]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 17 Oct 2017 14:21:36 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;9de4db78-834a-483a-9bad-2f991034bda3 Received: from localhost.localdomain (localhost [127.0.0.1]) by UPDCF3IC10.oob.disa.mil (Postfix) with SMTP id 3yGcRh4D8Nz4KRKZ; Tue, 17 Oct 2017 14:06:08 +0000 (UTC) Received: from UPBD19PA01.eemsg.mil (unknown [192.168.18.2]) by UPDCF3IC10.oob.disa.mil (Postfix) with ESMTP id 3yGcRh2TJxz4KRKS; Tue, 17 Oct 2017 14:06:08 +0000 (UTC) Authentication-Results: upbd19pa01.eemsg.mail.mil; dkim=permerror (key too small [TEST]) header.i=@btinternet.com X-EEMSG-check-008: 260331208|UPBD19PA01_EEMSG_MP1.csd.disa.mil X-EEMSG-SBRS: 3.5 X-EEMSG-ORIG-IP: 65.20.0.178 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DEAQDxC+ZZh7IAFEFdg2OBfrYgghQdhSiEbUEWAwEBAQEBAQETAQEBCA0JCCgvhWQBOAEVgSkSiE2BNwEYBKxKgwkFgQKEYIJvBAiDLoE2hwKLLgWhS5RekyWXKSYCggg0ISWGLoF0i24BAQE X-IPAS-Result: A0DEAQDxC+ZZh7IAFEFdg2OBfrYgghQdhSiEbUEWAwEBAQEBAQETAQEBCA0JCCgvhWQBOAEVgSkSiE2BNwEYBKxKgwkFgQKEYIJvBAiDLoE2hwKLLgWhS5RekyWXKSYCggg0ISWGLoF0i24BAQE Received: from rgout01.bt.lon5.cpcloud.co.uk ([65.20.0.178]) by upbd19pa01.eemsg.mail.mil with ESMTP; 17 Oct 2017 13:59:05 +0000 X-OWM-Source-IP: 86.134.53.162 (GB) X-OWM-Env-Sender: richard_c_haines@btinternet.com X-Junkmail-Premium-Raw: score=8/50, refid=2.7.2:2017.10.17.134816:17:8.317, ip=, rules=__HAS_FROM, __FRAUD_WEBMAIL_FROM, __TO_MALFORMED_2, __TO_NO_NAME, __HAS_CC_HDR, __MULTIPLE_RCPTS_CC_X2, __CC_NAME, __CC_NAME_DIFF_FROM_ACC, __SUBJ_ALPHA_END, __HAS_MSGID, __SANE_MSGID, __HAS_X_MAILER, __FROM_DOMAIN_IN_ANY_CC1, __ANY_URI, __FRAUD_BODY_WEBMAIL, __URI_NO_WWW, __NO_HTML_TAG_RAW, BODY_SIZE_4000_4999, __MIME_TEXT_P1, __MIME_TEXT_ONLY, __URI_NS, HTML_00_01, HTML_00_10, BODY_SIZE_5000_LESS, __FRAUD_WEBMAIL, __FROM_DOMAIN_IN_RCPT, __CC_REAL_NAMES, MULTIPLE_RCPTS, __PHISH_SPEAR_STRUCTURE_1, __MIME_TEXT_P, NO_URI_HTTPS, BODY_SIZE_7000_LESS Received: from localhost.localdomain (86.134.53.162) by rgout01.bt.lon5.cpcloud.co.uk (9.0.019.13-1) (authenticated as richard_c_haines@btinternet.com) id 5974506408C53AF2; Tue, 17 Oct 2017 14:59:00 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btinternet.com; s=btcpcloud; t=1508248746; bh=gXitCKrnRdKhEzoflNjZPIsrkFT+VB2R+Or+53bcEpg=; h=From:To:Cc:Subject:Date:Message-Id:X-Mailer; b=YLu76Mrt2QK7SWEg4xZ6/7Lu1golYJZnMOc+cBWp94K4raBORb4YGT4Z/vUaORwMKh+K55RN1rwAoRhDj/Ld6tl/nrUYoBR6QgoMG190hOBxkTWgDoEINX98vUaZARCpvh3sEZ/nSX6O31dk/rhx+EwIr2K+O2GA59HHUj0rDIo= X-EEMSG-check-009: 444-444 From: Richard Haines To: selinux@tycho.nsa.gov, netdev@vger.kernel.org, linux-sctp@vger.kernel.org, linux-security-module@vger.kernel.org Date: Tue, 17 Oct 2017 14:58:54 +0100 Message-Id: <20171017135854.4343-1-richard_c_haines@btinternet.com> X-Mailer: git-send-email 2.13.6 X-Mailman-Approved-At: Tue, 17 Oct 2017 10:36:38 -0400 Subject: [RFC PATCH 4/5] netlabel: Add SCTP support 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: marcelo.leitner@gmail.com, nhorman@tuxdriver.com, vyasevich@gmail.com, sds@tycho.nsa.gov Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Add support to label SCTP associations and cater for a situation where family = PF_INET6 with an ip_hdr(skb)->version = 4. Signed-off-by: Richard Haines --- include/net/netlabel.h | 3 ++ net/netlabel/netlabel_kapi.c | 80 +++++++++++++++++++++++++++++++++++++++ net/netlabel/netlabel_unlabeled.c | 10 +++++ 3 files changed, 93 insertions(+) diff --git a/include/net/netlabel.h b/include/net/netlabel.h index 72d6435..7348966 100644 --- a/include/net/netlabel.h +++ b/include/net/netlabel.h @@ -494,6 +494,9 @@ int netlbl_conn_setattr(struct sock *sk, const struct netlbl_lsm_secattr *secattr); int netlbl_req_setattr(struct request_sock *req, const struct netlbl_lsm_secattr *secattr); +int netlbl_sctp_setattr(struct sock *sk, + struct sk_buff *skb, + const struct netlbl_lsm_secattr *secattr); void netlbl_req_delattr(struct request_sock *req); int netlbl_skbuff_setattr(struct sk_buff *skb, u16 family, diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c index ea7c670..1c82bbe 100644 --- a/net/netlabel/netlabel_kapi.c +++ b/net/netlabel/netlabel_kapi.c @@ -1121,6 +1121,7 @@ int netlbl_conn_setattr(struct sock *sk, switch (addr->sa_family) { case AF_INET: addr4 = (struct sockaddr_in *)addr; + entry = netlbl_domhsh_getentry_af4(secattr->domain, addr4->sin_addr.s_addr); if (entry == NULL) { @@ -1177,6 +1178,85 @@ int netlbl_conn_setattr(struct sock *sk, } /** + * netlbl_sctp_setattr - Label an incoming sctp association socket using + * the correct protocol + * @sk: the socket to label + * @skb: the packet + * @secattr: the security attributes + * + * Description: + * Attach the correct label to the given socket using the security attributes + * specified in @secattr. Returns zero on success, negative values on failure. + * + */ +int netlbl_sctp_setattr(struct sock *sk, + struct sk_buff *skb, + const struct netlbl_lsm_secattr *secattr) +{ + int ret_val = -EINVAL; + struct netlbl_dommap_def *entry; + struct iphdr *hdr4; +#if IS_ENABLED(CONFIG_IPV6) + struct ipv6hdr *hdr6; +#endif + + rcu_read_lock(); + switch (sk->sk_family) { + case AF_INET: + hdr4 = ip_hdr(skb); + + entry = netlbl_domhsh_getentry_af4(secattr->domain, + hdr4->saddr); + if (entry == NULL) { + ret_val = -ENOENT; + goto sctp_setattr_return; + } + switch (entry->type) { + case NETLBL_NLTYPE_CIPSOV4: + ret_val = cipso_v4_sock_setattr(sk, entry->cipso, + secattr); + break; + case NETLBL_NLTYPE_UNLABELED: + netlbl_sock_delattr(sk); + ret_val = 0; + break; + default: + ret_val = -ENOENT; + } + break; +#if IS_ENABLED(CONFIG_IPV6) + case AF_INET6: + hdr6 = ipv6_hdr(skb); + entry = netlbl_domhsh_getentry_af6(secattr->domain, + &hdr6->saddr); + if (entry == NULL) { + ret_val = -ENOENT; + goto sctp_setattr_return; + } + switch (entry->type) { + case NETLBL_NLTYPE_CALIPSO: + ret_val = calipso_sock_setattr(sk, entry->calipso, + secattr); + break; + case NETLBL_NLTYPE_UNLABELED: + netlbl_sock_delattr(sk); + ret_val = 0; + break; + default: + ret_val = -ENOENT; + } + break; +#endif /* IPv6 */ + default: + ret_val = -EPROTONOSUPPORT; + } + +sctp_setattr_return: + rcu_read_unlock(); + return ret_val; +} + +/** * netlbl_req_setattr - Label a request socket using the correct protocol * @req: the request socket to label * @secattr: the security attributes diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c index 22dc1b9..c070dfc 100644 --- a/net/netlabel/netlabel_unlabeled.c +++ b/net/netlabel/netlabel_unlabeled.c @@ -1472,6 +1472,16 @@ int netlbl_unlabel_getattr(const struct sk_buff *skb, iface = rcu_dereference(netlbl_unlhsh_def); if (iface == NULL || !iface->valid) goto unlabel_getattr_nolabel; + +#if IS_ENABLED(CONFIG_IPV6) + /* When resolving a fallback label, check the sk_buff version as + * it is possible (e.g. SCTP) to have family = PF_INET6 while + * receiving ip_hdr(skb)->version = 4. + */ + if (family == PF_INET6 && ip_hdr(skb)->version == 4) + family = PF_INET; +#endif /* IPv6 */ + switch (family) { case PF_INET: { struct iphdr *hdr4;