From patchwork Fri Mar 16 18:02:52 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tri Vo X-Patchwork-Id: 10289767 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 366E1602C2 for ; Fri, 16 Mar 2018 18:04:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 27E0B2901E for ; Fri, 16 Mar 2018 18:04:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1C1672903E; Fri, 16 Mar 2018 18:04:39 +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 uhil19pa09.eemsg.mail.mil (uhil19pa09.eemsg.mail.mil [214.24.21.82]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 895BA2901E for ; Fri, 16 Mar 2018 18:04:37 +0000 (UTC) Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by uhil19pa09.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 16 Mar 2018 18:04:36 +0000 X-IronPort-AV: E=Sophos;i="5.48,316,1517875200"; d="scan'208";a="9814890" IronPort-PHdr: =?us-ascii?q?9a23=3AfdMrrBGyYIacDvrLKIiRCJ1GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ7+ocq8bnLW6fgltlLVR4KTs6sC17KK9fi/EjVYsN6oizMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCybL9uIxi6txndu8sZjYd/Nqo8zgbCr2dVde?= =?us-ascii?q?hR2W5mP0+YkQzm5se38p5j8iBQtOwk+sVdT6j0fLk2QKJBAjg+PG87+MPktR/Y?= =?us-ascii?q?TQuS/XQcSXkZkgBJAwfe8h73WIr6vzbguep83CmaOtD2TawxVD+/4apnVAPkhS?= =?us-ascii?q?EaPDE36mHXjtF7grxdrhyvuhdzx5fYbJyJOPZ7eK7WYNEUSndbXstJVyJPHI2y?= =?us-ascii?q?YYgIAeQcJeZVrZTxqlUQohulHgSgGP/jxyVUinLswaE2z+IsGhzG0gw6GNIOtW?= =?us-ascii?q?zZosvvNKcTTOu6w67IxijEYvNKwzf9747Ich86rP6WW7J/bNDRyU4uFwzYlFmf?= =?us-ascii?q?tYvlPzaM2+kLrmOV7PJgWPqyh2MopAx9uDiiyto2hoXXiY8Z1ErI+ThhzIorJN?= =?us-ascii?q?C0VlJ3bNu4HJZVqi2WK5d6Tt8nTm11uSs21qAKtJuncyUFxpknyRvSZv+bfISV?= =?us-ascii?q?+R3uUeiRLDZmi3Jrfb+yiQu9/lS+xeD6S8K6ykxFrjBfndnJrn0N0hvT5dWZRf?= =?us-ascii?q?Zl5Ueh3CqP1xjU6uFZPUA4jarbJIAlwr43jpcTrV7MHjX3mEXrl6+abFkk++i0?= =?us-ascii?q?5OTnZbXqvJmcOJNvig7iKKgun82/AeAgPggPWWiU5/i82aX+8UD2T7hGlP07nr?= =?us-ascii?q?TDvJzEKskXuLS1DxJN3oYm8Rm/DjOm0NoCnXkAKVJIYAmHgJbtO1HPJvD4EPi+?= =?us-ascii?q?j023nzds2vDGOKHuDYvWLnXYjLfgfapy605byAYpy9Bf/IhbBqsOIPL0RE/9rM?= =?us-ascii?q?bYAQMhMwyo3+bnD81w1oEZWWKJGKCZLKPSvkWO5u80IemMY4kVuDPnJPg++/7h?= =?us-ascii?q?k2U5mUQHcamux5sXZ2iyHu56LEWBfXrsntABHH8Ivgo8VuPllF6CUSVUZ3a0Xq?= =?us-ascii?q?I8+Co2CIyiDYfeSYGim6GB3CGnHp1LfGxGDUqMEXjwfYWeR/gMcD6SItNmkjEc?= =?us-ascii?q?W7mhSosh1RSwuw/g0LdnIPTb9TAftZL5ztd1//fTlRYw9TNqE8udz3uBT2Zunm?= =?us-ascii?q?MHXzU2xrxwoVRhylef1qh1m+FXGsBW5/NOVAc6KYPQwvdkC9/sQALBf9aISFGg?= =?us-ascii?q?Qtm8BzE+UM4xyccUY0lhA9WikgzD3y2yDrAIi7yEHoY0/7nA0Hj2IsZy12zJ1L?= =?us-ascii?q?I9j1U8RMtAK3GmjLZl9wfPH47Jj1mZl6GyeKsCxC7C7n2DzWuVvExDSA5/S7/F?= =?us-ascii?q?XXEEZkvOqdT2/F/NQKG0BbQgKAtBxtaIKrFWZd3xkVVGWPDjNczeYmOwnGewAw?= =?us-ascii?q?2FxraIbIbzemUd2j/RCE4enAAJ/naGNBY+CTm7r2LYEjNuCUrlY1nw/ulmtHO7?= =?us-ascii?q?Ukg0whmEb017zbW1/AIahf2HS/4I27IEoCYhpyxvHFezxNLaEd2ApxBufK9Ee9?= =?us-ascii?q?My/E9H1X7Ftwx6JpGgLLpthl0ZcwRqpE7u1A94CoZHkcg3tn8qyxByKa2A2lNb?= =?us-ascii?q?azyYxYzwOqHQKmTq5h+gdrTW2lDA39aM4aoA8ug3q1D5sAGuDEoi/G1t08NJ3H?= =?us-ascii?q?uE+pXKEA0SXIrrUkkq6hd3vL7aYiwy5o/O031jL7W0uCfY2901HOsl1gqgf9BH?= =?us-ascii?q?PaOfGg/yCcoaB9OyKOExgFipaBUEPe5X9KEuOcOqbf2G17C3POx4hjKpkXxH4J?= =?us-ascii?q?xh0kKL7yd9RPTH35IZw/6GxAuHTCzxjEm/vcDtgo9EeDQSEnC4ySj+C45bfrdy?= =?us-ascii?q?cpoTCWeyP823wc1zh5jsW35c8F6sGUgG1dSzdhWMdVz92hdc1UMNoXyogSG41S?= =?us-ascii?q?B7kyk1rqqD2yzD2/ridBsbNW5XQ2lil03gLpS0j9AdWkioYBMklB+k5Ub83adb?= =?us-ascii?q?vqN/I3PUQUdScCj8N3tiXbeotrqef85P74slsSFWUOSnfVCWU6X9rAUe0yPiGW?= =?us-ascii?q?te2T86eiqxupXhnhx6jmOdI2porHbDf8F/2wvf7sTGRfFNxjoGWDV4iT7PC1im?= =?us-ascii?q?ONmp+dGUmInZsu+iUGKgWIZecTL2zYycryu3/2pqAQewn/qrgN3oDRA60TPn19?= =?us-ascii?q?ltTSjIrwjzYo/w16mhMuJoYE9oBET668VkBoFyiIwwhIsf2XICnJWa4WIHkXvv?= =?us-ascii?q?MdVcwa/+dGACRSMPw9HL+AjqwktjLm6XyILjTXid39BhaMegYmMNwC499MdKCL?= =?us-ascii?q?qO7LNYgyR1rF24rRjeYfdjhDsdz+Uh6GICieETpAUt1jmdAqwVHURAIyzskQmH?= =?us-ascii?q?4sugrKVReWmvcaK81ExgktC9FLuCuB1TWG7lepc+Gi999t1/P0jR0H338YzrZN?= =?us-ascii?q?jQbc4TtxGNnRfPle5VJIg2lvoQiiptIXj9smE9y+4nkRxu2om3vIadJGVr4KK5?= =?us-ascii?q?BRtYOyb7Z8wN5z7tirxekdyO34C1GZVhGCsEU4f0Tf6yFzISr/vnPR6UEDIgsn?= =?us-ascii?q?ebBabfHQiH5UdjtX3PF5SrOG+LJHkF19ptXgKQJEpBjwAIRzU1goQ2Fhi0y8D7?= =?us-ascii?q?dkd2+CwR7EbiqhRQ0uJoKwX/UmDHqQemcDc7VoWQLAFM4QFE+0fVNtee4/lpEC?= =?us-ascii?q?5E+52ttguNKnaUZw5QF2EGRlSEB0z/Prmp/dTA9fKYCfCmL/vWeriOp+1eV+2T?= =?us-ascii?q?xZKz3Itm/jCMOd+JPnZ+Dv00wE5DUWp+G8TDlDUFUzYXmD7Vb86HuBe8/TV6rt?= =?us-ascii?q?ih//vwRg3v44qPC6dVMdh0+hC5n7mMOPCKiCZ+MzZY2YsGxWXUx7gHwF4SlyZu?= =?us-ascii?q?eiG2HrsbsiLNSKPQmrRLDx4AcS9zL9VH4L4m0glWJ8HbjtL11rhljv86EFpKSV?= =?us-ascii?q?zgmtu0ZcwROW28OknIBFqQNLSBIz3H2cb3YbmzSbdIluVbqwWwuSqHE0/kJjmM?= =?us-ascii?q?jDjpVx+oMeFKlyyUIQJRt5q8chl3D2jvVtXmage0MNVvlz053aU0hm/WNW4bKT?= =?us-ascii?q?VzaUxNoaeO7SxGmfh/HHRB4WRjLemBgSmZ7u3YJY0RsfpkGCh0kPha4HsiwbtP?= =?us-ascii?q?8C5EXOB1mDfVrtN2v1GmleyPxiB9UBpJqzdEmoSLsl54OaXe6JZAWm3J8w4K7W?= =?us-ascii?q?WVFxsFvcBlCsH1t6BW1NfPiLr5KC1e/NLM4cscG8/UJdqFMHohMRvpADnUDA8E?= =?us-ascii?q?TT63K27SnEldkPCO9n2PsJc2sJ/smIABSrVDTlw6CusaClh5HNwFOJp3XTMlkb?= =?us-ascii?q?qFg8MT4Hq+qxfRRMtEsZDbSvKSAfLvKDOHgrVeYRsH36/4J5wJNoLnw0xidkV6?= =?us-ascii?q?nIPSFkrWQ99CuClhYxQ3oEVK63h+Unc820T+agOu4X8fD/i0kQAqigFme+Qi6C?= =?us-ascii?q?/s40srJlrNvCYwilc+mc77jj+Laj7+MKewUJpNBCr1rUg+L5T7QwhtbQ2og0Nl?= =?us-ascii?q?NC3IR7RPgLt8bWprkhPTuYNTGf5ASq1JeAIfxfaRZ/UuzFtTtCGnxU5c6OTfF5?= =?us-ascii?q?RijgwqfYSrr3Ja1AJpdMQ1KrDIJKpV0lhQgbqDsTKy2eAvwQ8ROl0N/XiIdy4S?= =?us-ascii?q?okwIMbcnJzG28eNw9AyCgTpDeHQMVvYwpPJl6F89Mfyazy38y75DNlyxN+uHIq?= =?us-ascii?q?OdvGjAj9CHQlUx10MPjERF8r520do5f0qTTUAvw6ObFw4VOsraNQFVc81S+WDI?= =?us-ascii?q?fSmQteXNwJR1P5iyF+3zUeCOs6MUjV6+EwYyA4QA9MIBEYew0EvAN8foMKYFyQ?= =?us-ascii?q?kx5ATsPFiFEPVJeBeMkDcbo8G+zIR60pRcJjAdG2pyKj+75rDJqQ82mPCDRss5?= =?us-ascii?q?Ym8GXosYMXI7QNe1mypYv3tcEja4yucZyQiE7z/7oCTfFiLxYMFiZPiOYxNgEd?= =?us-ascii?q?+2+Sgl/6iwl1HX7o3UJ3vmOtR6pt/P9eQaqo6cBPxKS7lwqF3TlJRGR3O0SW7P?= =?us-ascii?q?CsS6J4LwaoU2atz0EHm6WESliz0pV8fxIMqtLq+QjAHnWIZUsY2b3DQ9Os+4DT?= =?us-ascii?q?wRBgl/qPoC5K1mYw0PeZ07YQTntw4mLaywPB+Y0smyQ2aqMTZWVf9fzeSmaLxX?= =?us-ascii?q?yCosavS6xmM5QJ8n1ee67UkDSYoWgRHZwPase5NRUTPvGnBHfQXAuzY5nXB7Nu?= =?us-ascii?q?ku2uc/3A/IsV4EPjCRbuNpcmtEsMonCFOOO3V5EHQ4SEGYjYrC5A6s0LQS/ypS?= =?us-ascii?q?n9ZUze1FvmLxvoXaYD62Xqykt4nVuTI6bdc6u61xLZDjIsyeuZLQhDDQUJnQsg?= =?us-ascii?q?yAUC67DfVamcNdICNGT/ZWh24pI8sGuZBO6UApTMcxO6RPCLUwprCtcTdkCDQd?= =?us-ascii?q?zTUaV4yewDwCg+G827TBmxaeapsiNgALsJFFgtsATiF2eTkSpKm9WIXKj2WEUH?= =?us-ascii?q?QEIB8P7QRQ4wINjpV/fvr44IrOVpNMyCVbo/N1UivKCpln7EH3SmeIjljkUP+h?= =?us-ascii?q?ifCm3RpOzPLw1dkWQB9/CU5Bx+lIkksnNrR3JLcMvo7Qsj6FbkT6vHrzx+ugIV?= =?us-ascii?q?le08zUd1njA4rCumvwSCoc+WcbRYVX0nHQCYwSkxZlaKYsvFhMPIemekPl6jw4?= =?us-ascii?q?24hpGqK3Wdqtx1k7sXYMXz2qHMZZC+F6rFLXXyVoY5Cxp5X/IZpSRnJf9YaApF?= =?us-ascii?q?hHiEVtKzC2yZ5CJMFX+DIMWyJPoTqFttuoVMJDwdN2D4MLItpnuXf9H71LNYOM?= =?us-ascii?q?rHIoobzg1GXZ+ywiv1in3jmzHbG3T/5B9W0EBgopP3ieqlUoD+Y07mfd703Csl?= =?us-ascii?q?Fu8OdfHbWAkUJxoDNhEZ9UHTZJyWqpL1JtQ3laq+9aMrjac9RAQ/kuYh+iIwcx?= =?us-ascii?q?FfA60ECV/0x4gHn0bjduuQtd/iDSQxM7VTIJgrv3nz0RtN2nMycAS51UdTUhcz?= =?us-ascii?q?vFKwWDlCBNohlQdkFqVIoFAtte/7Eb2pVU8dTcRUmwLiEKQQJtOhg+0fVBiU5J?= =?us-ascii?q?qF+YdjzFDQq0afbPtQV6fd+KrM61Nvv24RtHh5j8sOA/6qUDXWGplhOrQdDCtY?= =?us-ascii?q?/zrNmKulGJdKfiPO22eWXBQyTUjRCsmbckCIHH/zTJMAVFNZZ11GEpYYXlCW7X?= =?us-ascii?q?JxRJPbwbJ0tcVaB+d9pGvvpWZ8h+eKYG4aVtHA6IRgvzGIyzq/lLNlTTSi7ELy?= =?us-ascii?q?WG6ey/pZjc7aLGROjle8yMw2rHQ6NrMZd78zb7Hazq3ZVZ+krs1fdn7ll6RkTe?= =?us-ascii?q?MyCdsNThIRsG5Mu4eUvksJ0pBzTWD4pun3f22kFPbcwXQzat8JgCzpNW9mrwQ/?= =?us-ascii?q?pi0kfvqO1S66Vk6Y4v7rBvzce5PqbSKfJfsUN9AxiUAAtq9o83D2hkW2BRePIR?= =?us-ascii?q?J+vNfaQEl8Dhtfr7F6sN6B2a4+ZZc8fIJ1ndmsmjDTGRURpEnAYdpj4dKguTze?= =?us-ascii?q?WFl7V1Scaiouj5wVkt7kO7LhMJw7Fh/4CE+rCHpOXPdRve0aAEWrT2RsP0trkj?= =?us-ascii?q?p1md5fk6m74VZmx0YwqnHfMGVsEBx2fv06YqzT4tE8zZBb7g/uBMV24hlDL6h5?= =?us-ascii?q?99B0kWGu8THbeT+YRehWI4luzCO90YbK9Nh2GPFQS+Hb8a036r7CmXL3d5jRHS?= =?us-ascii?q?yR3wRnmz7FDupy9iXSTM18vjklZSVrSvB0dSXi+pNFR9sDyRPAvnqsD3uaUz7E?= =?us-ascii?q?E5KGDkssyClHe5MrNNA8L/PMCcITUzpF8PjZ0wR8ag1poHFtemO9ce7m1+YeXC?= =?us-ascii?q?5G+xlC9BuahHjZLE4s6J4vXXAWWgj6qCprqWxTBY0XY5sks96tChKvHO/8eFQ+?= =?us-ascii?q?ms12sKUyh/vBbOUACvpbzGtVAUPlaL313RlIwNJNFZ0mEy1lv66+g7XNIz6AJe?= =?us-ascii?q?G57YZ/wYuTD8JDv0wFiYY9ItVSmSyiBXEUzxEVl5Hqg8xW3xsdnRlXjK510nWo?= =?us-ascii?q?lwdkLghRxtDIU0M0Et50YNwioFDwcNbQqXDLayBUTqNYEET1QMaQyb3Limfac6?= =?us-ascii?q?xUJzzam15ODNcex8B7EANvJcjg6SgldbGogZsbAFQL5mfV9S6rLXrBD4C4f7R/?= =?us-ascii?q?jmiWYwNfqtT8BV788ZsWci4gG4Rxan8pdM8bIbiJGOdq5ZbpnBp8R84Fl95T8P?= =?us-ascii?q?bCNBmh5/gA2lUeoEvuDs/sDbsIa06uapTKsiW+cX+AIoCGllk5Twh1QjodXW1+?= =?us-ascii?q?hCUI3VlZrw/xxNI3KQv4bayRZ8I/IUK423ZLZg62kHJy8GKnILOtqWbeU84yBz?= =?us-ascii?q?PzjI4lxCA9kDZdUGM8rRlwFUjVfpWLJI9sbBHF+XFZtzfdgy72Xr0DA17Yc8Uu?= =?us-ascii?q?H45T+5OZ/f9EpNM+pegitjktzCpe4VwefdCSUM7nmZbgJ6wiWcxJWXDPbw5+qM?= =?us-ascii?q?wsnOV1waBi42T5tdJD2a9AylQeq1lJPpXhmI5c/zhJI+aV+fR32wnKQDqaZMEu?= =?us-ascii?q?9Ahz7l3jhfCID6nfaVvMet6GdNsF1IDppz5wXfGKpDJpV7JQj4ls6zS0h9GCvw?= =?us-ascii?q?YsfUewEquOqL2+gM4uJ+N1DkaY8cOBIExKrw6WBJQQt2VL72olGZUPoTZNR4Rv?= =?us-ascii?q?PEoHRV5JluKqAVOliSuoDqoi1OqF8oHA8jcKUwoSBCdknSgA1VXL75uLEEigsb?= =?us-ascii?q?X992p0tMGWarNWIl4DrHU6VVg7WLBPwT7DqTUrQEU190PSNmXxO1xJJudqO1nf?= =?us-ascii?q?BGt2NLhT99oPk23DxlWhS8vTfgp6QT1jI84Lu4rikOuWRZTuWClCfFEVBDzPUJ?= =?us-ascii?q?jacfDHbv8l68b2MAbIv15rloO8Lg+ZMn43shfRUpZzcGUvi4CyHsk6OIBZSCv8?= =?us-ascii?q?lCix6LpMXDdqSzLSwVNrQh1RLjWWZy3RXEkBZv6msLTS2q7MU4K4WlJcYl2i2o?= =?us-ascii?q?FHDDdFYL5qNGqtHxtFAMTOsyZ1Ns22Bj0s+ARi0WWsPAB3w1jg8/aWVfcZJD7x?= =?us-ascii?q?AaG7MvgjaSsalM5hsUbyvMEoS55onQmt/F2XcjQtdux2LWvrOKi4gr0X1kntN0?= =?us-ascii?q?6zCBuG4Wd+PGScNsBWLz1ohHw+zke/qtqvwHSJdhyLm5Xv4CKtOj+Wqq15p0QU?= =?us-ascii?q?Klw7UeH0ajMOAd3LvbVD2lSWKAU+SRb2eMhyo5MlL15RSwKV03bNlFolQlMuvG?= =?us-ascii?q?nJFcjBHhUbJoSSWMv1/U0nIsPfkcdw0opIetYxYKQ/IJZ+iAOegux+UzCF8Nb3?= =?us-ascii?q?/PACt3BPa6sVqsnIhgJ3Vg+l73YeX3/QDgN9ueAB4EEZTVrpRp4/y1WnqBOWN8?= =?us-ascii?q?zB11JER08v3QGEgxtu9ddZaRmsPdh8p60e4DafhtNSw9utgOmoNs84WU192KcR?= =?us-ascii?q?7JxJboOd7VuuSYA+HYz0kyeGFVSLkZYQTu6IghI945XaHTHbtevRQBCqg6QIAh?= =?us-ascii?q?O3339K5qMAN5ahTRa6isgsn2uuKLYYNZp33T7lI3NifcoRwDyuevQAx9dZ+qgm?= =?us-ascii?q?v9IJEqSjJGtd1tBQNsHJFTFMMYswqnH5mUlbmgi9+//kN1p+4HvKnrB/DUytu5?= =?us-ascii?q?xYRxXpld5UyNJjrRArdkglg2xti11+zN1pj3FNPKZcIPVO89RHXMLLDBANaRMD?= =?us-ascii?q?WLb/7megZ49PbIzKh+VBq5bSb1Ra2HuGuvM/AyshZz8ZBxYOeGlG9l1Lrcwtan?= =?us-ascii?q?IjgDqw=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2AbCQDaBqxa/wHyM5BeHAEBAQQBAQoBAYJ8JyoDgVgojXd?= =?us-ascii?q?yjQdFAQEBBQGBMIEbk3uCCxEYiC8hNBgBAgEBAQEBAQIBaiiCOCSCUQIkGQEBN?= =?us-ascii?q?wECAwkCSAgDATABBQE1BYM8gUoNAQKkEECLJYJaOoMBAQEFgWaDcYICCBKFH4E?= =?us-ascii?q?jcYEMghyOD4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCR44gVJwFYJ9giQPH?= =?us-ascii?q?I4+VI84AQEB?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 16 Mar 2018 18:04:35 +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 w2GI4SlP026725; Fri, 16 Mar 2018 14:04:30 -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 w2GI4OfR003284 for ; Fri, 16 Mar 2018 14:04:24 -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 w2GI4RIC026722 for ; Fri, 16 Mar 2018 14:04:27 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1C6AACYBqxalywbGNZeHAEBAQQBAQoBA?= =?us-ascii?q?YJ8JyqBWyibcEgGgkuTe4ISCoUQgzchNhYBAgEBAQEBAQITAQEBAQEGGAaGKhk?= =?us-ascii?q?BATcBgRQBBQE1g0GBSg0BAqQPQIslglo6gwEBAQWFV4ICCBKFH4EjcYEMghyOD?= =?us-ascii?q?4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCSQBggNwFYJ9giQPEAyOPlSPOAE?= =?us-ascii?q?BAQ?= X-IPAS-Result: =?us-ascii?q?A1C6AACYBqxalywbGNZeHAEBAQQBAQoBAYJ8JyqBWyibcEg?= =?us-ascii?q?GgkuTe4ISCoUQgzchNhYBAgEBAQEBAQITAQEBAQEGGAaGKhkBATcBgRQBBQE1g?= =?us-ascii?q?0GBSg0BAqQPQIslglo6gwEBAQWFV4ICCBKFH4EjcYEMghyOD4c+hG9wiw8Jjx+?= =?us-ascii?q?IGIUjkAkCBAIEBQIFDyGBCSQBggNwFYJ9giQPEAyOPlSPOAEBAQ?= X-IronPort-AV: E=Sophos;i="5.48,316,1517893200"; d="scan'208";a="227681" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 16 Mar 2018 14:04:24 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3Autm+mRU5Q3GoWhFlbfCCGMOjAP3V8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYYxCHt8tkgFKBZ4jH8fUM07OQ7/i8HzRfqs/Z7jgrS99lb1c9k8?= =?us-ascii?q?IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBo?= =?us-ascii?q?KevrB4Xck9q41/yo+53Ufg5EmCexbal9IRmqogjdrNUajIltJqos1hfEo2ZDdv?= =?us-ascii?q?hLy29vOV+dhQv36N2q/J5k/SRQuvYh+NBFXK7nYak2TqFWASo/PWwt68LlqRfM?= =?us-ascii?q?TQ2U5nsBSWoWiQZHAxLE7B7hQJj8tDbxu/dn1ymbOc32Sq00WSin4qx2RhLklD?= =?us-ascii?q?sLOjgk+2zRl8d+jr9UoAi5qhJiw4Dafo+bOvl5cK7GYd8WWXBMUtpLWiBdHo+x?= =?us-ascii?q?aZYEAeobPeZfqonwv0UArQG/BQKxC+zvzSJDi3jq3a0g1OQhFw7G0Rc6ENIIrX?= =?us-ascii?q?vUttL1NKYPXuyv0KbIyjDDYupQ1Dzg64bIaggsre+RUb9/a8bd10YiGxnbgliS?= =?us-ascii?q?s4DoMDyY2vwTv2Wa8eZsSeeih3Iipg1svjSj2tsgh4zUio8U1lzI6CB0z5o6KN?= =?us-ascii?q?C2Rk52ZN2pH4dNuy6BMoZ2TMIvTH9muCs/xLAJpIK0czYMxZ863RDQceaHfJKN?= =?us-ascii?q?4h/7VOaePzN4hHV9db2xnRi8/1atx+PiW8euzFtGsipInsPSuX8T0hzT8ceHRu?= =?us-ascii?q?F4/ki72DaP0xrf6uRFIUAwjabbKpghzaAslpcLr0jPAyD7lF/ogKKZbEko5Oql?= =?us-ascii?q?5/7ob7jpvpOcMpV7igD6MqQggMy/BuE4PxASX2iB/uS80rLj8FbjT7VMk/I2iK?= =?us-ascii?q?7ZsJHHKsgBuqG5BApV3p456xmjFzemzMgYnX4fIVJeZh2Hi4npO1fTIPH3Fvq/?= =?us-ascii?q?n1Stnytrx/DBJLHhBI7NIWLZnLfuerZ99R0U9A1m1t1b5pRJGpkdMfnzXQn3r9?= =?us-ascii?q?WeARgnYCKuxOOyNM98nr0ZETaTGKifP4vbt1OS4eMjZeKLYdlG637GN/E56qu2?= =?us-ascii?q?3jcCklgHcPzx0A=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0C7AADaBqxalywbGNZeHAEBAQQBAQoBA?= =?us-ascii?q?YJ8JyqBWyibcEgGgkuTe4ISCoUQgzchNhYBAgEBAQEBAQIBEgEBAQEBBhgGV4I?= =?us-ascii?q?4IoJ5GQEBNwGBFAEFATWDQYFKDQECpBBAiyWCWjqDAQEBBYVXggIIEoUfgSNxg?= =?us-ascii?q?QyCHI4Phz6Eb3CLDwmPH4gYhSOQCQIEAgQFAgUPIYEJJAGCA3AVgn2CJA8QDI4?= =?us-ascii?q?+VI84AQEB?= X-IPAS-Result: =?us-ascii?q?A0C7AADaBqxalywbGNZeHAEBAQQBAQoBAYJ8JyqBWyibcEg?= =?us-ascii?q?GgkuTe4ISCoUQgzchNhYBAgEBAQEBAQIBEgEBAQEBBhgGV4I4IoJ5GQEBNwGBF?= =?us-ascii?q?AEFATWDQYFKDQECpBBAiyWCWjqDAQEBBYVXggIIEoUfgSNxgQyCHI4Phz6Eb3C?= =?us-ascii?q?LDwmPH4gYhSOQCQIEAgQFAgUPIYEJJAGCA3AVgn2CJA8QDI4+VI84AQEB?= X-IronPort-AV: E=Sophos;i="5.48,316,1517875200"; d="scan'208";a="9814837" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from updc3cpa05.eemsg.mail.mil ([214.24.27.44]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 16 Mar 2018 18:04:06 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;e29c835b-64f5-4bf3-8023-2393e056280e Received: from localhost.localdomain (localhost [127.0.0.1]) by UPDCF3IC16.oob.disa.mil (Postfix) with SMTP id 402td216pyz2Vpdf for ; Fri, 16 Mar 2018 18:04:06 +0000 (UTC) Received: from UPBD19PA04.eemsg.mil (unknown [192.168.18.5]) by UPDCF3IC16.oob.disa.mil (Postfix) with ESMTP id 402td16ZTWz2VpdY for ; Fri, 16 Mar 2018 18:04:05 +0000 (UTC) Authentication-Results: upbd19pa04.eemsg.mail.mil; dkim=pass (signature verified) header.i=@android.com X-EEMSG-check-008: 301926696|UPBD19PA04_EEMSG_MP4.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: A0A2AQDtA6xaekJTfUpeGwEBAQEDAQEBCQEBAYJ8J4Itm29FAQEBBoJLk3uCEgoThH2DNyE1FwECAQEBAQEBAhMBAQkLDAcoL4VTGQEBNwGBFAEFATWDQYFKDQGkBECLJYJaOoMBAQEFhVaCAggJAQiFH4EjcYEMghyOD4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCSABggdwFYJ9giQPHI4+VI84AQEB X-IPAS-Result: A0A2AQDtA6xaekJTfUpeGwEBAQEDAQEBCQEBAYJ8J4Itm29FAQEBBoJLk3uCEgoThH2DNyE1FwECAQEBAQEBAhMBAQkLDAcoL4VTGQEBNwGBFAEFATWDQYFKDQGkBECLJYJaOoMBAQEFhVaCAggJAQiFH4EjcYEMghyOD4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCSABggdwFYJ9giQPHI4+VI84AQEB Received: from mail-pg0-f66.google.com ([74.125.83.66]) by upbd19pa04.eemsg.mail.mil with ESMTP; 16 Mar 2018 18:04:04 +0000 Received: by mail-pg0-f66.google.com with SMTP id s13so4353768pgn.12 for ; Fri, 16 Mar 2018 11:04:04 -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=qcqNgHT1pS7tuIXQoi08tx2vu+AOd5+vMPRFIjrE5fmpsZyi3FDJ1nQ66oE8st/0Sl frkXpF83D2CUn3SL4F7Lc72OKkPKcFclsLT174QSY3BjLb5uzIPHFUa14U66YY8fZ3TG z2OzSPibTCWAttLV/fuL4bePea9owjM62QuvFp5jgvpIZSfann6vjdbqB1NBh5FNsP0T T/WSWi5/80jlX0BfIEGmrtQuyrrt+uERgX9A0rQuvzNyqsEGgQSIFse1lUlBM9sniMGY xFA6ddVg4hEyxcoHUVLlitw1Kb5w3nGOSW8OnjOpVWKyFWp41LxNuhk8KiQjc7FUTyr8 PNrw== 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=Jf3NFOhXy9uQUQMOWjt2t2fb3+D1kmxzVtja6vwo6bdN5CfOFQg3/ikKgUd2hHXXJl RzJqYa/r/8DHiJwG/R0p3SeItjGrsovXq7ZH/7uprqDuxvsaify203lEMFA5HFqtqCs5 Sx/ROmeMB8I2tzdMaW9RrDuYL+eSuzvNqDO/GuqspOhDkKsn7C/z81FazuV5QO1pbCJI 5p1ptpNutim9wc9nTvbTesUK34P+puWnZrSlUN4BRqwIbL3AGrzMnSnRV2e+rNgNfwOC FvMw0BIBRCgRgjKJwPy8A+v3NBxfYj86jaxh0Ex2NpnDYh99E9vsQDoz53eNZbobOTPw ZDBw== X-Gm-Message-State: AElRT7Ew+tJnSz4Jgya4OBBi1EjTBjJyYZuYjXctVXfAMbbkZVDynPHT 4JQeKxKvWwJdKAzRrM0BH8JQixGCKj0= X-Google-Smtp-Source: AG47ELsN9aLehYbc66Wj29q+Oh/R9TVjkpqU67y9nj0SHa+LxskHWAop5OI4n6zjv7ybCqdQhcno6w== X-Received: by 10.99.43.67 with SMTP id r64mr2113052pgr.403.1521223442191; Fri, 16 Mar 2018 11:04:02 -0700 (PDT) Received: from trong0.mtv.corp.google.com ([2620:0:1000:1601:c43f:8c1b:f6ef:3dce]) by smtp.gmail.com with ESMTPSA id q2sm14983371pgf.5.2018.03.16.11.04.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Mar 2018 11:04:01 -0700 (PDT) X-EEMSG-check-009: 444-444 From: Tri Vo To: selinux@tycho.nsa.gov Date: Fri, 16 Mar 2018 11:02:52 -0700 Message-Id: <20180316180252.78963-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 --- 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); }