From patchwork Wed Jan 24 09:42:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Haines X-Patchwork-Id: 10182005 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 7977C60233 for ; Wed, 24 Jan 2018 09:43:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 66F1126538 for ; Wed, 24 Jan 2018 09:43:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5B8E2283BF; Wed, 24 Jan 2018 09:43:20 +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=ham version=3.3.1 Received: from USFB19PA12.eemsg.mail.mil (uphb19pa09.eemsg.mail.mil [214.24.26.83]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1B1AB26538 for ; Wed, 24 Jan 2018 09:43:18 +0000 (UTC) Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.3]) by USFB19PA12.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 24 Jan 2018 09:43:17 +0000 X-IronPort-AV: E=Sophos;i="5.46,406,1511827200"; d="scan'208";a="8477257" IronPort-PHdr: =?us-ascii?q?9a23=3ATNwL6RXeJcbwhs1Xxx/J7QxIGXDV8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYYROFuadThVPEFb/W9+hDw7KP9fy4ACpYud6oizMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCybL9uMRm6txndutULioZ+N6g9zQfErGFVcO?= =?us-ascii?q?pM32NoIlyTnxf45siu+ZNo7jpdtfE8+cNeSKv2Z6s3Q6BWAzQgKGA1+dbktQLf?= =?us-ascii?q?QguV53sTSXsZnxxVCAXY9h76X5Pxsizntuph3SSRIMP7QawoVTmk8qxkRgXoiC?= =?us-ascii?q?MaPDAn9m/ZhNF7gKZCrB68uxBzxojZa5yXOvVjZKPQZdMUS3RPUMhSUCJPH5u8?= =?us-ascii?q?YokSA+cPI+lYtJLwq0cSoRakGQWhHv/jxiNOi3Tr3aM6yeMhEQTe0QI8HtIBrH?= =?us-ascii?q?TUo8/vNKgPTOu7zrPHzTTFb/xIwjf29Y/Fcgogof6QXbJ/a9DRxlQ3GAzZllqQ?= =?us-ascii?q?qZbqPzKT1usTqGiW9PFvVf6ui24htwF+vCKvxsEyhYnVnI4a1lfE9SBgzYszON?= =?us-ascii?q?a2S1Z7bMa5HJZfuCyWLYt7Tt44T212tys21KcKtYOjcCUJyZkr3QPTZvKIfoSS?= =?us-ascii?q?/B7vSPqdLS13iX9nfr+0mgy8/lK6yuLmU8m5yFNKri1YndbSrn0NzBnT6tSfSv?= =?us-ascii?q?t640ehxS6D1wDN5eFAJkA5jbbbJIQ7wr4xi5oTql7PHjP2mUrqjK+WcV8o+u60?= =?us-ascii?q?5OT8frrqvJqcN45wig3mM6QunNKwAfggPwQTUGWW9v6w2b3+8UHjXrlHgeM6nr?= =?us-ascii?q?PEvJzCIMQUvK+5Awtb0oY57Ba/Ci+r0M8GknkDLVJFfg+HjofwN17VJ/D4EPG/?= =?us-ascii?q?jEiynzdw3P3GIr3gDYnNLnjEirvhe6195FRGxAo8ytBf+YpYCqsdL/LrRk/xqN?= =?us-ascii?q?vYAwc7MwyzxeboEsl91oMEVmKJGaKZMqTSsVmN5u01OOmMeJEauCzmK/Q/4P7u?= =?us-ascii?q?l3A5k0cHfaa1xZsXdGy4HvN+LkWbY3rjmMsOEWQRvgo5SuzqiUOCXCVdZ3a2Qq?= =?us-ascii?q?I96So0CJ+gDYffW4ChmruB3D20HpdOfGBJFkiMEWv0d4WDQ/oNZiOSIstkkjMa?= =?us-ascii?q?T7isUIEh2g+zuw/90bpoNPLU+jcftZLhytd6+/HTmQs19TxuAMSXy3uNQH1snm?= =?us-ascii?q?MUWz8227hyrlFhxVeG1qh4heBYGcFI6vNXTAg6L5/czu19C9D0QA7BeMmGSEq+?= =?us-ascii?q?SNW8HT4xVs4xw8MJY0tlBtqikgrM3zCxDrAJkLyLAYA7/bjH33jtPcp9zWjJ1L?= =?us-ascii?q?U5hVk8XsRPLXGmhrJ49wXLB4/IkkKZl6CxeKQZ2C7B7WaDzWyUsEFeSgFwS6bF?= =?us-ascii?q?XXEBZkTIt9j54F3NT6O2A7Q9LgRB0dKCKrdNatDxk1pGXO3sOM7fY2KqgGqwHQ?= =?us-ascii?q?yHxqmNbIrxY2Ud2D/SB1QanAwJ+naGLwc+DD+7o23CFDxuCU7vY0T0/OlwsnO0?= =?us-ascii?q?VEk0wB2Lb016zLe1/wYVhf2FR/MI0LMEoz0tqzJuHFayx9jWEcaPpxJ9fKVAZt?= =?us-ascii?q?Mw+FRH2njatwx6I5ytNKNiiUQdcwRwokPizRJ3Cp9PkcIytnMl0BJyKb6E0FNG?= =?us-ascii?q?bz6Xx43/OqfWKmbs5hCicLTZ1U3b0NqM/acP8vs4oU35vA61Dkoi72ln095N3n?= =?us-ascii?q?uG+5rFEREfUZ30Ukc47RR6oa/VYjUl7YPOyXJsKbW0siPF298xH+slxAygf9BE?= =?us-ascii?q?MKOYDwLyCMsaB8+gKewvgVepaAgIPOZM+64oJ8mmbeeJ2La3POZ8mzKrlWpG75?= =?us-ascii?q?p50kKQ6SV8UPXI0o0bw/6GxAuITCr8jFK7vsDwg4BEaikYHnCjxij8GI5Reqpy?= =?us-ascii?q?cJ4NCWevJ823wstxh4X2VnFC6lGjHVQG1NWueRqIYFz3xRdQ2lgPoXy7hSu4yC?= =?us-ascii?q?R5ky8orqWDwCzOxP7ieAAbNW5LQ2lii1jsLJOwj9AbWkindRIplBy/6Ub93ahb?= =?us-ascii?q?q7x1L3PPTkdQYyj2M2ZiX7O0trqDeM5P9IoksT5JX+S4YFCaTKP9ohQB3iP4B2?= =?us-ascii?q?texTY7dzC2tZXihRB6jnySLGprpnrDZc5w3Qvf5MDbRfNJxDoGQy14iT3JCVim?= =?us-ascii?q?I9ap+tuVmozYsuCjS22hTYdfcS7xzYOPrCG7/3FlAQWjn/Cvnd3qCQs63jH919?= =?us-ascii?q?lxTijIrwjzYo/w16S8L+1nYlNkBFjm68p1Aot+iJc/hIkM2XgGgZWY5WIHnn3u?= =?us-ascii?q?MdVfx63+dGACRTgXw9HL+gjow1BjLmmXyILjTXWR2NBhZ96nYmMMxi0y8c5KCK?= =?us-ascii?q?CO7LxLgyR5uFy4ohzNYfJlhDcS1eMu6GIGg+EOoAct0COdDa0JEElGOyzjihSI?= =?us-ascii?q?48q4rKpJeGalaaKw21ZmndC9ELGCpRlRWG7jdZc/GS999dlwMFPQ0Hzz843kds?= =?us-ascii?q?PfbdQJuh2TiRfAgPBfKIgtmfoSmSpnJWX9sGUry+EhixxuwZa6vI2cJmVj4q22?= =?us-ascii?q?HxlYNifvaMML4DHtiqRekdiK0ICzBJlhHS8LXJTwR/KyDD0SrejnNxqJEDAkr3?= =?us-ascii?q?eUA77fHQuB50d6s3LACYqkOmqRJHYH0dViXwWSK1ZHgA8KRjk6mIA2Fhyyzsz7?= =?us-ascii?q?bEh5/iwR5kL/qhZU0OJkLRf+Xn3apAiybjc0T5ieIQFM4Q5e4kfZK8ue7vh8Hy?= =?us-ascii?q?tA5J2usBSNKnCHZwRPFWwJVFaECE7+Mbm1/9bA9fSYBu2lL/bVe7qBteleW+2P?= =?us-ascii?q?xZK13Yts5yyMOdmXPnl+E/073VJOXXZjG8vDgzUPUzcalyzMb86Bvxe85iN3rs?= =?us-ascii?q?G58PvxXgLg+YqPBKFWMdl1/BC2m6iDPfaKhCllMTZYyo8MxXjQxbgHwlEdkD9h?= =?us-ascii?q?dz+sEbQcsi7AV6PQlbFJABEFcS9zM9FI760k1AlXJcHbks/11qJ/jvMtEFhKTl?= =?us-ascii?q?vtmsWoZcwRP2G9L0nLBF2VO7uaPzHL2N/4Yae9Sb1WkeVVuAa9tiqbEk/5IzSD?= =?us-ascii?q?jCPlVh61PuFQlyGbOxpetJu6chZ3BmjpVMjmZQGjMN9rkT02xqU5iWjLNW4TNj?= =?us-ascii?q?h8dVhAoaCO4ixDg/VwAWpB4mBiLemelCaT9/PYJYoOsft3HiR0kPpX7241y7RP?= =?us-ascii?q?8iFLWud4mCzKrtFwpVGml/OAyjtjUBVVrTZKi5iHvUJ4OaXW7pNAQ2rL/AoR7W?= =?us-ascii?q?WMDBQHv8dlCtrqu6xK0NjPk6PyJylE893P58scANbbKMGcPXU9NhrpHSLbAxEe?= =?us-ascii?q?TT63L23fgVJSkO2K/H2Pspc6soTsmIYJSrJDV1w0FvcaBVp+EdwHJ5d3UD0knq?= =?us-ascii?q?CHjM4U5Xq+qxzRS9tAspDBSP2SHe3lKCyFgrlcexsI3bT4IJwVNoLlwUNibkJ3?= =?us-ascii?q?nIfNG0rLQdBCuCthbhQ3oEVM6nR+SHM82179YAO3/HATDeK0ngIxigZme+Qi6i?= =?us-ascii?q?zs7EktKVrQuCQwkFI8ls7kgTCLbTHxK6mwXZlMCyXqt0k9KJX7TBhpbQeqh0xr?= =?us-ascii?q?KC/ER65Nj7tnbW1klQjcuZ1JGfFBU6JEZB4QyOqNaPo2y1RcrT+rxUhd5evKEZ?= =?us-ascii?q?FijhclcYawr3Jc3AJudMM6KrbOJKpI01dQnbmDsTWy1uArxw8fKV0N/32Ody4V?= =?us-ascii?q?okwIN6UmJiqy8uxq9wOChyNJeHIQWPoyvvJq6kQ9NvyEzyLnyb5MNEaxNu2YL6?= =?us-ascii?q?6CtGjAk9OITkk31kMSmElP5aJ23ts7c0qIS0Avy6OcFw8XOsrGKAFVaddS9XfI?= =?us-ascii?q?cCmStuXNxI56MJ+mFuD0V+OOsrgbgl68FgYzA4sM9tgBHoWr0EzAMcfnLbsFyR?= =?us-ascii?q?Ix5ATrJFSIF+lGeBOLkTgduM6z1pl30pdBJjsFG2VyLT235qrLpg8tmPeMRtM2?= =?us-ascii?q?YnYGUYQaLn02Xc27myhev3RGFja6yfkWyAmY4D/6vyjQAiT8Y8BlZPiKeRNmEM?= =?us-ascii?q?u29ikn86iqlV7X9Y3TKHrkOtRkodLA8/4Vp4iZBPNOVrlyqV3cmolCS3ytSW7P?= =?us-ascii?q?Hsa/J4LsZIk0cdz0FnG6X0SwizIoTsfxONKtIbaNgQzzWIlbrpKU3DE5Os+7DD?= =?us-ascii?q?0eHA1wp+4b7qJmeQIDe4Y7YQLvtwkmLay/JgaY3cmuQ2aqLTtWVOFRw/ynabJN?= =?us-ascii?q?0yciafS3x2cnTpE/0+a461UNRI0QghHY2/mje5FUUTLvFXxFZwXPuS05mnB7Nu?= =?us-ascii?q?ko2Oc/xwjHvEIAMzCRbuNpdnJLv9U9BVOULnV2Dms4R1CcjYrf7A6jxaoS/y5H?= =?us-ascii?q?k9ZSz+JFrGD0voXDbzK0RKyrtZLVvjIubNQ8v6JxMY3jIs6HtJzEnTzSV5jQvR?= =?us-ascii?q?ObXyGkDfZancJQIC1ASvlShW4lIdAGuZZG6UcpU8cxPaZPCKoyqbC2aDpkCyES?= =?us-ascii?q?wDQXVoya2jwNnuO827zHlhiNa5QuKhoEv4tegtEFSS55fjsepLO/V4XRj2KLUH?= =?us-ascii?q?ILIBoV7QhW5wINjY5wfuHk4IrUV5BA0ThWrOxoUiHTDJln60P7Sn2KgVj/UPih?= =?us-ascii?q?kuqp3R5Mw/LozNYbXQBwCVRHx+dWjUYoL6l3JLcWvo7PqDCIdEf6s3nqyOqpPl?= =?us-ascii?q?VRztfUd1LgBorfqWX8SjEc+WETRYJX1HHfEpESnhFlaKo3oVVDO5qqekDg6Dw4?= =?us-ascii?q?345pBaW3Vdi3x1Y5qnYLXyeqHMBbC+58tFLYRSZobI21p5X9I5VdXGtQ94OHq1?= =?us-ascii?q?tDl0VtKSG5w4JGK85R+j4MQCRPoTKFsduwT81Mx9R7AIISLddkpXj9Ar9EN4aM?= =?us-ascii?q?rHEsvLzg1GPZ8SgmsFim3DWzB7O4T+VB8m0CBwomOmWepVMrD+Y37mjS9VXNvU?= =?us-ascii?q?xu8OdAGriDl0NxryhhHppWHDZGyWilL0hvTHlBq+hVM6rVfNBAT/QweBOiNQcz?= =?us-ascii?q?GuIh30yM4U57h2z5YzBougtc5S/dQxE+VTMJjbf1hT0etsanNCcAS51WcDohbz?= =?us-ascii?q?3KKx6AlCBTuxZfdV9lV44FDdZC5r4Uw5FY/szcRkawMSsFRgBtNhok0fpDkk5O?= =?us-ascii?q?qF2YeTvBDQWyaPnPrgZ6fdyWrM60NvT24BlIioX7sOAi7aoDQ2eqmQq3QdDRt4?= =?us-ascii?q?X8rMGFtlOSdKfkNO2xeWPBTCLSgh+umLgpFITK/yzPMApBMZZ613skYZ/lCWHV?= =?us-ascii?q?IRRKPaUbJ1BUVapic9VJvvhaZ9N4eKYO4aJtBAiIRgnoGIy0qPlJNEjTSC/bLy?= =?us-ascii?q?Wc9uy/vYPT4qDcSef6YMyM3GzLQ6VtPpd18TP7Aavl0ZdC+krq3fdg7kF6RkLA?= =?us-ascii?q?MyCPttThIR4E69e5e0v+pJIpGyjWAJBqnHrr2E5Aa9IdQze2/5QA1JNZ9HHwRP?= =?us-ascii?q?p+0kj3q+BS9r9k6Ywt77Boz8e0K73SJu5BsU97GBiUGxll9okwAGhlWW9deOgR?= =?us-ascii?q?KO3efa4Bl8Dht/j3F7AL6B2S4+FZb9rHKF3Gmsm7ED6cUgZInAYGqT4dNQuczO?= =?us-ascii?q?WIm6p7RMeqv+T53Vgt41emJB4c0L9t/ZuE+raPpOLPcxTe17wEVbbxRsPvrrUs?= =?us-ascii?q?vFif5eY4m74PZGN1ZRGnEOkHWcIHwGfv07wqxzo2E8zfB7Lg5OJDV3UhkzLkgJ?= =?us-ascii?q?B9GlUbF+gaHbWV4ItemX04lPbBNt0MdaBCmHiAGgK4ErMYzn6r8SSXKnF/gh7S?= =?us-ascii?q?yxHwXX+z7FjuoC96QCvMyszukk9LWbi3G0hSRSupOUl3sD+VOgrnqsb3s7wv7E?= =?us-ascii?q?4qKmzkqM6NlGy5NbNWHszwPsaTLjUvqVIMkpIxWsKg1pwBFdq6OtcR/2l0buHC?= =?us-ascii?q?5GOzjy9Bv6BHipLF7cGU4fXWE2Ovj6+bq7WR3DBX0GU4vVUk59+8MfHB+sOFTO?= =?us-ascii?q?6112YLSCd/oRHOUwSyqrzBoFAeIVaL31vTmIwWItFZ2mE11ln86+g/XN0z9Atf?= =?us-ascii?q?FoHaZ/MBvDzzIyX7wVKeY9IxSymf3CBaHkrvHllkBKc82GzxvMXTlXfT4VEoRZ?= =?us-ascii?q?d/d1bhhRNpC4U0M0Ut6EIYwiAbCwgCdQibDK20BUTiNYYEWlIMaQ6Z07imeqc6?= =?us-ascii?q?xklzwrKz5ODNbexzHbcNNu1Hgg6IgldbBoocsbcCT7JkZ19d6KnXqxDtC4f5Wf?= =?us-ascii?q?jmiX0wNfqyTsBB788Zs3oi4gCiRxuv8ppD66gUiIqId6Fee5TMut5z71t/7z4V?= =?us-ascii?q?aiNNmAR/jw++Ue0EuO/j4MLUv4az5+myU6YtQ+EX9xkqCGRkk5v/nkwsodHN2+?= =?us-ascii?q?dbUI3Vhpz18BpRLH6SpIbazx58JPILK4KserZg63oHKDYFKnILPNqZcf887DFx?= =?us-ascii?q?MDTd4FxCGMAMZcgCMMrLhw9UllXjWKtP+crDBl+YF4Bzetgn72Xr0zA16oIwXP?= =?us-ascii?q?vv5jGwJJDf6UxNPvxYgSVjkdLNvu4VzuTIBCgQ+3mZZAB/wjmexJmVF/bw4eKM?= =?us-ascii?q?xcnWV1MBHi42VZ1RKyaC+QyjW+q6iZToUgKS6s/og5I+dVmdRmKwnKQbqKlMFf?= =?us-ascii?q?NPiiTh0jhYCI/1m+qfs8Cw52tPql1HDIFz4AXEGKVBJJp7Pw/1ls22RkdhByv/?= =?us-ascii?q?f9rUegApuOqMyecG+/9+OFfmZY8HPhIEzKr36XhLQQtgRr72uk2UXOwLa9tgVv?= =?us-ascii?q?zEsmpZ6YR+JK8TJFKdvoDlri9UqFAqBw8kcLAwrjhddkjAggJVX6L0taUbigsb?= =?us-ascii?q?V955uFNDFXi2OG0g+zrNTb5Vg7WJCPwJ7jWTSbQDU0doMiJ+WxO135Fue7q1nf?= =?us-ascii?q?9ZqW5GmyJ9oOQw0zN4Xhe8vjfsp60V0zI65L64rCkBuWBCTuiGjyfICFBDwe8W?= =?us-ascii?q?jacdF3ni6kKzYH0ZYIv0/rZnOdzq9ZM97HQnfRUjYyoGUPylCyHxjKOIAYuPvc?= =?us-ascii?q?lehBGXu8XOarmzIjYUNrgnzxLsWWR92BDEnBl06GsLXimg7Ng8KYqmJ8klwDao?= =?us-ascii?q?FHPAdFYI5aNJrNfxtUAVQ+Qrc19hx39j0sefTC0XWMPPA3o1jhQjaWhcaJJD7h?= =?us-ascii?q?saGLMygjeGualG+g8UbSzREoSi/YnQhtnH1mUnTddt3WLWvayFhpUl0HF/nNN0?= =?us-ascii?q?9CGOsmwId+PES89sHmTz1oBHxOzwefqttuEHSJN4x7m6Uf4CM8yj+W6o15VwXk?= =?us-ascii?q?+q2K4SH12jMO8M3r3bSTuqSXWEWeSXdGiBhzg4Mlbo5RmpMlI4dtxHr0o8Muve?= =?us-ascii?q?nJ5TiRftUbRuRiWfvVXb1nAsMfsGdwIqv4eqYwsKTOoPaOWHPeguxOcxCEAQb3?= =?us-ascii?q?/IASR2F/W2vkCzk4RhPXVv/1n6a/z38g/6KNuSBgUEEYnCo551+Py6QH+BOHB5?= =?us-ascii?q?wB12PUl07PvfF08qu+9daZmRm9/Qi8580e4fePdnKTc9tcILmoJ/9YmU19+HcR?= =?us-ascii?q?TLwZnuJdHVo/6YA/rEwkQ0e2FaVKQWYQf054U8I944VKffHbxDvRQTHaI6WoAu?= =?us-ascii?q?N3/t9KFoKwN+agzRa663gsntve2GfYZUp3nK7lIwKyfcphIDyvyoTQBhaZClmW?= =?us-ascii?q?nyKogqRj1dt91tFgdmHIxXFsMCqgqnBISUmLu6i9+q4E56vfUFsa/uBfDLzti5?= =?us-ascii?q?2J9xX5dC70yRIDnRHLVrglhijumqmffA3JzxBt/jdN4HT+V7XHDKaqXHHoS+LT?= =?us-ascii?q?KOPNjwe0hY/L6Ag/pFVUCKaST4WbeWnDG1P/Vjp0Mgw8p3e/SA4iYq6uTh2dDy?= =?us-ascii?q?bntX7geqrHiEL9ML9l3BBeXEUyVffvqM8WBoBoUdcYry6OoUN9E+htOb5l8gv3?= =?us-ascii?q?x5zMKZLv35/Qf30UVheMeedRPk?= X-IPAS-Result: =?us-ascii?q?A2ARCwB/VGha/wHyM5BeHgEGDIMVKgOBWieOdY1ymVWBeym?= =?us-ascii?q?KIFcVAQEBAQEBAQECAWoogjgkgk8CJBkBOQIDCQIFQwgDAWwFiFyBOwEDFQMBt?= =?us-ascii?q?TU6gwsFgQKEZ4IBBAiES4E2X4hKgQ5EBIFXhXQgBYpemSiVVJQxmRI1I4FQMxo?= =?us-ascii?q?jgnyCBAw1DxyBZ3iOIAEBAQ?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 24 Jan 2018 09:43:16 +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 w0O9h7IS023587; Wed, 24 Jan 2018 04:43:10 -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 w0O9h4q6132151 for ; Wed, 24 Jan 2018 04:43:04 -0500 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 w0O9h50i023584 for ; Wed, 24 Jan 2018 04:43:06 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1CuBwDjU2hafywYGNZeHgEGDIMVKoFdJ?= =?us-ascii?q?5xnmVWCAg+FNoR9VxUBAQEBAQEBAQITAQELFoYuGQE4ARWBO4hhgTsBAxUDAbU?= =?us-ascii?q?zOoMLBYEChGeBWwElBAiES4E2X4hKgQ5EBIFXgnIMgnYgBYpemSiVVJQxmRI1g?= =?us-ascii?q?XMzGiOCfIIEQQ8cGYFOeI4gAQEB?= X-IPAS-Result: =?us-ascii?q?A1CuBwDjU2hafywYGNZeHgEGDIMVKoFdJ5xnmVWCAg+FNoR?= =?us-ascii?q?9VxUBAQEBAQEBAQITAQELFoYuGQE4ARWBO4hhgTsBAxUDAbUzOoMLBYEChGeBW?= =?us-ascii?q?wElBAiES4E2X4hKgQ5EBIFXgnIMgnYgBYpemSiVVJQxmRI1gXMzGiOCfIIEQQ8?= =?us-ascii?q?cGYFOeI4gAQEB?= X-IronPort-AV: E=Sophos;i="5.46,406,1511845200"; d="scan'208";a="181930" Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.35]) by goalie.tycho.ncsc.mil with ESMTP; 24 Jan 2018 04:43:05 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3ANuORuBwDWldSgPPXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1O0QIJqq85mqBkHD//Il1AaPAd2Craocw8Pt8InYEVQa5piAtH1QOLdtbDQizf?= =?us-ascii?q?ssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1?= =?us-ascii?q?JuPoEYLOksi7ze+/94HObwlSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeu?= =?us-ascii?q?BWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbO?= =?us-ascii?q?SxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDwULs6Wymt771zRRH1iC?= =?us-ascii?q?kJKTA3/mLQhMFrkK5XvAisqwBlzoLIfI2YMud1cKPHfdMdQGpMRtpfVy1dDYO8?= =?us-ascii?q?dYQPFfcONvtaoYbnplsOqwWxBRKxD+7o0D9Ih2P53a0g3OQ7DA7JxBAvEMoOsH?= =?us-ascii?q?vOrdX1MrkdUfuuwabT0TXDbvVW2Svj54jSdBAuv+2MUahsfsrWzEkiDgXIhUiT?= =?us-ascii?q?p4z9Jz6ZyPkBvmeB4+Z+Wu+jkXArpg5rrjWgycogkorEi4MPxlzZ+yh0z5w5Kc?= =?us-ascii?q?OkREJne9KpH5lduieHPIVsWMwiWXtnuCMix70Gp5G7eC8KxYwpyBPBcvKJdYaF?= =?us-ascii?q?7wz5WuuNPTt1hWhpd6yhiBa36kigxffwVsyu31ZLqipJiNzMtnEJ1xDL68iHTO?= =?us-ascii?q?Vy/lu51DqRygze5ftILV47mKbBNZIszaQ8m5UcvEjbGy/5gkT2jKuYdkU+/eio?= =?us-ascii?q?7vzqYq/nppCAN497kBv+Pbk2lcOjGes4MhIBX2md+euiz73u5lb2QKlLjv0wjq?= =?us-ascii?q?nWroraJcIFqa6lGQNazoEj6xOnAze8zNsYhWUHLE5CeB+flIjmJVXOIPH+Dfei?= =?us-ascii?q?jFWhiytrxvDaMb3hBZXBNH7DkKz7crpn5E5czxQznphj4MdPB7UAJu/jclPgv9?= =?us-ascii?q?zfSBkiOkq7xPi0Js9609YkWGmPC7WVeIPbsFmF/ap7OeiHZIYPtAH2HPgs5vjj?= =?us-ascii?q?llczhV4bYaSz25YLLnu/G6I1cA2ifXPwj4JZQi8xtQ0kQbmyhQ=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CwBwB/VGhafywYGNZeHgEGDIMVKoFdJ?= =?us-ascii?q?5xnmVWCAg+FNoR9VxUBAQEBAQEBAQIBEgEBCxZdgjgigncZATgBFYE7iGGBOwE?= =?us-ascii?q?DFQMBtTU6gwsFgQKEZ4FbASUECIRLgTZfiEqBDkQEgVeCcgyCdiAFil6ZKJVUl?= =?us-ascii?q?DGZEjWBczMaI4J8ggRBDxwZgU54jiABAQE?= X-IPAS-Result: =?us-ascii?q?A0CwBwB/VGhafywYGNZeHgEGDIMVKoFdJ5xnmVWCAg+FNoR?= =?us-ascii?q?9VxUBAQEBAQEBAQIBEgEBCxZdgjgigncZATgBFYE7iGGBOwEDFQMBtTU6gwsFg?= =?us-ascii?q?QKEZ4FbASUECIRLgTZfiEqBDkQEgVeCcgyCdiAFil6ZKJVUlDGZEjWBczMaI4J?= =?us-ascii?q?8ggRBDxwZgU54jiABAQE?= X-IronPort-AV: E=Sophos;i="5.46,406,1511827200"; d="scan'208";a="8477251" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from ucol3cpa06.eemsg.mail.mil ([214.24.24.44]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 24 Jan 2018 09:43:05 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;10becd72-2613-4938-bc6d-543c884a29fb Authentication-Results: UCOL3CPA11.eemsg.mail.mil; dkim=permerror (key too small) header.i=@btinternet.com X-EEMSG-check-008: 7954067|UCOL3CPA11_EEMSG_MP26.csd.disa.mil X-EEMSG-SBRS: 3.5 X-EEMSG-ORIG-IP: 65.20.0.142 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DoAQDjU2hah44AFEFeHgEGDIMVggcntjyCAg+FNoR9VxUBAQEBAQEBAQITAQEBCA0JCCgvhVEZATgBFYE7iGGBOwEDFQS1MzqDCwWBAoRngVsmBAiES4E2iSmBDkQEgVeCcgyCdiAFil6ZKJVUlDGZEjWBczMaI4J8ggQBQA8QDIFneI4gAQEB X-IPAS-Result: A0DoAQDjU2hah44AFEFeHgEGDIMVggcntjyCAg+FNoR9VxUBAQEBAQEBAQITAQEBCA0JCCgvhVEZATgBFYE7iGGBOwEDFQS1MzqDCwWBAoRngVsmBAiES4E2iSmBDkQEgVeCcgyCdiAFil6ZKJVUlDGZEjWBczMaI4J8ggQBQA8QDIFneI4gAQEB Received: from rgout0702.bt.lon5.cpcloud.co.uk ([65.20.0.142]) by UCOL3CPA11.eemsg.mail.mil with ESMTP; 24 Jan 2018 09:43:03 +0000 X-OWM-Source-IP: 86.134.200.47 (GB) X-OWM-Env-Sender: richard_c_haines@btinternet.com X-Junkmail-Premium-Raw: score=7/50, refid=2.7.2:2018.1.24.93020:17:7.944, ip=, rules=__HAS_FROM, __FRAUD_WEBMAIL_FROM, __TO_MALFORMED_2, __TO_NO_NAME, __HAS_CC_HDR, __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, __LINES_OF_YELLING, __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, __PHISH_SPEAR_STRUCTURE_1, __MIME_TEXT_P, NO_URI_HTTPS, BODY_SIZE_7000_LESS Received: from localhost.localdomain (86.134.200.47) by rgout07.bt.lon5.cpcloud.co.uk (9.0.019.21-1) (authenticated as richard_c_haines@btinternet.com) id 5A5E1EBC00AEF38F; Wed, 24 Jan 2018 09:43:01 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btinternet.com; s=btcpcloud; t=1516786984; bh=aKB/UGDq11/gwCiiDDQ8VmPd6TG32uAAxOVIErDfCSs=; h=From:To:Cc:Subject:Date:Message-Id:X-Mailer; b=HYOiG3U8nP+EzzXdW4uyZ5i+qoFiXHXv20uaIB63b+mVSSZy4hpYF0g4TIrDYAT0eSqCpRTB8gDTb8NFTKsrY2ywGDSnGSjjQDU7JCxMi4RG0atDtHtQao4lzNgmfam5hrQ7V0hy3x36Zhe1kmDx7JlLylQ6n04qfUCW+IIxLzY= X-EEMSG-check-009: 444-444 From: Richard Haines To: selinux@tycho.nsa.gov Date: Wed, 24 Jan 2018 09:42:54 +0000 Message-Id: <20180124094254.6171-1-richard_c_haines@btinternet.com> X-Mailer: git-send-email 2.14.3 Subject: [PATCH V3] libsemanage: Allow tmp files to be kept if a compile fails 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 Allow the tmp build files to be kept for debugging when a policy build fails. Signed-off-by: Richard Haines --- V2 Changes: Remove the retain-tmp flag and just keep tmp files on build errors. V3 Changes: Release transaction lock after tmp files removed. Add additional comments to commit_err in handle.h libsemanage/src/direct_api.c | 56 ++++++++++++++++++++++++++++++-------------- libsemanage/src/handle.c | 2 ++ libsemanage/src/handle.h | 4 ++++ 3 files changed, 44 insertions(+), 18 deletions(-) diff --git a/libsemanage/src/direct_api.c b/libsemanage/src/direct_api.c index a455612f..88873c43 100644 --- a/libsemanage/src/direct_api.c +++ b/libsemanage/src/direct_api.c @@ -323,25 +323,43 @@ static void semanage_direct_destroy(semanage_handle_t * sh /* do nothing */ } -static int semanage_direct_disconnect(semanage_handle_t * sh) +static int semanage_remove_tmps(semanage_handle_t *sh) { - /* destroy transaction */ - if (sh->is_in_transaction) { - /* destroy sandbox */ - if (semanage_remove_directory - (semanage_path(SEMANAGE_TMP, SEMANAGE_TOPLEVEL)) < 0) { + if (sh->commit_err) + return 0; + + /* destroy sandbox if it exists */ + if (semanage_remove_directory + (semanage_path(SEMANAGE_TMP, SEMANAGE_TOPLEVEL)) < 0) { + if (errno != ENOENT) { ERR(sh, "Could not cleanly remove sandbox %s.", semanage_path(SEMANAGE_TMP, SEMANAGE_TOPLEVEL)); return -1; } - if (semanage_remove_directory - (semanage_final_path(SEMANAGE_FINAL_TMP, - SEMANAGE_FINAL_TOPLEVEL)) < 0) { + } + + /* destroy tmp policy if it exists */ + if (semanage_remove_directory + (semanage_final_path(SEMANAGE_FINAL_TMP, + SEMANAGE_FINAL_TOPLEVEL)) < 0) { + if (errno != ENOENT) { ERR(sh, "Could not cleanly remove tmp %s.", semanage_final_path(SEMANAGE_FINAL_TMP, SEMANAGE_FINAL_TOPLEVEL)); return -1; } + } + + return 0; +} + +static int semanage_direct_disconnect(semanage_handle_t *sh) +{ + int retval = 0; + + /* destroy transaction and remove tmp files if no commit error */ + if (sh->is_in_transaction) { + retval = semanage_remove_tmps(sh); semanage_release_trans_lock(sh); } @@ -375,7 +393,7 @@ static int semanage_direct_disconnect(semanage_handle_t * sh) /* Release object databases: active kernel policy */ bool_activedb_dbase_release(semanage_bool_dbase_active(sh)); - return 0; + return retval; } static int semanage_direct_begintrans(semanage_handle_t * sh) @@ -1635,17 +1653,19 @@ cleanup: free(mod_filenames); sepol_policydb_free(out); cil_db_destroy(&cildb); - semanage_release_trans_lock(sh); free(fc_buffer); - /* regardless if the commit was successful or not, remove the - sandbox if it is still there */ - semanage_remove_directory(semanage_path - (SEMANAGE_TMP, SEMANAGE_TOPLEVEL)); - semanage_remove_directory(semanage_final_path - (SEMANAGE_FINAL_TMP, - SEMANAGE_FINAL_TOPLEVEL)); + /* Set commit_err so other functions can detect any errors. Note that + * retval > 0 will be the commit number. + */ + if (retval < 0) + sh->commit_err = retval; + + if (semanage_remove_tmps(sh) != 0) + retval = -1; + + semanage_release_trans_lock(sh); umask(mask); return retval; diff --git a/libsemanage/src/handle.c b/libsemanage/src/handle.c index 4ce1df03..a6567bd4 100644 --- a/libsemanage/src/handle.c +++ b/libsemanage/src/handle.c @@ -86,6 +86,8 @@ semanage_handle_t *semanage_handle_create(void) * If any changes are made, this flag is ignored */ sh->do_rebuild = 0; + sh->commit_err = 0; + /* By default always reload policy after commit if SELinux is enabled. */ sh->do_reload = (is_selinux_enabled() > 0); diff --git a/libsemanage/src/handle.h b/libsemanage/src/handle.h index 1780ac81..a91907b0 100644 --- a/libsemanage/src/handle.h +++ b/libsemanage/src/handle.h @@ -62,6 +62,10 @@ struct semanage_handle { int is_in_transaction; int do_reload; /* whether to reload policy after commit */ int do_rebuild; /* whether to rebuild policy if there were no changes */ + int commit_err; /* set by semanage_direct_commit() if there are + * any errors when building or committing the + * sandbox to kernel policy at /etc/selinux + */ int modules_modified; int create_store; /* whether to create the store if it does not exist * this will only have an effect on direct connections */