From patchwork Mon Jan 22 16:38:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Haines X-Patchwork-Id: 10178871 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 8733F60353 for ; Mon, 22 Jan 2018 16:45:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 78BB02808F for ; Mon, 22 Jan 2018 16:45:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6D9DA283F9; Mon, 22 Jan 2018 16:45:14 +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 UCOL19PA11.eemsg.mail.mil (ucol19pa11.eemsg.mail.mil [214.24.24.84]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A7EF12808F for ; Mon, 22 Jan 2018 16:45:13 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.46,397,1511827200"; d="scan'208";a="426986500" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by UCOL19PA11.eemsg.mail.mil with ESMTP; 22 Jan 2018 16:45:10 +0000 X-IronPort-AV: E=Sophos;i="5.46,397,1511827200"; d="scan'208";a="7856984" IronPort-PHdr: =?us-ascii?q?9a23=3AMekeYxbUhffC/rkIGhEop2L/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZosu5Zx7h7PlgxGXEQZ/co6odzbaO6ea5AydRu96oizMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCybL9uMhm6txjdutcZjYZmNKo61wfErGZPd+?= =?us-ascii?q?lK321jOEidnwz75se+/Z5j9zpftvc8/MNeUqv0Yro1Q6VAADspL2466svrtQLe?= =?us-ascii?q?TQSU/XsTTn8WkhtTDAfb6hzxQ4r8vTH7tup53ymaINH2QLUpUjms86tnVBnlgz?= =?us-ascii?q?oJOD4j9GHcl9J+gqRVrhm8oxBz2pPYbJ2QOPd4Y6jTf84VRXBZU8hRSSJPDICy?= =?us-ascii?q?YYwSAeoZP+tUsofwqEUVrRalGQWgGPnixiNSi3PqwaE31fkqHwHc3AwnGtIDqG?= =?us-ascii?q?jarNTpO6cSS++11rTHxijBYfxM2Df97pbHcgs8qvyLR7JwcNbeyUk1GAPfk1qf?= =?us-ascii?q?sZDqMCuV1usXsmib6fRvVfm0hmE8twFxoz6vxtsyhYnTgIIa1EzE+T9lz4YyIN?= =?us-ascii?q?21UUh2asOnHptIryyWKoR7T8w4T2xopSo20KMKtJGlcCQQ1Zgr3x3SZv2df4SV?= =?us-ascii?q?7B/uW/ydLDdmiH5/Zb6zmQq+/E69wePmTMa0ykxFri9dn9nJsXACygLc59CcSv?= =?us-ascii?q?t44kehwTGP1x3P6u1cIUA7i67bK5k5z74sjJUTq0XDHjLtmEnskK+Xdlkr+uiv?= =?us-ascii?q?6+j9ZLXpuoScOJNuhgH7M6QuntSzAeU+MgcQQ2iW4fmw2bLs8EHjQLhGk+c6nr?= =?us-ascii?q?fWvZzEP8gXu7a1AwpP3YYi7xa/AS2m0NMdnXQfN1JKZhaHj4nvO1HTL/H0FOyw?= =?us-ascii?q?g1OxkDdt2//JIKbhD47RLnnDjLjhfbF951RayAoo199T/Z1UCrYfIP7rQE/+qM?= =?us-ascii?q?TYDgMlMwyz2+vnCtJ91oUEVmKTAq+WKqXSvESK5uIoJemMYZUauC3hK/c7/f7u?= =?us-ascii?q?lmU1mVgHfammxZEXcmy3Hux6I0WFZnrhmtUBEWUQsQUiT+zqk1qCUThSZ3asRK?= =?us-ascii?q?886DU7CJ+pDIjYW4CthqCB3DqhEp1RfGBGBUiGEW30eIWcR/cMdCWSL9d5kjMa?= =?us-ascii?q?TreuVYkh1RCytA/90LdnL/Tb9TMGup7509h1/eLTnwko9TNoF8Sdz32NT2Zsk2?= =?us-ascii?q?wVQD822qZ/rlFjxVeH0Kh1mOZXGsJJ5/NOSAs6MoTcz+NiAdDoRg3BZsuJSEqh?= =?us-ascii?q?Qti+HD4xUsg+w8UVbklhHNWiiwzM0DCxA78JjbCLAoI78r7E1XjrO8l902rG1L?= =?us-ascii?q?Umj1Q+Q8tPM3GmibB79wfNAo7GjVmZl7yqdKkH2y7N7HmMzWyLvE5CUQ5wVb7K?= =?us-ascii?q?XXcQZ0fMqtT5/EzCRae0Cbs7KgtB1dKCKqxSZ9zpjFRGQ/HjNc/bY2K1gmuwBB?= =?us-ascii?q?CIyqmKbIXwYWUd3yTdCFYanAwJ+3aJKxQ+DD+7o23CFDxuCU7vY0T0/OZgsHO0?= =?us-ascii?q?VFU0zwCRb0B6z7q64AQVhf2HS/ML2rILojsupCtuEFa6xdLWBMKKpxB9c6VEfd?= =?us-ascii?q?M9/FBH2HrXtgx8OpygKr5thkQFfgR5oUzhyhJ3Cp9ansgytnMqywhyJryE31Nd?= =?us-ascii?q?bT+Y2orwOrLPIGno4B+vc7LW2k3Z0NuO9KcP8u43q1P/swGoDUov6HBn08FU03?= =?us-ascii?q?eF/ZXLAhESXYj2UkYt+Bhwv6vabTUl54PIyX1sNrG5sjzY1NIqA+sl1w2tf9RF?= =?us-ascii?q?P6OHEw/yDtcWB8+0KOwlg1KpdA4LPPhO9K4oOMOrb+GJ17OxPOZhgj2ml39K75?= =?us-ascii?q?ph3UKJ7SZ8TfTI35kdyfGCwgSHTyv8jEumss3vhY9LfzUSEXSkySj4BI9RYbZ/?= =?us-ascii?q?fZ0XBmevPcK3wMl+h5/3VHJC8l6sGU8G0tezeRWOd1z9wRFQ1UMPrHy9hCS30i?= =?us-ascii?q?d5kz4srquQxiDOxfrtdAYfMG5RWGZilUvsIZSzj90CR0ioYRIplBy+5Ubm3KVb?= =?us-ascii?q?v6J/L27dQEdNZSf2KXtuUq2uubqee8RP8o8nsT1LUOSgZlCXUrD8rAEe0yP/AW?= =?us-ascii?q?Re3is7eiq0uprnhRx1k3+dLHNpoHreY8Fwyg/V5MbASv5JwjoGWC54hCHJBli9?= =?us-ascii?q?I9ap4dKUl43Zvu+iV2KhUZtTcSbwwIOEtSu743dlAQe4n/ypnd3nCwc62zfh19?= =?us-ascii?q?Z2TSXIsAr8Yo7z2qS+MOJnZVVoCEbn68VkHoF+k40whIwf2HUBnZWV5XsHkWHy?= =?us-ascii?q?MdpHwqLydnwNSiAXw9TN+gjqxFVjLm6Vx4L+Tnid2MxhZ92+YmwIwCIy88dKCa?= =?us-ascii?q?mP4bxfgCt6vkG4oRjWYfhnkTcX0eEu52ICg+EVpAotyT2QArMMEkleJizhjBeI?= =?us-ascii?q?4M64rKVMYmagb6Sw2FB5ndC7A7GIuhtcV2rhepc+AS9w6d1yMErW333u7oHrZs?= =?us-ascii?q?HQYsgVth2IjRjAlfNYKI8qlvUUnypnInjxvWYiy+4mlxxhwY+1vIaAK2V386K2?= =?us-ascii?q?HARUNjvraMMP4jvtl7pRnt6K34CzGZVsAisLXJ31Qv+zDjISs+noNwaUHD06tH?= =?us-ascii?q?ibBaLVHRWD50d+s3LPD5erOmmPJHYD0NViQAKQK1BegAAIXDQ2h5A5GRqsxMD7?= =?us-ascii?q?d0d5/D8R7EbiqhRQ0uJoKwX/UmDHqQerajY0TIaQIQFT7gFF6UfVP9KR7v5vHy?= =?us-ascii?q?FY+Z2hqRKCJnadZwtWEWEDQlaECEz7Prmy+dnA9PCVBuSkIPvIfbWOruleWuyG?= =?us-ascii?q?xZ2xz4Rm+CyMOd+XPnl4CP072FRMUmxlG8jDnDUPUSMXnTrXb8GHvBe85jF3rs?= =?us-ascii?q?en/fTxQg7u65GDC75IPtVr/BC3gbyOOPSMiyZ8MzpY0YkMxXDQwrgFwFESkz1u?= =?us-ascii?q?dyWqEbkYuy7NVrzflbJMDxEBbSNzKMxI77kn0wZXJcHbj8n51rlijv46E11FT0?= =?us-ascii?q?Dumtm1ZcwWJGGwLFXHBFyRO7SePT3G2M/3YaKmSb1LkOVUuRywuTCBHE/lIjuD?= =?us-ascii?q?liPmVxS1PeFLliGbMwRUuJuhfRZ1FWjjUNXmZwWgP9BsijE2xbw0hmjWNW4HKz?= =?us-ascii?q?R8aF1CoaGK4SNDnPp/H21B7nx4LeiLgCuW8+nZKowLsftwGCh1mfhV4Gghy7tS?= =?us-ascii?q?6iFIXvt1mDHdrtR2uVGpjvGPyiZ7UBpJsjtLgoOLvUFmOarH7ZlNQmzL8wwX7W?= =?us-ascii?q?WXERgKoMFlCtL3saBK1tfPjL7zKCtF89/M5sQcBsfUKMWBMHc6LBXmBiXbDAof?= =?us-ascii?q?Qj6tL23fgFZdkP6K/H2Pspc6soTsmIYJSrJDTlM1GekVClp7E9EZJ5d3Ri0rkb?= =?us-ascii?q?iejMES5Hq+qALeRMJVv5zdUfKSG/rvIi6DjbZYfxsI3a/4LYMLO43n3Exib0N2?= =?us-ascii?q?nJ7NG0vRQ99NpDZubhUzoEpT83hzVXE820Xgagyx+nATDuK0kgQwigRgfeQn7C?= =?us-ascii?q?3s7EsvJlrWuCswl1E8mdP7jj+LdD78N6SwXYZNCyrorUcxNIj7QwV0bQGom0xr?= =?us-ascii?q?KivETapLj7R8bWBrlBPcuZxXFP5GU6JEewEfyuuNZ/o00VRRsT6oxU5d5eTYDp?= =?us-ascii?q?timhMqcYSyoHNAwQ5jasA6JbDILqpT0ldQnr6OvjOv1u0p3QARPVgN8GKPdy4T?= =?us-ascii?q?o0EHLKMmJzCv/u1i8gyNhSdMeHUWV/orvvJr9lkxO+KewCL8y7RDMFy+N/SDL6?= =?us-ascii?q?OFvGjNjcqIQlQq1kwWkUlE/L923Nwsc0qSSkAj1ryRFw4GNcDaMwFac9JS9GTP?= =?us-ascii?q?fSaJqejN2ox6P4G8FuDuUO+Pu70ZjV6jHAYsA4sD9N8BHoW23EHeM8jnMKYPyQ?= =?us-ascii?q?8x6wTzOFWFEPNJdQqWnzgbpsG/y5l33ZVAKjwGH2VyLz+35rfWpw8thvqPRtE2?= =?us-ascii?q?bWkGXoEcLHI5RNW6mzJFv3RHFDS3zuMZyA2F7z/gpiTRDCLxYMdiZPaUfxxjE8?= =?us-ascii?q?u6+TMh/KiqkVTX6InRJ3nmNdR+vd/C8fkVp5KGC/xIU7Zyq0LcmoleR3ytVW7A?= =?us-ascii?q?C8W4KIPxa4Y2a9z4E3i6UkGlhzIzUcjxIM6nLrKUjgHwWYZUrI6b0Sg4OsCjED?= =?us-ascii?q?ETAA1/qPwd5K1ifw0DeIA0YQTotggkMKy/OgiY2M20Q2mxMTtWU+VfzeKiarxN?= =?us-ascii?q?ySosb/O1yHsnTpE+1Om56VcDSowQgBzCwviufJVRUS/2GnNBYQrPvjY5m3JnNu?= =?us-ascii?q?ks3uc12AnIvkUEMzCXaOxpb3RJsM0+BVyIPXp7EXY3R1iYjYrH4w6jwaoS/zdD?= =?us-ascii?q?kNlI0e1Jqn/+voXQYDi0QqyktY3VszY8bdghu6BxK5bsItGBtJzFhTHfUIPQvR?= =?us-ascii?q?ebUCGkE/pam95QIC1cQPlJlmElOdAGuYRb5korU8cyPbpPB7cwprqyczprETYS?= =?us-ascii?q?zTMFV4OHxDEDjP2w1KfalheRdZQiMQYLsJZZj9scTSF5fD0RqLWkV4XMmG+OUn?= =?us-ascii?q?ILLxsL7QRQ+AIAkZd9fuX/74rST59D1SJWo/NyUivEDZRp+UH0SmeKjlj8T/Wh?= =?us-ascii?q?jvGm3RlIwPLqzNYbRAZ1CVJByOZOiksoNLZ3JrEIvo7Ntj+Hb1n6vWzqyOuiKl?= =?us-ascii?q?lc0sjUd1r/DIreq2XzTjcc+XoPRY9UyXHfE5sSnxB+aKYxq1VGOJqmdVrm5zw4?= =?us-ascii?q?24RpGKG1Wtqxx1Y4q3YKXSSqHsFAC+FnsVLXRCZqb4qtqJr7J5VYWnVQ94GFq1?= =?us-ascii?q?dFjEVtNDa0yYZbK8FI+TMMQCRDoTCGs9eoTs1Mx9N2BYcWIthjo3f9BL9EOJ+J?= =?us-ascii?q?rn02oLPv0GXW+zQhv1qh2Tq8Bbe4T/pH8G0aBAopPX6Sqk41D+sj6m3S6EzCsk?= =?us-ascii?q?ho/+dHAbiClUdxoDFjEZ1VGzlGy2ulIEppTHlarepVNb7Zc8pCTPkufRWvIQAx?= =?us-ascii?q?FeY630yV+kF5hWv5bDFvuQtb4S/dWxI5WjUSgrfohTIRsNqnOSMAR5JOczohcz?= =?us-ascii?q?/PKxiHliBPoBZfd0ZqVogCDdZL574XwYlZ8tfMREu3NS4FWxliOR4i3vpEiU5P?= =?us-ascii?q?qkOYdj7BDQCwb/bArgV3fduNrM6uNPn55hlIhZ7nsO8i66UOXHmmmQqzQd/AsY?= =?us-ascii?q?PzqtqKuVaQe6viNe2zf2PBRiDWjR+snbckE4XK/y/LPQpDMJl61WArboX9CWPQ?= =?us-ascii?q?JhRGIL8bJ1BHWq9kb9VGvvpaaNVgeKoT/q9tHB2HTAv1GIOztPlGMkrTRTPGIi?= =?us-ascii?q?Wd6Oywv5zc4qHGROj9YsyM22zHTLhpPpd77jn7H6nl0ZNE9krxwPdt+VtwSULa?= =?us-ascii?q?PCCZsNThOgQL6dGndkT4up0pGS3ZAItskHX33E5NbMwXTDO28JQD1JxW8m7wRv?= =?us-ascii?q?xi3kj1ruJS66Fu6ZMr7LBx1ce0OaDSJOxYsUB9GBiUAR5q9pE3D2hhXG1RZ/IR?= =?us-ascii?q?KPPNfaQYkc/uqvr4F6oM6BGP/OxZc9THLVnbmsajEjGcVQBEnAAZpD4YNASc0f?= =?us-ascii?q?CFm7VzScm4u+f0wV4t7EK4Lh4dy7Bh/4GE9bSUpOXPdRve0aAEWrT2RsP0trks?= =?us-ascii?q?tF6S5fwglL4KZGN1ZhaqH/UDWcEGx2fv16YqwTgrE8PZELLq4ORDWG4hnjL8h5?= =?us-ascii?q?B9GE0bGvEVHbqO5olem3k3muzHOd0Mc6BCnGmPGQSiErAc1X6h8zGXL3V9ghHS?= =?us-ascii?q?zxHwRnu+7FnyrSJjQCvMydLjnlBUVrmxC0dSRTCmOVRksDOVIQrnqMb3ubkv7E?= =?us-ascii?q?4oKGDks8iNlGS5MrNNA8L/PMCcITUzpF8PiZ0xQdqv2ZwUGdWjO9oR9XB+YeHY?= =?us-ascii?q?62y1jy9AraBHh5Dd4sGO4PnXG2evj7GCobWX2D9Y0mQ4vU046t24MvHO/NiKTv?= =?us-ascii?q?Sz2mYfUShwpgzBXwSvpbzDtVAUPk6L31nXl4wWJN1Z2mM41k7+7ug5XN0z7Ble?= =?us-ascii?q?FprHZ/4apDDyOSH7zkyDbN8sTSmRzSdXEUzpHlViH6g8wm3wttrTlXjM410oWp?= =?us-ascii?q?Vwd0v/iBNsDoU4Mkws50IVwioCDQgNcQqUDKysBUn+MYQEUlUMZgqd07inYKc3?= =?us-ascii?q?2ldzzam16O/Ud+x8CLIHNuxBgQ6WgFhbBpUWvLUGQL1mZ19S6K7XpwblC4j9XP?= =?us-ascii?q?jqjGEwOuOxQsBb98AZqnQj7x2nRxW69ZdM87YbiZ6Pdq5eYpjApsN84Fl95T4J?= =?us-ascii?q?aCNNhAJzjxSjUeATvOrj+MTUsIK06uayU6YgX+oX+AIuB2tgk5vwgEsuodXW1+?= =?us-ascii?q?dAVILViZ7w8B1WI3KQvobVzQV8I/IUK423ZLZg62kHJy8GKnIBI9WWbeU84yhq?= =?us-ascii?q?MDnU/FxNHMcMZdIePMrQlgFZkUnpV69J9svbAFCUEYFzeN4072Dv0jA67YM8Uv?= =?us-ascii?q?r86D+xPZ3f6VBNMO9EjCVojt3Cv/IZwfvVCCgQ+nmZcAN4wiaNxpiCEfrw+v+M?= =?us-ascii?q?yN7MXVMcAiE2S5tdJCaF+QG/Seq6iI7pUhiN5sHuj5wwckOQRnqsnKUKqatMHu?= =?us-ascii?q?tAhT/93jdADIz1gOiVs9W04mtNqlJHCJpz7QHCGKhHPJV7PhT4ls+xSkdgBiv/?= =?us-ascii?q?fNzUeQcvueqXwOcM+OZ+N0rlaI8FIxIE1aj16X5IQQtvUrL2uEiWXf4Jbtt8VP?= =?us-ascii?q?zEtmxV6Z5nK6IXPViduoblrjFTpVAyHQ8mdb4wrjtBdkXUmw1VQan0sqYaigQA?= =?us-ascii?q?Sd55pVNMGWWoNWI8+TXHW6pVjK2KBf0b6DqTSLIBU1lyPiN4XRy1xI1ke6G1kv?= =?us-ascii?q?BfrmNGgiR9reAl0zxiQxu9tzPjp6YJ2T8747G4szMBuX1ZQemElSfHF0lDxuwQ?= =?us-ascii?q?jagAE3bi9UC8YH4bYYvw4LlmJdzg9Y4l43Q+fRUsYTYLXeGhCyHslaOHHJaDsN?= =?us-ascii?q?VGhB6CoM/Od6O8LTAONrQhzhLuX2R90gnbnBtz7GsLQymv7Nw6K4W5I8olwDSn?= =?us-ascii?q?GXTDflYW/qxJqNfxtUIMTOYubFNhwWZj0suARiAWRszAAWU1jg8iaWpadpJP8x?= =?us-ascii?q?kaGLc0gjyQpKlJ4hkUYCvIEoSi4oTfhtnH2X8hTdpx3WLWoqqFho820H17hdx7?= =?us-ascii?q?8zSCuHMId+zXS8VsGGT81p9DyeziYPWgqu4HR5ViyLSgSP8NLNKu+Gq32JVvX0?= =?us-ascii?q?+q2K4eH16nP+MZwbfbSSilQ3WCWeuXa2iMgyo5Mknq6BimNl03csZKoFMjPebZ?= =?us-ascii?q?g55clhHhUalqSSmKol/b1mMjO/sAdw0qoIenZxAKTOkJauibIegh3uYzCEMIb3?= =?us-ascii?q?DTBit2F+62vkKxnIhhJXpv/1/2YeLz/QD6KNGSAAULEZbGrp5t/vy3XmaBOX5m?= =?us-ascii?q?zB1vM0h47uPfF1Uqtu9AaJachtnQiM590e4CbfttNjc9utELkIJ59YaUyNuKcQ?= =?us-ascii?q?3WzpvqINHauOSXA/3ez0QsfWFXSaQZYQLz54okOt45WrvTHaZWvBgGAqg6WpMh?= =?us-ascii?q?PX/r9K5oNANzbhLRZLOsj8novO2LZZxUqGTN41ItKifcpx0DyvupTQx0b5Cqm2?= =?us-ascii?q?/+IJYuSTJdt9dtEAdpHJNTG8McqAqqG5yUmKS8i9+r4UN6uvQKvLH2Cv/Q0dS2?= =?us-ascii?q?wYRxU4Jd5UyRMzbbHLNrjVh9juSunvfA1YH8CdjsedMBSOd2Q23IZ6TYHoqhMD?= =?us-ascii?q?KOO8P9e0lA87KG1rJ2TAmRN2jFWP+duSmlMuh0yVkqwYx/OuzIxXoi6K+I9sH1?= =?us-ascii?q?YjRhpyyjpGSFfLtW7VrHHqSKRRNfSfOf/FFuKq0ebI35788ELd0k3NWG5QRvqj?= =?us-ascii?q?9F1Z3WcOCaskbQ1xcjJtrgJ0zz1nN8ANEH?= X-IPAS-Result: =?us-ascii?q?A2DhBwA6FGZa/wHyM5BeHQEBBQELAYMVKgOBWieOdY1xm1A?= =?us-ascii?q?pihVDFAEBAQEBAQEBAQFqKII4JIJPAiQZATkCAwkCBUMIAwFsBYhbgToBAxUDA?= =?us-ascii?q?bcWOoMLBYEChF+BZAQIhEmBNl+ISoEORASHSyAFilqZIJVOlCyZAzYigVAyGiO?= =?us-ascii?q?CfIIEDDUPHIFneIpqAQEB?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 22 Jan 2018 16:45:09 +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 w0MGj3IB026591; Mon, 22 Jan 2018 11:45:05 -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 w0MGj07F096840 for ; Mon, 22 Jan 2018 11:45:00 -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 w0MGj2O1026589 for ; Mon, 22 Jan 2018 11:45:02 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1C4BQA6FGZafywYGNZeH4MnKoFdJ451j?= =?us-ascii?q?XGbVw+FNoRyQxQBAQEBAQEBAQETAQELFoYuGQE4ARWBO4hggToBAxUDAbcWOoM?= =?us-ascii?q?LBYEChF+BPgElBAiESYE2X4hKgQ5EBIdLIAWKWpkglU6ULJkDNoFyMhojgnyCB?= =?us-ascii?q?FAcGYFOeIpqAQEB?= X-IPAS-Result: =?us-ascii?q?A1C4BQA6FGZafywYGNZeH4MnKoFdJ451jXGbVw+FNoRyQxQ?= =?us-ascii?q?BAQEBAQEBAQETAQELFoYuGQE4ARWBO4hggToBAxUDAbcWOoMLBYEChF+BPgElB?= =?us-ascii?q?AiESYE2X4hKgQ5EBIdLIAWKWpkglU6ULJkDNoFyMhojgnyCBFAcGYFOeIpqAQE?= =?us-ascii?q?B?= X-IronPort-AV: E=Sophos;i="5.46,397,1511845200"; d="scan'208";a="180032" Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.35]) by goalie.tycho.ncsc.mil with ESMTP; 22 Jan 2018 11:45:02 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3ATUv4NB2p0LM8oQJjsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?se0RLPad9pjvdHbS+e9qxAeQG9mDsrQc06L/iOPJYSQ4+5GPsXQPItRndiQuro?= =?us-ascii?q?EopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZv?= =?us-ascii?q?JuTyB4Xek9m72/q99pHPfglEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+?= =?us-ascii?q?VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfM?= =?us-ascii?q?QA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7S60/Vza/4KdxUBLmlS?= =?us-ascii?q?cJOSA3/m/UjcJ9l75XrA67qhBj2YPYfJ2ZOfxjda3dZ9MaQm9BU95NWSxAHoy8?= =?us-ascii?q?b5EAD/AcMu1FrYfyvVoOrR2gCgm3GejizSVIhn7q0q06yeshCxzJ0xQ8EN0WsH?= =?us-ascii?q?TbttT1NKEMXuCu16TH1inDb/JQ2Tfh9ofIaBYhru+QXb5qbcXRzkwvGhrDg16N?= =?us-ascii?q?qoLlJyuY2voQv2WU9eZsS+2ih3Q5pwx+uDSiycghhpHKi48U0FzI6Ct0zYkvKd?= =?us-ascii?q?C4VkJ3e8OoHIVMuyycKoB4WNktQ3tytyY/0rAGuYC0fCwNyJk/yRHSdeWJfY6G?= =?us-ascii?q?7x/9TuicPSt0iXN/dL2hmRmy9FOgyuLmWsmxyllKry5FnsPJtnAM0xzf8smHSv?= =?us-ascii?q?1j8Ue9wTuDyR3f5+5eLUwqmqfXMYAtz7EqmpccvknPBir2l1/3jK+SeEUk4O+o?= =?us-ascii?q?6+H/b7X8p5+TK490hRvkMqszgsOwHfw3MggUUGia/+Szyqbj8FbiT7VWj/02lL?= =?us-ascii?q?XZv47AJcQduKG5HxVZ3Zok6xa6FzumysgXnWEbLFJZfxKKl5PpNE/KIPD5C/e/?= =?us-ascii?q?nlutnSx3x/HGIrLhApLNImLFkLf6Z7lx8UFcyA0tzYMX25UBEbwFIfTuSmftpd?= =?us-ascii?q?fYCVk/KAXyzOH5W/tn0YZLY2OEAqaDPOvyuF6O6/lnd/ONb48cojrKIM8l7v/o?= =?us-ascii?q?gGQRk0Mce7Wkx50adDazGfEwcBbRWmblntpUSTRChQE5VuG/0FA=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0A/BwC8E2ZafywYGNZeHQIdB4MDKoFdJ?= =?us-ascii?q?451jXGbVw+FNoRyQxQBAQEBAQEBAQEBEgEBCxZdgjgigncZATgBFYE7iGCBOgE?= =?us-ascii?q?DFQMBtxM6gwsFgQKEX4E+ASUECIRJgTZfiEqBDkQEhEkMgnYgBYpamSCVTpQsm?= =?us-ascii?q?QM2gXIyGiOCfIIEUBwZgU54imoBAQE?= X-IPAS-Result: =?us-ascii?q?A0A/BwC8E2ZafywYGNZeHQIdB4MDKoFdJ451jXGbVw+FNoR?= =?us-ascii?q?yQxQBAQEBAQEBAQEBEgEBCxZdgjgigncZATgBFYE7iGCBOgEDFQMBtxM6gwsFg?= =?us-ascii?q?QKEX4E+ASUECIRJgTZfiEqBDkQEhEkMgnYgBYpamSCVTpQsmQM2gXIyGiOCfII?= =?us-ascii?q?EUBwZgU54imoBAQE?= X-IronPort-AV: E=Sophos;i="5.46,397,1511827200"; d="scan'208";a="8387416" 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; 22 Jan 2018 16:45:01 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;f4e5dd7f-3739-48e4-8e02-105d314507b0 Authentication-Results: ucol19pa14.eemsg.mail.mil; dkim=permerror (key too small) header.i=@btinternet.com X-EEMSG-check-008: 564839865|UCOL19PA14_EEMSG_MP12.csd.disa.mil X-EEMSG-SBRS: 3.5 X-EEMSG-ORIG-IP: 65.20.0.218 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DJAAB4EmZah9oAFEFeHQEBBQELAYMVggcnjnWpSA+FNoU1FAEBAQEBAQEBARMBAQEIDQkIKC+FURkBOAEVgTuIYIE6AQMVBLcROoMLBYEChF+BPiYECIRJgTaJKYEORASESQyCdiAFilqZIJVOlCyZAzaBcjIaI4J8ggQBQA8QDIFneIpqAQEB X-IPAS-Result: A0DJAAB4EmZah9oAFEFeHQEBBQELAYMVggcnjnWpSA+FNoU1FAEBAQEBAQEBARMBAQEIDQkIKC+FURkBOAEVgTuIYIE6AQMVBLcROoMLBYEChF+BPiYECIRJgTaJKYEORASESQyCdiAFilqZIJVOlCyZAzaBcjIaI4J8ggQBQA8QDIFneIpqAQEB Received: from rgout0405.bt.lon5.cpcloud.co.uk (HELO rgout04.bt.lon5.cpcloud.co.uk) ([65.20.0.218]) by ucol19pa14.eemsg.mail.mil with ESMTP; 22 Jan 2018 16:38:49 +0000 X-OWM-Source-IP: 86.134.52.120 (GB) X-OWM-Env-Sender: richard_c_haines@btinternet.com X-Junkmail-Premium-Raw: score=7/50, refid=2.7.2:2018.1.22.162117: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.52.120) by rgout04.bt.lon5.cpcloud.co.uk (9.0.019.21-1) (authenticated as richard_c_haines@btinternet.com) id 5A5E1AA7008938FE; Mon, 22 Jan 2018 16:38:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btinternet.com; s=btcpcloud; t=1516639133; bh=O9th6McVC+w/Hwk5DlVF/kMT/ZiZsWiYnX/6zPr70Q4=; h=From:To:Cc:Subject:Date:Message-Id:X-Mailer; b=fWFMvLVbOmU1vHPnWUPT8zuc5eviG9NccW6JJUp6YSe6DNSOT2UlMXODdT6S/Yqq2eUs6ODyDqfQhmypqj1zyWYBAotFZQjUqxh99q/lRhdJRdP95cxGOZl7AsbTxpGI79WkDOj/dumPYZSYz3ou8lCOHtJwSl6ytS3OdZcHEOg= X-EEMSG-check-009: 444-444 From: Richard Haines To: selinux@tycho.nsa.gov Date: Mon, 22 Jan 2018 16:38:36 +0000 Message-Id: <20180122163836.16567-1-richard_c_haines@btinternet.com> X-Mailer: git-send-email 2.14.3 Subject: [PATCH V2] 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. libsemanage/src/direct_api.c | 54 ++++++++++++++++++++++++++++++-------------- libsemanage/src/handle.c | 2 ++ libsemanage/src/handle.h | 1 + 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/libsemanage/src/direct_api.c b/libsemanage/src/direct_api.c index a455612f..3d1cf1fe 100644 --- a/libsemanage/src/direct_api.c +++ b/libsemanage/src/direct_api.c @@ -323,26 +323,44 @@ 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) { semanage_release_trans_lock(sh); + retval = semanage_remove_tmps(sh); } /* Release object databases: local modifications */ @@ -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) @@ -1639,13 +1657,15 @@ cleanup: 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; + 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..65b15600 100644 --- a/libsemanage/src/handle.h +++ b/libsemanage/src/handle.h @@ -62,6 +62,7 @@ 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() */ 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 */