From patchwork Fri Mar 16 17:55:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tri Vo X-Patchwork-Id: 10289743 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 2215A60386 for ; Fri, 16 Mar 2018 17:56:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1321F28FAF for ; Fri, 16 Mar 2018 17:56:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 07B7D29033; Fri, 16 Mar 2018 17:56:12 +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 ucol19pa09.eemsg.mail.mil (ucol19pa09.eemsg.mail.mil [214.24.24.82]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 26A6528FAF for ; Fri, 16 Mar 2018 17:56:10 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.48,316,1517875200"; d="scan'208";a="655218215" Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.3]) by ucol19pa09.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 16 Mar 2018 17:56:09 +0000 X-IronPort-AV: E=Sophos;i="5.48,316,1517875200"; d="scan'208";a="10702886" IronPort-PHdr: =?us-ascii?q?9a23=3AyaxZLh+75UNBsv9uRHKM819IXTAuvvDOBiVQ1KB6?= =?us-ascii?q?1e8SIJqq85mqBkHD//Il1AaPAd2Araocw8Pt8InYEVQa5piAtH1QOLdtbDQizf?= =?us-ascii?q?ssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1?= =?us-ascii?q?JuPoEYLOksi7ze+/94HdbglSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeu?= =?us-ascii?q?BWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbO?= =?us-ascii?q?SxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsL4V7A0XSmp4bltRhHmlS?= =?us-ascii?q?wLMyc1/HzLhsB1iq9QvRCvqAFlw4PMYI+bKvRwcKDac90HXWpMXNtdWiJfDYOn?= =?us-ascii?q?dIYDE/YNMPxEo4Tnu1cCsR2zDhSsCuP1zT9Ig2f707Mg0+QgDArJ0wsgFM8JvX?= =?us-ascii?q?TIttX1M6ESUe+uwabSyzXMculW2TD86IfVaBwuvfaMXbdpfMfX1EIhFBvFg02N?= =?us-ascii?q?pYHqMD6ZzOQAv3WB4+Z+Wu+jlXQrpxxprjSxx8oglJXFi4cJxl3B6Cl13Jo5Kc?= =?us-ascii?q?G9RUJmYNOoDIZcuiSGOIZ5TM4iTWRltSUmxbEbopG2eSYKxZU5yB7RbvGKfZWH?= =?us-ascii?q?7Q79W+uXPDx2nmhqeKiliBa36UWgz+r8WdSq31tStSpFl8XMtmgK1xzO9siLUv?= =?us-ascii?q?t98Vml2TaIzw3T9vtLIVo1larGMJ4t2KIwl5oPvkTDGS/6gkP2g7ONdko44OSo?= =?us-ascii?q?7uXnYrH+qp+dMY97lB3+P7wzlsGwDuk0KAgDU3WB9eii27Dv41f1TKhSgv0ziK?= =?us-ascii?q?bZsZTaJcoBpq6+Bg9Yyp0j5Ai7Dzen1tQYgHYGIEtedxKAkojpPU3BL+7jDfqk?= =?us-ascii?q?n1StkCtkx/DBPrH7BJXNNWLMnK3ufbZ69U5Q0BAzwsxH55JIFrEBJ+r+Wk32tN?= =?us-ascii?q?zeFBA5Lwy0zPzhCNhm1IMeXmSPAqqDP6PJrV+H+PgvI/KWaI8Sojb9JOAv5+Ty?= =?us-ascii?q?gn8hhV8dYa6p0IMVaHC6BPtpP0aZYWHrgtcHEGcKoBEzTOLuiF2fXj9cfGuyX6?= =?us-ascii?q?Qg5jEmEo6mCp3DRo+1irybwCi7BoFWZnxBCl2UH3bodoGEW/ISZyKIOcJhnCIL?= =?us-ascii?q?WqWmS487zx6urBX6y71lLuXK5iIYqYjv1N9v5+3cjRsy7yB7D9yB02GRSGF5hn?= =?us-ascii?q?4HSCMz3KB4p0x91kqP3LNmg/NGD9xT5vJIUgA8NZLGyex1FczyUBrbftiVUFam?= =?us-ascii?q?XsmmATYpQ90s398BeVx9Fs6+gRDE2iqlH6Ual6eXBJAu9KLTwWTxLd5ny3nazK?= =?us-ascii?q?khk0UmQsxXOGymh69/8A7TCpXMk0WdjqqqdKIc0DTL9GiZ12qOv0BYUBBuXqnf?= =?us-ascii?q?W3AQeFfWp8zj5kzeV7+uFagnMgxZxMGcMqtFcMfpjVRdRPr4INTReXixm2arBR?= =?us-ascii?q?aQwrODdpbldHsH0CXaEkgEnBgZ/WyaOggmGiehv2XeASRgFVL1eUzs9/VxqHKg?= =?us-ascii?q?TkIvygGKd0xh26Ou+h8bnvyQUfQT3qgLuC05sTV7AE69387KC9qHvwdhf79TYd?= =?us-ascii?q?A64Fdazm/ZtBZyPp+nL6B/nFIedB53v0z23RVtFopAidQqrG8tzAdqM62XzUlB?= =?us-ascii?q?dzKG0pDqIbDYMHX9/BW1Z67RwFHe386c+r0T5/Qgt1XjoAapG1I483p6ztZYyH?= =?us-ascii?q?Sc5pDFDQYIV5L+TFo3/QBgp77Geik9+5/U1Xp0PKmvvD/CwdUpBPA5yhu7ZNdf?= =?us-ascii?q?NqSEFQH3E8IAAciiMuoqlEa1bhgcJuBd6LY0P9+6d/uBwKOqMvxvnDa6jWtZ+o?= =?us-ascii?q?B9yVmB9zRiRe7SxJkF3vSY0hGAVzfmg1erqtr3lpxcZTEOAmq/zjDpBIhQZq12?= =?us-ascii?q?eYYEF3yuLtatydpgnZ7tXGRU9Fm5B1MJwMWpYwadb0Th3Q1M0kQauWKnmSqkwD?= =?us-ascii?q?xolDEptLCT0zDOw+TlchoHNXVGRG1jjVfqO4e0ldcaUFKvbwgzmxuv/Vz6yLRD?= =?us-ascii?q?pKRjM2nTRl9Ffyz3L2F5Tqu8r6GCbNBL6JMptyVXTeu9bEuBSr7lohsa1SLjEH?= =?us-ascii?q?dFxDwhcTGlpIn5lQRgiG2BNHZzsGbZecZoyBfF49zcQfpR0SQcRCZkjjnWCEOx?= =?us-ascii?q?P8K0/dqIjJfPqOe+V3iuVpdLaynk0ZuAtDen5W1tGRC/nO68mtv8EQUh0i/0yd?= =?us-ascii?q?9qVT7OrBnifonnzaO6MfhofkNwHl/z99J6Gp1ikos3nJwQwWIVhoiR/XUZiWf8?= =?us-ascii?q?K9Nb2b7gY3oXXjML3sXV7xb/2E14NH6J3IX5VmiHwsR9eda6bGQW2jgy789UEq?= =?us-ascii?q?uU6qJLnTdtqFqisQ3ReeR9nisayfY29n4ahfwGtREzziWbH78SHVNUPSrymBSU?= =?us-ascii?q?99q+trlYZH6zcbis00pzhcihA6ufogFYQ3v2ZpYiHTNw78lmPlLDynvz5pvjeN?= =?us-ascii?q?nKYtIZrgeUnAvYj+hJNJIxkeIHhSR9NmL7oX0lzOs7gAdg3Z6koYeHLH9t87ih?= =?us-ascii?q?Ah5CMT31Zd0c9S3xjapEmcaWxY+vFI17GjoXRJvoUe6oEDUKuPTiLQmOFDk8pW?= =?us-ascii?q?mHGbrDBwCQ8lxrr3TRHJC3LHGYOGMWzc18SxWHIkxQnhwUVi0gnpElDgCq2NDh?= =?us-ascii?q?cEBh6zAf/F73tAZDyvlyOBn5TmffoxyoZywuR5eDKRpa9AZC513aMcaG9OJ8Az?= =?us-ascii?q?lY/oG9rAyKMmGbYR5IAnsRWkycHF3jMLiu5cPb8+iECOq+Lv3Obq+IqeNCVveH?= =?us-ascii?q?35av3pFh/zaWOcWFJmNiAOEj2kpfQXB5HNzUmy0RRCMMiS3Nac+bpAu7+iBsr8?= =?us-ascii?q?Cw7urkVxz16YuIEbtSPs1l+wqqjqebK+6QmCF5JC5D2ZwXwnPIzLkf3EUOiyF1?= =?us-ascii?q?bTWtCqoPujLXQKLLhKBXCx8bayVuNMpH9K8zwglMOdTGitPuzLJ5gOQ6C0teVV?= =?us-ascii?q?zmnMGlf8sKI3uyNFnfHkaEKKyGJSHXw8Hwea6zUrxQjOpTtx22ojuUDlHsMS+C?= =?us-ascii?q?lzbzURCjK+ZMjDuUPBZGooGybg5tCXT/TNLhchC0KtB3gicowbIqnX7KMnYcPi?= =?us-ascii?q?Z6c0NItLKQ7CdYje54G21O9HZlKvOEmymB5enCNpkWqedrAjhzl+9C/HQ6zL5V?= =?us-ascii?q?4DteRPxymSrdsNhurEq8kumI1DVnUwFDpSpMhIKOoUptI77Z9oVaVXbC4h0N8X?= =?us-ascii?q?2aCw4WqNt9Ft3vp6dQx8DNlKLzKDZC69XU/c8dB8jINs2KK38hMRv1GD7OEgQJ?= =?us-ascii?q?VzmrNXvQh0ZFivGd6mWVroQmqpjrgJcOSb9aVFgrGf4BD0RlG9ICIJlpUTM4jb?= =?us-ascii?q?6bjMkI5X+goxXLQsVVoIzHXOqIAfrzMDaZkaVEZxwQzLP+M4scLIn71ldhall9?= =?us-ascii?q?h4TKB1DfXdZWoi1ibw84ukNN/2ZiTmcrwULqdhut4GMPFf6zhhM2kBVxYf8z+z?= =?us-ascii?q?j2+Vc4OlrKqTArn0kwg9XqnDeRcDDpLKeqQ45XCzD4t04vPZPnWwx1dxG9nVR4?= =?us-ascii?q?NDfYQLJcl6ZvdWdtiA/apJRAB/pcTaxfbRAK2/6XffIo3U5bqiW9yk9N/fHFBo?= =?us-ascii?q?d6lAs2bZ6sqGpN1B95Y94rJKzfObFJw0NKiaKUpC+o0e4wwBQAKEkR7WOSYi8I?= =?us-ascii?q?uFAIN7U8ISqn4PBs4xSYmzRfYGgMS+YqovVy+0M5POSA1Tzv07hCK0C2LOGfIK?= =?us-ascii?q?WZu3Xamc6PWFMw2VsCl1NZ8rhuzccjb02UWlg0zLSPExQJNMzCKRxabsdJ6HfT?= =?us-ascii?q?eiOOvvnXzpJuI4WxDOboQvGStKwMmEKrAB4pH5gQ7sQGBpSszEDYLcLgLL4ZyR?= =?us-ascii?q?Us5B/mK0iEDPVJYh2Eiy0Lo8ehw59rxYNdPC0SAX1hMSWr4bbavhUlgP6CXNgq?= =?us-ascii?q?fHgVRo4EN3IwWM29nS5WpW9NAyK20u0DzgiO9jH8pjnKADn6cdVjeO+eZQlwB9?= =?us-ascii?q?Gu5TU/76+2hEbM/ZrAIWH3Ls5ttcLR6ewEvZaHEOlbTaN9skvGnIlYXXOqWXbV?= =?us-ascii?q?EdGpP5jwd5UsbdvsB3a1T1y/ijY1T8PvM9aoNaWHnB/nSp1VsIaB2jAvL8i9Fi?= =?us-ascii?q?sRGx1oveEM+Lp8ZREfY5o8eRPorQI+N62jLweY1dWuR32tJyNPQfdC1+u3e7tZ?= =?us-ascii?q?wjEwYe+9zXsvUos1z/Kr8UIXQpEFkA3ez+65Z4ZCSSjzBmBdewLXqCojjWdhLO?= =?us-ascii?q?EyzfwkzRPUq1kTKS6Le/JtaGxFudE8CleSIXR5Cmo4W1+cg5DM4hSp37wI+StS?= =?us-ascii?q?gcpU2/VfsHfipp/ffC6sWKuzpJTbqSYvcdgmo6x0MYziOMSGt4jTnj3BQ5bOrA?= =?us-ascii?q?KJSim6F+BVmtJIOiJXXOFImX05OcwBoYdB7FA+Vt09J7NRFKksp7aqaTV/AC8c?= =?us-ascii?q?1yAZUZ+P3DgFguehxrTajQ2ccJI8PxwYqJ9CmMcSUzZqYiMCo6+uT5/Zl3WZSm?= =?us-ascii?q?gNOgsT7h9B5AMBlo9xYuDq+5DETJlSxD5Ku/h0SDfEFoF091vnTWGbmVn4SPO9?= =?us-ascii?q?k+O32QJd0vfs3ccHWB5lCUlQ3OFWllM2J7FxLqkfpI/KsjuTekP9s2Ph0uymJE?= =?us-ascii?q?NeycfMbV33EJLFtXbgUi0b4XAUWYhPyHTEGJQOjwZ5bb0kqE9KII+4Zkb0/yYk?= =?us-ascii?q?yJhxH7mkScCrwE4orXYcSCewCdVBD/xpvUnKVzJ7e5CrsIvqO5FMTW9K4pGdrE?= =?us-ascii?q?1ZkEp1OS6j1ZVcM91N4iILXDVXozWdu8W9RdZe1sBoFJ8DPM1/u2vjF6xZIpSR?= =?us-ascii?q?pWM5uqD3wH/D5z88qEu6xCm0G6KgU+JW4nARGgQzKGSasUQgE+ws8mLO/V/XqV?= =?us-ascii?q?B04/1XBr6RgkVtuDx9BIxBBi5V1XC5KFR+VGJJs+tGJ6jJccFQXvc/aASzNBw5?= =?us-ascii?q?EP4pw1aG/VponXvjZSx9qBda8TjHXwYoTSkVnqvtmToGp8G9JzAVVpJIYi89by?= =?us-ascii?q?reLwKbnj5XswhBZ052XJAWH8hK96sd3YRK4srIUVysJj0dXBx+KgI41uJSlVZY?= =?us-ascii?q?sEWEYy/SEBaoeO3Ush1wYMeRttKmI+r//AdbkIPoquQ4+78ER328lg2nWcreoJ?= =?us-ascii?q?Pktt2WqkuOc7/1M/GmYXDfUjfDkAu9haogD5nW5SjcKhRbK5h9yXogf5fhFXTH?= =?us-ascii?q?PRNcJ6IUP0BbT7x1ac1aouBGYM9pYKQJ9rV3BhKAXRPvHJagrOddI1bWWDTeKz?= =?us-ascii?q?mB8u2jroLS97PdT/PgataLx3bdTKJ9Jo165iXjG7f2zY9e/VL72vV3+UN8R1jG?= =?us-ascii?q?KSeBo8n/KQ4Q+MmtbE3ivoYuHT/MBpd/jmbtzFlad8ULWy2q7IgYyJRB5Xb2Te?= =?us-ascii?q?J1yUnzsOtX97V+6Ik35b5pyd2uKqfJNfRaq1JnDQSIBgV37JUiHnJzR2dLYu8e?= =?us-ascii?q?MP3RZ7gWjdjyq+DrEKwa8BuV++1FZtvAI0HOgNK/BiudSRxDmwcBsiUaIxCZ1/?= =?us-ascii?q?OKlK54U8GlpfL22kg1+VixMgYGzKxx5YeD4qeHuPXYbx/PwrgfRqjrRsTzo683?= =?us-ascii?q?u0yO5P0rirgOenB0YwK9CuQdUNASxnv4x6Aw0S0sC9/DH67n+PNbU3I5hTfglp?= =?us-ascii?q?BmElUYBPwbAL2L/Z5EkWcggezZMd8Wfb5elWaTDxKkFaUCyXGz4SuNPGZlmg3O?= =?us-ascii?q?0w33QW6r7l/2rCp4TDDJz9j9kktaSKO3BUZUXyqmI0N4ti2APBbwvtrtpas19F?= =?us-ascii?q?02MnDjtN+VlWugOalYENfjK9GHOik7uk4Xg4MtSdC13oAbA9W9Ks8L8H5idvve?= =?us-ascii?q?93+rkyhZrqhchore+c+U9e/VHXmhk62as6+CxC1cynUjoV4/7c2vOe/U6N2XWf?= =?us-ascii?q?So0HwRQD1ltwvGRR61paTRr0oINkyTzEfLhIsKM8lB3XYiykHp+OgjQdw09AVE?= =?us-ascii?q?FYbMfugCqi73ODv1x1afft02WzKG0zRNAlL6DVl4GaY72GLqv8LFj3TQ9EMyRo?= =?us-ascii?q?l2aUPngQZ7D4IiKUIi8FIX2DYMERARaRCHC7GlHUvlIpEeVUcddRSH3KO3eqM2?= =?us-ascii?q?3U1v3Lyv5PXcbfFnB6YXMPZSkBKOlkBBGp0Kqa0eXK58e1hF+a7YuAfiDZTnX/?= =?us-ascii?q?/hlXY3Lv26XMRa8cEft3s/7QeyXB6g5olZ77cbkp+EbKhEbobQvMpk9Udo+SYP?= =?us-ascii?q?djBRgBh4lx62TeIcq/r/7dXArJWo7eKuVKIsR+oJ7Rg0G3pxgIfwgFw5ptHXze?= =?us-ascii?q?hcQJXPiYvj6ABNP2KKuIHC3hl5LuoOLZ6rfLl++HgcIigeJmgBPdyIZPkg7S5t?= =?us-ascii?q?Ny/T519ZAs8WY9MXItbNkxhOikL1QLFT6tbbGliABod8a88o9HH3xCko/5UzVO?= =?us-ascii?q?jg6Tm2JY3Q7lxWMPNDiT9jlNTcq+QPxvrSEicX62GDaxdp2iOC14WNC/Ho8OWO?= =?us-ascii?q?z9HUV1UGEjQqXIddIDqC5BGoR+u0lJXvSQOU6c7zjYkgdEKRWHy+hqAFvbtNEe?= =?us-ascii?q?JajCX0wCReHJjvh/2Jq9qs9HdXtlpfHYZy8x3KAqNfM45/ORTli8arR098BjDl?= =?us-ascii?q?dMHTbBout/Kcxv0Q7OVmK0v+eYgbLwoGy73k53pVQA9uRaX4v1mDW+IeesdmRO?= =?us-ascii?q?nCrn9L9YJqM7UPM0SFpJz2sjdIr0g7AAAtaL83oD1VaE3OnAlOVqbvv74AjAoc?= =?us-ascii?q?XsJjtU9KB22wJHo05yDbWqRNkKmRFPsV/y2PTqwPVkVlKT9+QxKp15VtZbSpme?= =?us-ascii?q?pLsmVYkSNhuPIqySBpRAOguS3woKIAwTcg+LC7tDUCvnxIVeeenD3LCVVEyvQF?= =?us-ascii?q?k6EcB2zk6VOifHkJdJHy76V/JcT86Ykh5Gwybg49cC0AQeStEDrwj6ePAoyTrN?= =?us-ascii?q?JcmgCCt9jUYb+0NygSOaw3yQj/SHhlzgjegBFo/XMTQjWn6N8rPp+9OMgixiqs?= =?us-ascii?q?F2jWb1MM4qROsMvqq1EEUPE2aVR6wGV408iHQCINSNbIG2YvgQgucX9Ef45b6R?= =?us-ascii?q?8GC6kohS6FvqdY8QEQYTfUCpqq95LRnMfJ3Hk9SMllxnjSpqKbnJ8q12dlm9xs?= =?us-ascii?q?5C6UpHsSb/DYU9NrAnXr2IZf0fb+Z/Sxve8ZU4ZmzbWhUOMYMsa942e2349qWk?= =?us-ascii?q?C9zLQEA1W5KPMDxqvcUyq9Tm2YXfqEfnOUnzY9KEHy/gWoLlwrZ8dWtU8yLPXN?= =?us-ascii?q?ioRalwL/TbN+Xj+QqkPDzGw/LeMacBo7uIOmewwMUe4QaPGQJewvwP0lFFsMdG?= =?us-ascii?q?TEHSpsBO+wtl6hho97O29v4U/ie+Ti7hjmMMeOGhkDCYPaq4R+9uC6RmKAP39g?= =?us-ascii?q?ywZ/PFd19+fZCVsxsu5cc5CMndnfndh71vQFd/h1Oy0nptETgp5j6ZWT0MqScx?= =?us-ascii?q?He1JXyJdbOrfWDHv3fyVgqemFdUroEbgP155k6MsQ/W7LNAbtTpQ4cCrQiQJw9?= =?us-ascii?q?K2fx87l5LAF2cg7WfrS0mMjqpvmQa5tSvXDW60w/LCbGtx0E0Py0QhRxb4q2iH?= =?us-ascii?q?XqPJAwWjVBosV2ChtoGYtAB8INogm8Dp6Khq67kd6x+kJ9u+8Mq6bwDO7F1Mjq?= =?us-ascii?q?l7l2CoNX4U2NISb5GLhggkMjiP+7xPjHzMrfE8TnLO8eVaBFRSaRdqXBGIqXIz?= =?us-ascii?q?SCIMX9dwhN9LvKg+ExaQmYeC2sB/nOjyajLvgxpBxjxw=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2AbCQB/BKxa/wHyM5BeHAEBAQQBAQoBAYJ8JyoDgVgojXd?= =?us-ascii?q?yjQZFAQEBBQGBMIEbk3uCCxEYiC8hNBgBAgEBAQEBAQIBaiiCOCSCUQIkGQEBN?= =?us-ascii?q?wECAwkCSAgDATABBQE1BYM8gUoNAQKkBECLJYJaOoMBAQEFgWaDcIICCBKFH4E?= =?us-ascii?q?jcYEMghyOD4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCR44gVJwFYJ9giQPH?= =?us-ascii?q?I4+VI84AQEB?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 16 Mar 2018 17:56:08 +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 w2GHtnli022999; Fri, 16 Mar 2018 13:55: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 w2GHtgGU003258 for ; Fri, 16 Mar 2018 13:55:42 -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 w2GHtkLb022997 for ; Fri, 16 Mar 2018 13:55:46 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1C6AAA6BKxaly0bGNZeHAEBAQQBAQoBA?= =?us-ascii?q?YJ8JyqBWyibb0gGgkuTe4ISCoUQgzchNhYBAgEBAQEBAQITAQEBAQEGGAaGKhk?= =?us-ascii?q?BATcBgRQBBQE1g0GBSg0BAqQEQIslglo6gwEBAQWFVoICCBKFH4EjcYEMghyOD?= =?us-ascii?q?4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCSQBggNwFYJ9giQPEAyOPlSPOAE?= =?us-ascii?q?BAQ?= X-IPAS-Result: =?us-ascii?q?A1C6AAA6BKxaly0bGNZeHAEBAQQBAQoBAYJ8JyqBWyibb0g?= =?us-ascii?q?GgkuTe4ISCoUQgzchNhYBAgEBAQEBAQITAQEBAQEGGAaGKhkBATcBgRQBBQE1g?= =?us-ascii?q?0GBSg0BAqQEQIslglo6gwEBAQWFVoICCBKFH4EjcYEMghyOD4c+hG9wiw8Jjx+?= =?us-ascii?q?IGIUjkAkCBAIEBQIFDyGBCSQBggNwFYJ9giQPEAyOPlSPOAEBAQ?= X-IronPort-AV: E=Sophos;i="5.48,316,1517893200"; d="scan'208";a="227664" Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.35]) by goalie.tycho.ncsc.mil with ESMTP; 16 Mar 2018 13:55:43 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3Ak6B/LBUnMR3NRSyPi2t4EJ6FXnjV8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYYxaPt8tkgFKBZ4jH8fUM07OQ7/i7HzRYqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRo?= =?us-ascii?q?LerpBIHSk9631+ev8JHPfglEnjWwba98IRmssQndqtQdjJd/JKo21hbHuGZDdf?= =?us-ascii?q?5MxWNvK1KTnhL86dm18ZV+7SleuO8v+tBZX6nicKs2UbJXDDI9M2Ao/8LrrgXM?= =?us-ascii?q?TRGO5nQHTGoblAdDDhXf4xH7WpfxtTb6tvZ41SKHM8D6Uaw4VDK/5KptVRTmij?= =?us-ascii?q?oINyQh/W/KisJ+kqxVrhGmqRFk34LYfJuYOOZkc6/BYd8XQ3dKUMZLVyxGB4Ox?= =?us-ascii?q?d5UBD/AAPe1FoIb9oEYFoByiBQm2A+PvzDBIi2Ts0q08zushCwbG3A09EN4UrH?= =?us-ascii?q?vUq9D1Ob4UXOuoz6fI1S3OY+1L1Try8oTEbB8sreuSUb9ya8bcxkkiGxvbgliR?= =?us-ascii?q?t4DpIzaY2vgIvmSG8+ZsSf6jhms6pwxwvjSj28IhhZXGi48bxFDJ8CZ0z5ooKd?= =?us-ascii?q?KjTUN7b9+pH4VetyyfOYZ5X98tTH9utS0n0LMJo4S7czIPyJk/xx7QdfiHc4+Q?= =?us-ascii?q?7x3tTuifLyl1iXx7dbylmxu+7UmtxvfiWcaq1VZKtSVFnsPJtn8X1hzT7tKLSv?= =?us-ascii?q?58/kelwTqP1gbT5f9YIU0si6bXNpEszqQumpccq0jPAC37lF/5gaKWbkkk//Kn?= =?us-ascii?q?6+XjYrXovJ+cMIp0hxniMqQ0ncy/B+s4PxMUUGid5Ou8zrrj/UzkT7lQkvI2la?= =?us-ascii?q?zZvIjAJcsHvq65HxNV0oE75hakETim1NUYnX8aLFNKYx+Hk4joNE3OIPD/F/u/?= =?us-ascii?q?hU+sny1xy/DJOb3hHMaFEn+Wi7rlfLBg+2ZA2QEzypZZ/JsSBbYfc9zpXUqkiM?= =?us-ascii?q?bZRiE+e1io2eHhB/100I8EXmODRKSeNfWB4hez+uszLrzUN8cuszHnJq196g?= =?us-ascii?q?=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0C7AAB/BKxaly0bGNZeHAEBAQQBAQoBA?= =?us-ascii?q?YJ8JyqBWyibb0gGgkuTe4ISCoUQgzchNhYBAgEBAQEBAQIBEgEBAQEBBhgGV4I?= =?us-ascii?q?4IoJ5GQEBNwGBFAEFATWDQYFKDQECpARAiyWCWjqDAQEBBYVWggIIEoUfgSNxg?= =?us-ascii?q?QyCHI4Phz6Eb3CLDwmPH4gYhSOQCQIEAgQFAgUPIYEJJAGCA3AVgn2CJA8QDI4?= =?us-ascii?q?+VI84AQEB?= X-IPAS-Result: =?us-ascii?q?A0C7AAB/BKxaly0bGNZeHAEBAQQBAQoBAYJ8JyqBWyibb0g?= =?us-ascii?q?GgkuTe4ISCoUQgzchNhYBAgEBAQEBAQIBEgEBAQEBBhgGV4I4IoJ5GQEBNwGBF?= =?us-ascii?q?AEFATWDQYFKDQECpARAiyWCWjqDAQEBBYVWggIIEoUfgSNxgQyCHI4Phz6Eb3C?= =?us-ascii?q?LDwmPH4gYhSOQCQIEAgQFAgUPIYEJJAGCA3AVgn2CJA8QDI4+VI84AQEB?= X-IronPort-AV: E=Sophos;i="5.48,316,1517875200"; d="scan'208";a="10702859" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from updc3cpa06.eemsg.mail.mil ([214.24.27.45]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 16 Mar 2018 17:55:42 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;7259d29f-c806-4af1-8b98-6d133cedf243 Received: from localhost.localdomain (localhost [127.0.0.1]) by UPDCF3IC16.oob.disa.mil (Postfix) with SMTP id 402tRD3lDlz2VqB2 for ; Fri, 16 Mar 2018 17:55:36 +0000 (UTC) Received: from UPDC3CPA03.eemsg.mil (unknown [192.168.18.10]) by UPDCF3IC16.oob.disa.mil (Postfix) with ESMTP id 402tRD1zkmz2Vpdd for ; Fri, 16 Mar 2018 17:55:36 +0000 (UTC) Authentication-Results: UPDC3CPA03.eemsg.mail.mil; dkim=pass (signature verified) header.i=@android.com X-EEMSG-check-008: 464269949|UPDC3CPA03_EEMSG_MP19.csd.disa.mil X-EEMSG-SBRS: 2.2 X-EEMSG-ORIG-IP: 74.125.83.66 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0A2AQDJAqxaekJTfUpeGwEBAQEDAQEBCQEBAYJ8J4Itm21FAQEBBoJLk3uCEgoThH2DNyE1FwECAQEBAQEBAhMBAQkLDAcoL4VTGQEBNwGBFAEFATWDQYFKDQGjfUCLJYJaOoMBAQEFhVWCAggJAQiFH4EjcYEMghyOD4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCSABggdwFYJ9giQPHI4+VI84AQEB X-IPAS-Result: A0A2AQDJAqxaekJTfUpeGwEBAQEDAQEBCQEBAYJ8J4Itm21FAQEBBoJLk3uCEgoThH2DNyE1FwECAQEBAQEBAhMBAQkLDAcoL4VTGQEBNwGBFAEFATWDQYFKDQGjfUCLJYJaOoMBAQEFhVWCAggJAQiFH4EjcYEMghyOD4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCSABggdwFYJ9giQPHI4+VI84AQEB Received: from mail-pg0-f66.google.com ([74.125.83.66]) by UPDC3CPA03.eemsg.mail.mil with ESMTP; 16 Mar 2018 17:55:35 +0000 Received: by mail-pg0-f66.google.com with SMTP id w17so4353317pgq.8 for ; Fri, 16 Mar 2018 10:55:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=android.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=ptsg6IVc6L2Y0CFRuKbd3FdQYOJM4Uw6FoQCHvvpdzk=; b=N3UYrZv4lflmRbq5Ckuc0AqncgwqTBDs0FPOOnP/PZuY8Nm0WtesuCVkJ8bqzYakne FJ6bUJkamaSKQxKoD7oZ1RtFT7/eNUsVR1B+skh9LXf2crQMiJ/QbN8sCiEfy+PIsmpA hFqRCB74z64Uu2lnLNBmYv4a37i/Jqnbjb0ib7dOy+rcvwlPX3mO8wldfR6rQeA+kEyM lfgB3WEF+P+vtm+c3rqDndg20QZccH70jugsIUnmgVTArLtUpWLE/xoaH/FzJXCwUFeU xBGGBYBaxBzI2VouQmsKgOWnmrt5OODjMDOhQh0le1ZZDRlDbous1vadIWLTIpzqrtBP pXkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ptsg6IVc6L2Y0CFRuKbd3FdQYOJM4Uw6FoQCHvvpdzk=; b=ebSQSVv/zqfFTy6Jo3dZ31IxSUpJGPSfonqfq0AnOVUCUqlZluRo/3IvWPQpdeO9rH BRHDI5rOMizY6kgeP7keGiiCqn0QxSenEvOiYC2/Wm2HucWhRXLXTyw7hAJp6RWJNdSw NhMu5Rd6EwlTM/VNLef6P/LlneGNbG9X3Mt1XuXQRBQCZHVm4giKC3xD/MSTOG7HhJ2W cCQlsEku+Dpq7Ug8xUuk2KMOQNfvPuhEuq5datsBy+F2aArCt1yxvf8eBB/+l+d3GFwW cRFoLrnYNSamGSGjPJPY2ek+m1USiQdey51auyHoOuq17Um3Ne787Rr8A67me/VIEaWH Hn1w== X-Gm-Message-State: AElRT7Gybk/LMA5wz8Mwka93Z87Oqm4jz7z0dqnOUtD02nLnD+FxUsDK zAc+hfFk+pULLgwafa0dCknq3ZPMK/I= X-Google-Smtp-Source: AG47ELv4LaLMdThhHwyNM+co4xt/TNTw0IWGvZY2gn9pb4a+qKA2Szfkr2ggQo8UAmsUhxVTwXtIug== X-Received: by 10.101.82.10 with SMTP id o10mr2132101pgp.271.1521222933650; Fri, 16 Mar 2018 10:55:33 -0700 (PDT) Received: from trong0.mtv.corp.google.com ([2620:0:1000:1601:c43f:8c1b:f6ef:3dce]) by smtp.gmail.com with ESMTPSA id u9sm1155241pgb.27.2018.03.16.10.55.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Mar 2018 10:55:32 -0700 (PDT) X-EEMSG-check-009: 444-444 From: Tri Vo To: selinux@tycho.nsa.gov Date: Fri, 16 Mar 2018 10:55:09 -0700 Message-Id: <20180316175509.76068-1-trong@android.com> X-Mailer: git-send-email 2.16.2.804.g6dcf76e118-goog Subject: [PATCH v3] Resolve conflicts in expandattribute. 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: jwcart2@tycho.nsa.gov, dcashman@google.com Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP This commit resolves conflicts in values of expandattribute statements in policy language and expandtypeattribute in CIL. For example, these statements resolve to false in policy language: expandattribute hal_audio true; expandattribute hal_audio false; Similarly, in CIL these also resolve to false. (expandtypeattribute (hal_audio) true) (expandtypeattribute (hal_audio) false) Motivation When Android combines multiple .cil files from system.img and vendor.img it's possible to have conflicting expandattribute statements. This change deals with this scenario by resolving the value of the corresponding expandtypeattribute to false. The rationale behind this override is that true is used for reduce run-time lookups, while false is used for tests which must pass. Signed-off-by: Tri Vo Acked-by: James Carter --- checkpolicy/policy_define.c | 10 ++++++---- libsepol/cil/src/cil_resolve_ast.c | 21 ++++++--------------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/checkpolicy/policy_define.c b/checkpolicy/policy_define.c index 2c5db55d..40cc62b0 100644 --- a/checkpolicy/policy_define.c +++ b/checkpolicy/policy_define.c @@ -1182,10 +1182,6 @@ int expand_attrib(void) goto exit; } - if (attr->flags & TYPE_FLAGS_EXPAND_ATTR) { - yyerror2("%s already has the expandattribute option specified", id); - goto exit; - } if (ebitmap_set_bit(&attrs, attr->s.value - 1, TRUE)) { yyerror("Out of memory!"); goto exit; @@ -1213,6 +1209,12 @@ int expand_attrib(void) attr = hashtab_search(policydbp->p_types.table, policydbp->sym_val_to_name[SYM_TYPES][i]); attr->flags |= flags; + if ((attr->flags & TYPE_FLAGS_EXPAND_ATTR_TRUE) && + (attr->flags & TYPE_FLAGS_EXPAND_ATTR_FALSE)) { + yywarn("Expandattribute option was set to both true and false. " + "Resolving to false."); + attr->flags &= ~TYPE_FLAGS_EXPAND_ATTR_TRUE; + } } rc = 0; diff --git a/libsepol/cil/src/cil_resolve_ast.c b/libsepol/cil/src/cil_resolve_ast.c index d1a5ed87..02259241 100644 --- a/libsepol/cil/src/cil_resolve_ast.c +++ b/libsepol/cil/src/cil_resolve_ast.c @@ -269,9 +269,8 @@ exit: return rc; } -int cil_type_used(struct cil_symtab_datum *datum, int used) +void cil_type_used(struct cil_symtab_datum *datum, int used) { - int rc = SEPOL_ERR; struct cil_typeattribute *attr = NULL; if (FLAVOR(datum) == CIL_TYPEATTRIBUTE) { @@ -279,16 +278,12 @@ int cil_type_used(struct cil_symtab_datum *datum, int used) attr->used |= used; if ((attr->used & CIL_ATTR_EXPAND_TRUE) && (attr->used & CIL_ATTR_EXPAND_FALSE)) { - cil_log(CIL_ERR, "Conflicting use of expandtypeattribute. " - "Expandtypeattribute may be set to true or false " - "but not both. \n"); - goto exit; + cil_log(CIL_WARN, "Conflicting use of expandtypeattribute. " + "Expandtypeattribute was set to both true or false for %s. " + "Resolving to false. \n", attr->datum.name); + attr->used &= ~CIL_ATTR_EXPAND_TRUE; } } - - return SEPOL_OK; -exit: - return rc; } int cil_resolve_permissionx(struct cil_tree_node *current, struct cil_permissionx *permx, void *extra_args) @@ -488,11 +483,7 @@ int cil_resolve_expandtypeattribute(struct cil_tree_node *current, void *extra_a goto exit; } used = expandattr->expand ? CIL_ATTR_EXPAND_TRUE : CIL_ATTR_EXPAND_FALSE; - rc = cil_type_used(attr_datum, used); - if (rc != SEPOL_OK) { - goto exit; - } - + cil_type_used(attr_datum, used); cil_list_append(expandattr->attr_datums, CIL_TYPE, attr_datum); }