From patchwork Fri Mar 16 18:11:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tri Vo X-Patchwork-Id: 10289779 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 E79D1602C2 for ; Fri, 16 Mar 2018 18:12:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D767929059 for ; Fri, 16 Mar 2018 18:12:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CB97E2905C; Fri, 16 Mar 2018 18:12:18 +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 upbd19pa10.eemsg.mail.mil (upbd19pa10.eemsg.mail.mil [214.24.27.85]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F1A262905A for ; Fri, 16 Mar 2018 18:12:16 +0000 (UTC) Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by upbd19pa10.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 16 Mar 2018 18:12:14 +0000 X-IronPort-AV: E=Sophos;i="5.48,317,1517875200"; d="scan'208";a="9815410" IronPort-PHdr: =?us-ascii?q?9a23=3AQBpOdBAGpBRIpkRdBUzQUyQJP3N1i/DPJgcQr6Af?= =?us-ascii?q?oPdwSPn9pc6wAkXT6L1XgUPTWs2DsrQY07aQ6/+rADRRqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRo?= =?us-ascii?q?LerpBIHSk9631+ev8JHPfglEnjWwba99IRmssQnctMYajZZ+Jqs11xDEvmZGd+?= =?us-ascii?q?NKyG1yOFmdhQz85sC+/J5i9yRfpfcs/NNeXKv5Yqo1U6VWACwpPG4p6sLrswLD?= =?us-ascii?q?TRaU6XsHTmoWiBtIDBPb4xz8Q5z8rzH1tut52CmdIM32UbU5Uims4qt3VBPljj?= =?us-ascii?q?oMODAj8GHTl8d+kqRVrhy8rBB72oLYfZ2ZOP94c6jAf90VWHBBU95RWSJfDI2y?= =?us-ascii?q?bIwBAfcZPetasoXwqUUBrQClCAWwGO/i0CNEi2Xq0aEm1ekqDAHI3BYnH9ILqH?= =?us-ascii?q?nass/1NKYPWu+6y6nD0DLOb+9M2Tf67ojIfQssruuKXb1ta8rRzkgvGB7fglqM?= =?us-ascii?q?rozlOiqY2+IQuGaY9+ptTf+jhmEopg1rojWj290ghpfGi44L0FzI6D11zJg0KN?= =?us-ascii?q?GmVEJ2ZMKoHZ5Nuy2GK4d6XsYvT3xptSom17ELvIK0cScExZQpwhPSaOCIf5WT?= =?us-ascii?q?7R/mWuacICl3hHxgdb+xmhm97Vavx+vhXceuyllKtDBKktzUu3AI0Bzc99aIR+?= =?us-ascii?q?Nm/kekxTaPzwfT6vxYIUwslarUNZohwrkom5oPq0vDBC72mFjtjKOMakUl+vSn?= =?us-ascii?q?6+TgYrn8oJ+TK5R0hR3kPqQrm8y/Bfw0MgkIX2eF5eSxzKDv8EL2TblQjvA6j7?= =?us-ascii?q?PVvI7VKMgFvKK1HhdZ0oM55Ba+Czem3s4YnX4CLF9dYxKIkYzpO1DIIPDlAvaz?= =?us-ascii?q?mk+jkDB2x/DAIrLuHI7NI2PfkLbhYbl960lcxBA1zdBE/Z1YEL4BIPXtWkPprt?= =?us-ascii?q?zXEgc5MxCow+bgENh91IQeWWSVDa+FMKPdq1mI6/ktI+mLYo8VvSzyK+M55/Hw?= =?us-ascii?q?l385gkURfa6z3ZsYcHq4BOhpI12FYXrwhdcMCWUKvggkQ+P2i12CSjlTZ3CzX6?= =?us-ascii?q?Ii/Tw7BoamDZrMR4+2nbyB2ju7HoBMamBBEFCMHm/id5+YVPcUdCKSPshhnyQc?= =?us-ascii?q?Vbe/UIAuyxeutA7my7pgNefU+zMXuoz929Rv4O3Tjx4y/yRuD8uBy2GNU310nm?= =?us-ascii?q?QQSjAr26B/p0p9xUqd3qh8gvxVDsZc6O1TUgc9L5LcyPZ6C9/qUALbYtiJUEqm?= =?us-ascii?q?QsmhATwpU90x38UBY1xmFtq+iRDD2jalDKUOl7yXHpA09LzT32TpLcZn13nGzL?= =?us-ascii?q?Uhj0UhQsZXK2KmnrRw9xLSB47SiEiZj7yldb4d3C7W7GeDyXCBs11GXwJqVqXF?= =?us-ascii?q?R38fbFPMrdvl/kPCU6OuCbM/PwtAz86CNrVFatn3glVDWvjjJM7eYmKqlme3HR?= =?us-ascii?q?aH2LWMbI/wdGUc2CXSE08Ekg8J8XaBLwg+CT+ro3jCAzx2CVLvf0Ts/PF+qXK6?= =?us-ascii?q?SU80yRqHb0hl17as+x4Vg+aQS/UJ0bIeuychqit0E0in09LQFdWAuxJrfL9Abt?= =?us-ascii?q?Ml/FdHyWXZuhRzP5yhK6Big0ARcx5sskPgyRp4F4JAkdIwo3My1gpyLqCY301d?= =?us-ascii?q?eDOEx5zwPafXKmbq9hC1d6HWwk3e0MqR+qoX5vQ4sU/svAe1GUoj6HVqyNxV02?= =?us-ascii?q?Od5pnTFwoTX4nxXlww9xhgqLHQejM96J/M1X1wLam0tSfP29EzC+smzRagYsxS?= =?us-ascii?q?MKCeGw/xFM0aGtKiKOswm1imdhgEJvxd9LYoP8O6cPuLwLSkM/t6nDKnk2tH+p?= =?us-ascii?q?tw3ViQ+Cp5UOLI2IwFw/6A1AudSzj8lEuhstzwmY1ceT4dBG6/xjb/BI5NZqxy?= =?us-ascii?q?ep0GCXyyLM222Np+gYLtW39C+1K5AVMJxtOpcwKIb1PhxQ1QyVgXoXu/lCui0j?= =?us-ascii?q?N7jiokrqWa3C3B2ejicgQIOnJTTml4kVjsOZS0j8wdXEWwdAgpmgGl5UHhx6hH?= =?us-ascii?q?v6l/NG/TQUBGfijzNW5iVLG8trycbM5T8JkoqzlYUPygYVCGTb7wuxUb3DnnH2?= =?us-ascii?q?tC2j87bSqqt47nnxNkkmKSN2tzrH/DdcF33xff68TWReRN0ToeWCl4lT7XC0Ci?= =?us-ascii?q?P9mo4dqUi5DDsvqkW229Vp1Tdi/rzYybuSu/5G1qBwewn+q0mtH9Fgg6yyD73c?= =?us-ascii?q?FwVSrUtBb8fpXr16OiPOJjf0loH0P859NhGo5gloswhZcQ2WUVh5iO5noHiWbz?= =?us-ascii?q?MdNa2a3id3oBXzgLzMDJ4AL9wk1sMmqJx57lVnWa2sZhfd66YmcS2i0j9cBFFK?= =?us-ascii?q?CU7bJfkCtuv1q3sRnRbeJ6njcHxvsk8GQajP0RuAox0iWdBagfHUpGMizqjBSF?= =?us-ascii?q?9NO+o7tRZGa0d7i/ylZ+kcqmDLGYrQFWQGz5dYs6HS9s8sV/N0rB0GXp5YH5fN?= =?us-ascii?q?nfc8oTuQeSkxfckedVMok8lucRhSV5I2L9pmcpy/U8jRxzx5G1oJaIK2tq/KKj?= =?us-ascii?q?DR5XKCf5Z8UN9THxlaxehNqZ35izHpV9HTUGRIXoTfS1Hz8Jq/TnMRuBED0mpn?= =?us-ascii?q?edB7XfAReV6F16oHLXD5CrK3aXKWEBzdp4WRmdIFdSjxwVXDUmnp81Dw6qy9bn?= =?us-ascii?q?cEtj4TAR/FH4oANWyu10Lxn/TnvfpACwZzc3SJmfKARZ4xpH50fSP8ye4Px8Hz?= =?us-ascii?q?1E/p2hqwyNL3KUax5ODW4XRkyOH0rjMaW25dnc7+iYAfKzL/XUbrWItexeUPKI?= =?us-ascii?q?yImh0oR44jmMMd+PMWN6D/0h3UpDX252FNjFmzkVTCwXjS3NZdaBpBig4i13st?= =?us-ascii?q?y/8PPzVQ3y+YSPDrxSMdNz+xyrmqqDKfCfhDx4KTdZ0ZMMw2XEyL4B014Okytu?= =?us-ascii?q?bSWiEawctS7RS6LdgqFXDwQFZCxuL8tH9aQ83hVKOc7Akd76zKJ3jvsvB1dCT1?= =?us-ascii?q?zhldmjZdYWLGGlKFPHGEGLOayAJT3R2c73ebu8RKZejOVVrR2woiqbE0HiPjSF?= =?us-ascii?q?jTbpUQygMeBWgyGfJhBev5u9chl1A2j5UN3mcgG7MMNwjTAu2rI7nXTGNWodMT?= =?us-ascii?q?hnb0NNtaec7ThGjfpjAWBB9WRqLe2Fmyaf8unZJY0bvudrAyRuiuJa+242yrVP?= =?us-ascii?q?4yFYX/x1ny3SosRpo1G8nemF0iBnXwZWqjZXmIKLul1vOaPY9plEXXbL4gkN4H?= =?us-ascii?q?6KBBsUvdtlDcfju6dKytjAjKjzMitN88rI/csAAMjZMNmIMHsuMRruHj7ZFxYK?= =?us-ascii?q?QiCwOmHenUNdluue9nqPrpg1spLsgoYBSqdHVFwpEfMXEl5qHNMYL5dpQDwpir?= =?us-ascii?q?mbjNYW6nq4qRneXsRavpTcWfKVDvTjMjGZjaNLZxEQ27P3MZwTNpHn20xlclR6?= =?us-ascii?q?gIPKG0/KUdBXpS1gbxE7oENW/3hkSW08xUHlZxix738UEP67ggQ5ihBiYeg38j?= =?us-ascii?q?fj/Us3LELQpCQsiEkxhcnlgTeJfT7zLKexXZlWCy3wt0gwLpP0XR14bQiznUx4?= =?us-ascii?q?LjfLWahdj7x6dWBkkAXco4dAGeZATa1YZx8d3feXaOsy3lRYsSinxkhH5fDZCZ?= =?us-ascii?q?R4kgsqap2sr3Na1wJlctE1ObTaJLBVwVhImqKOoiio2/grwAAAPEYC7nmdeDQU?= =?us-ascii?q?t0wILbQpPCuo/vZx5gyFlTtDYHIMWOQqo/5w8EMyJfiAxTr607FfMkCxK/CfL6?= =?us-ascii?q?SBtmfdj8GIXFIw2V4Tl0Re57d2y90jc02aVkA00rSeCwkJNdDDKQFJb8te7n7T?= =?us-ascii?q?cjiSse/V25J6I529Fvz0Te+JrKsUhkWkHBw3EIQK78UBGYKh0E7eLcf6NrIFzg?= =?us-ascii?q?8t5AvzLlWfEPtJYA6LkCsAo8yn1594w41dJjAbAWVgPiS6/arYpggvgPWfRtg2?= =?us-ascii?q?eWsaUpECNn0oRM2wgzRZsGhYDDmrzuIZzxCP7yP9piTVCzn8c9pjZfePaBxxCd?= =?us-ascii?q?G3+S8w/LOshV7R7JreO3nwNc5+td/X9eMau5GHButOQrl5skfTh5dXSGSvU2/P?= =?us-ascii?q?F961IJ7wZJM3YNPvC3a1SFq/hys7T8fsJtqtKLaHgR3wT4ZOrIabxCwjNdO6Fj?= =?us-ascii?q?wGABh/uecD6blmagIefZo0fwTotx8kOKylIAaUyNKuQ3yiKTFOVflQ0f26Z6BL?= =?us-ascii?q?zyorduK60n0gTpAmwOm39k4NQIoKgAnHy/i+fYdTTS/9F2dBdAXIoCo2i3JuNv?= =?us-ascii?q?0uwuslxhPHr0UcOSiRdON1cGxEo808BVSKLHpqCGo3XUOTgJHf7Q6r27AS+ypd?= =?us-ascii?q?kMhO0e1Zrnfxop/fbCirWKyxppXfqzAgYsQ+o61tLYzjJdOLtInEkTzFS5nfqR?= =?us-ascii?q?aIUDKgF/VAhNhfPiZYQPhOmWEqPcwGuIVB6UotVscwPbNPEqwsqqqsaTV6ES4Y?= =?us-ascii?q?1TUZWJ+Y3Dwenue83KPXlxmKfJs+MBwEsZBCgtoHXC51eS4epbGsWJvImGOeTW?= =?us-ascii?q?gLOggT5xxW5A0cjo9wYvzl4I3QQZ9J0TFWufF0XTXXFplp8Vv7RXqbgFbiR/Wn?= =?us-ascii?q?j+Op2QVSzO/x3dkAQhJ/D1ZSx/pOnEsyNL53M7UQvpLNsjKQbUP6u2btx/G8JF?= =?us-ascii?q?hfzs3Uc1P4AZHAtWr7VS0c4mMbSpNVyHHYDpQSiAt5aKAkpFlWJ4CmYEn+7SQ+?= =?us-ascii?q?x4t1B7m4Sdyrx1E9oHkcXSeqDtxBB/tlsF/MWT1lYpGrqIn+NJlIRG9f5oGdoU?= =?us-ascii?q?9DkEpxKy651YZcK8ZV7z4QWzhPpC6QvMeuRM1GwsB6FZkMLclju33lAqNLJICR?= =?us-ascii?q?o2Equrzo0nLZ+yozsE2gyzW3BqC1VP9W8HMGGgUxOWuerlcgD/E2/mfV6FDNvU?= =?us-ascii?q?h+//1HCbiXkUVxvDF9E4hMBjZOy3+oNEl8Q2dds+pEMqTVb9JTTOQoaR+pJRM+?= =?us-ascii?q?CeYs31aV8kFsgXf5fytyuxNG+y/AQgY0VDMagrP2lDICrcGnPCMVRIhTbTU9dS?= =?us-ascii?q?vFLRyUmTxPthZFd05qQ4wZAspC+7wDxoRU8NbNRVquJC0YUhFvLR430f1alUFf?= =?us-ascii?q?qkqYYjzdARCudfnRrh19Zd2Ro9KxLPTl4AdHjZvqsPom+KoeR32pgxGtTMvar4?= =?us-ascii?q?/7qN2FqFWCe7v/M+Khf3DNVj7Mgg6shb08FZnF4zDTMBZHK5l90XckeYPhCXLR?= =?us-ascii?q?MhtbO6IWPFFbVadnadVcvu9VeclkeLoT+aB3AhKLXBTvGJagrPNeNFbcWSzeLz?= =?us-ascii?q?md8uy4uY/T8abdRvb+acOR3HvHXqZ3Potg6TbhBbfq0Ihe+k7o1fdx7E96TkLG?= =?us-ascii?q?My+ZptT7OgwL/NWidlflvpAxGDPZGpNwkH7zyUFca8oYWTel/Y8eyJxH9HbwUv?= =?us-ascii?q?533VLrsOJM7bVk75c446xxw8euOajSMehasVNgAhWMBAVl7I8tAG9kR2BVeOAR?= =?us-ascii?q?NuzcfaEEjcDqt+D3FrAY6ByP9OxfctvLPUbBmtOwCjuEUxxLgB8BqSIGLgubz/?= =?us-ascii?q?OFmbV7ScCrpejj3UIi/kaxIwUazL9344eE4a2IqPXRbxTP0bgOQrLqSd/rrrQw?= =?us-ascii?q?p0OS4uUplLETemx0Zw2nFPYSVssGy2j9068l1iMsHNnFH776//5DTX05lCr6m5?= =?us-ascii?q?9hB1UWBu8UHb2T8IRcn2c4nvfUNtgIfaFChGmPDx+kErkNyXKx7SuYPnVliAnU?= =?us-ascii?q?0x7sWWOz8EP2rShgTCvKy9fuiUtVVr+yBUtIXiqpP0F4sCmVMwrzqNr3o7k141?= =?us-ascii?q?0qMmz5rtKCinGtOLRNH83wPNacOzU7pEoLjJ0tQdyiwYUbGd27INcN/3FxcODT?= =?us-ascii?q?62aqkyBbpadImZbe48+S+vXNHnmglLeWq7OTyzBE0nI4p00w6si8NvHS4N2HW/?= =?us-ascii?q?Co130UTyp/oAbBUQC6paHcr1AOI0OLyF3LmIsIPt5HwXY4ylvq5O85QNI87A9e?= =?us-ascii?q?DJrPZ+sepTDvPzv52VefYtMtWSaEzzRaBUn1HkdkGKcixG38psXJlW3f+1cwXI?= =?us-ascii?q?l/a1TnhQBrD4U/MU8i81kXwjENEAcXaxCbDa2oBVz/IosZUUgOcgiI3L+ndagp?= =?us-ascii?q?x0Jz36mv5OjJbeNmHaYNMexdjgGWllhBBp0WqbEeQK57e1JF7K7YvBTiBJTnX/?= =?us-ascii?q?noknowL/61TtlB8c8Hs3si4wC/Rwev6JpY97YUkoyIebJEYZnCu8B89URn6SQM?= =?us-ascii?q?diNTmhh/iQ22UeQGqODk+Njbv4Ki6vyyW6Y1W+UX6x80Cnxxj5TqmlAsv83X1+?= =?us-ascii?q?dHR43RiIT/7B5CI36Qt4bHyBlwM+wOJJy3fLx47XUIOzAeJ24SPdqRc/Q87DFi?= =?us-ascii?q?MDPP51xFBcMAYsgYM9TJmQBVjE3pRb5S+9HfGlCGEYdyd9on43DxyD8r7Zs2Sv?= =?us-ascii?q?zg5yOuJZDD81FNOOtOjCNtlN3eo+gVxeDdCDMN7XmYbBh1xTiCy4KWBvb18uiN?= =?us-ascii?q?x8vYV1QcHi45S41dPiaN+RS7Ruqpk5XkSgyU5dPogJIlbU6eW3O/kqIEsqZKDO?= =?us-ascii?q?5BhT723jdbFo/vgfKarcCg6GxNtl1ICIxz9wHKGL1DPpVnPhT1jsurRk98Biv5?= =?us-ascii?q?Ys3bahouuO6LxugR4uR+Nk3+ZZQYIhIF0L/693tVThV0R77yo1mZXPgdZN14R/?= =?us-ascii?q?PYtnpV855vK7cTPFiBo5zntjZIqE4sDw8vc7IwqiFaeVTPnA1SQKb4orkAihET?= =?us-ascii?q?UdRho09DBXqwOH4i5zrATalVjreeCPIb8jWXVaEPXV9nMiVgTBOpwplufaWmne?= =?us-ascii?q?xfuGNcgix9uOQq0yBhRBakti3so6UN2Dw+97G8sDUMomdFTuKYkyfJFVpP1vIK?= =?us-ascii?q?grkAC3z681yzfGEDbJfu4LlgPcng8Igh43c8YRUkZCAGX/6vCyL3j6OOHIOPts?= =?us-ascii?q?hQhBiTt8XSdbWzNzQdNqwhyRL/QHhwyhPRkwhu8GsXWTig99skJIKhOcY52Cqn?= =?us-ascii?q?B3XUeEwL4qNTv8v7rUQLQ/cuaVN93GVj1dCKRiMTS8zLGmY1lhYrZH5FcZJC7B?= =?us-ascii?q?8aErcngiyMvqZY5A0UZy3UEou98InKgcjIwWU9Tcttxm/OqKyFnokq0Hx5lNxq?= =?us-ascii?q?9SOOvXUSd/DCU8ByGHTz0Z1fyePmbfW3ru8HUJdmyKimUPIaNcmj/XW51Y5yWk?= =?us-ascii?q?+h3LseBEa5MO4fybfHSSeqV3OXVf6Nc2eSgzYzKlTy6gWwLl0rdMdKqFcwMu/D?= =?us-ascii?q?hp5aig3gXqp4RiGRpV/A0GwjKvgXdwMst4ehfAwGVukRZ/KTJeI22v0xFEMMb2?= =?us-ascii?q?PVHStxE+K2tESik5R7O3Vh50X6Zv/g8h7nMNuUBBYEFY/arphs+f21XG6BPmVg?= =?us-ascii?q?zBJqNklu6+jfD0gxtvNbc5uJn9jfndd70ekeePp2LC09vMITmoJk6YmJ38eKcQ?= =?us-ascii?q?3Rwoz0Jd7LvviSG+ffwFgyemFGTroZZhv454c/Pt4+Qb3TB7pZvQ8HCKg8WpMh?= =?us-ascii?q?Mnn+9KBuIAN0aA7Ra6y+gtP2qeKTeptUu3jW40orLCfSvh0M1v25QA9gYpC0mX?= =?us-ascii?q?ryOpEwRzNGr91rEBdmGpVAG99T5zagVoWZnKC9ls+Z51Jxu+hMt7H5TP/NyoeX?= =?us-ascii?q?xYJ0CqRA5AS1O36FGLNshEtNh+K+mPDB3t/6Dsa0KoBMb/RyXmOQMuyOJY64MD?= =?us-ascii?q?/bf5ukdg=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2AbCQADCKxa/wHyM5BeHAEBAQQBAQoBAYJ8JyoDgVgojXd?= =?us-ascii?q?yjQlFAQEBBQGBMIEbk3uCCxEYiC8hNBgBAgEBAQEBAQIBaiiCOCSCUQIkGQEBN?= =?us-ascii?q?wECAwkCSAgDATABBQE1BYM8gUoNAQKkFUCLJYJaOoMBAQEFgWaDcYICCBKFH4E?= =?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:12:12 +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 w2GIBw42029018; Fri, 16 Mar 2018 14:12:03 -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 w2GIBrLr003305 for ; Fri, 16 Mar 2018 14:11:53 -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 w2GIBuFf029015 for ; Fri, 16 Mar 2018 14:11:56 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1C6AAC4B6xaly0WGNZeHAEBAQQBAQoBA?= =?us-ascii?q?YJ8JyqBWyibckgGgkuTe4ISCoUQgzchNhYBAgEBAQEBAQITAQEBAQEGGAaGKhk?= =?us-ascii?q?BATcBgRQBBQE1g0GBSg0BAqQSQIslglo6gwEBAQWFV4ICCBKFH4EjcYEMghyOD?= =?us-ascii?q?4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCSQBggNwFYJ9giQPEAyOPlSPOAE?= =?us-ascii?q?BAQ?= X-IPAS-Result: =?us-ascii?q?A1C6AAC4B6xaly0WGNZeHAEBAQQBAQoBAYJ8JyqBWyibckg?= =?us-ascii?q?GgkuTe4ISCoUQgzchNhYBAgEBAQEBAQITAQEBAQEGGAaGKhkBATcBgRQBBQE1g?= =?us-ascii?q?0GBSg0BAqQSQIslglo6gwEBAQWFV4ICCBKFH4EjcYEMghyOD4c+hG9wiw8Jjx+?= =?us-ascii?q?IGIUjkAkCBAIEBQIFDyGBCSQBggNwFYJ9giQPEAyOPlSPOAEBAQ?= X-IronPort-AV: E=Sophos;i="5.48,316,1517893200"; d="scan'208";a="227704" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 16 Mar 2018 14:11:54 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3Aro8Jvxy0rNBXvPjXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1O4WIJqq85mqBkHD//Il1AaPAd2HraobwLOO4ujJYi8p2d65qncMcZhBBVcuqP?= =?us-ascii?q?49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6?= =?us-ascii?q?JvjvGo7Vks+7y/2+94fcbglUizexe69+IRe5oQnMqsUbhZZpJ7osxBfOvnZGYf?= =?us-ascii?q?ldy3lyJVKUkRb858Ow84Bm/i9Npf8v9NNOXLvjcaggQrNWEDopM2Yu5M32rhbD?= =?us-ascii?q?VheA5mEdUmoNjBVFBRXO4QzgUZfwtiv6sfd92DWfMMbrQ704RSiu4qF2QxLulS?= =?us-ascii?q?wJNSM28HvPh8JtjKxVvhyvqR94zYPPfI2ZKOBzcr/HcN8GWWZMWNtaWSxbAoO7?= =?us-ascii?q?aosCF/QPPfxZr4LgqFQOqga1CA6wBOP1zT9IgHD20LYg3OQnDA7GxgsgH9MTv3?= =?us-ascii?q?jOsNr1M6ISXPmzwaLVzjvDd+tb1Sng5IXHaBwtv/6BUahufcbP00UiGAPIgk2O?= =?us-ascii?q?pYHkIT+ZyuEAv3Se4uZ9Se6jl3IrpgRsrjWu2ssgl4zEiZ4ax13K+yV0xYU4Ks?= =?us-ascii?q?GlREFgZNOkHppduD+UN4ZzTM4tXn1ntzg8x7Ybo5C0ZjIKx44ixxPHa/yIbYyI?= =?us-ascii?q?4hX7WemfPDl1mGxrdbyhihio7UWs1u/xWtOq31lUqypFidbMumoI1xPJ68iHTu?= =?us-ascii?q?Fx/kKg2TaLzwzT6+dELl4olafDNZIt37E9moANvUnMBCP6hlv6gLWZe0gk4uSo?= =?us-ascii?q?7v7oYrTipp+SLY90jQT+P7wymsylBuQ4NAcOUnOB9uS6ybLj50r5QLRXgfEsjq?= =?us-ascii?q?bZt5XaKdwBpqGlGw9Vzpoj6xGnAje9ztsYmXgHLFRYeBOIlIXpJ1HPL+z4Dfe4?= =?us-ascii?q?mVislixryOrcMr3uBZXNMCuLrLC0Zrt56khB2CIv3Ntf4NRSEbhHL/XtCWHrs9?= =?us-ascii?q?mNMgU4ezKzi7L7EtJ72asXX26VBa6VdqjVtAnbtaoUP+CQadpN637GIP8/6qu2?= =?us-ascii?q?gA=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0C7AAADCKxaly0WGNZeHAEBAQQBAQoBA?= =?us-ascii?q?YJ8JyqBWyibckgGgkuTe4ISCoUQgzchNhYBAgEBAQEBAQIBEgEBAQEBBhgGV4I?= =?us-ascii?q?4IoJ5GQEBNwGBFAEFATWDQYFKDQECpBVAiyWCWjqDAQEBBYVXggIIEoUfgSNxg?= =?us-ascii?q?QyCHI4Phz6Eb3CLDwmPH4gYhSOQCQIEAgQFAgUPIYEJJAGCA3AVgn2CJA8QDI4?= =?us-ascii?q?+VI84AQEB?= X-IPAS-Result: =?us-ascii?q?A0C7AAADCKxaly0WGNZeHAEBAQQBAQoBAYJ8JyqBWyibckg?= =?us-ascii?q?GgkuTe4ISCoUQgzchNhYBAgEBAQEBAQIBEgEBAQEBBhgGV4I4IoJ5GQEBNwGBF?= =?us-ascii?q?AEFATWDQYFKDQECpBVAiyWCWjqDAQEBBYVXggIIEoUfgSNxgQyCHI4Phz6Eb3C?= =?us-ascii?q?LDwmPH4gYhSOQCQIEAgQFAgUPIYEJJAGCA3AVgn2CJA8QDI4+VI84AQEB?= X-IronPort-AV: E=Sophos;i="5.48,317,1517875200"; d="scan'208";a="9815392" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from usat3cpa07.eemsg.mail.mil ([214.24.22.45]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 16 Mar 2018 18:11:53 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;44028416-61bd-42c0-b3e6-98bf01bd2169 Authentication-Results: ukel19pa18.eemsg.mail.mil; dkim=pass (signature verified) header.i=@android.com X-EEMSG-check-008: 296158449|UKEL19PA18_EEMSG_MP11.csd.disa.mil X-EEMSG-SBRS: 2.2 X-EEMSG-ORIG-IP: 74.125.83.68 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0A2AQBMBqxaekRTfUpeGwEBAQEDAQEBCQEBAYJ8J4Itm3BFAQEBBoJLk3uCEgoThH2DNyE1FwECAQEBAQEBAhMBAQkLDAcoL4VTGQEBNwGBFAEFATWDQYFKDQGkEECLJYJaOoMBAQEFhVeCAggJAQiFH4EjcYEMghyOD4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCSABggdwFYJ9giQPHI4+VI84AQEB X-IPAS-Result: A0A2AQBMBqxaekRTfUpeGwEBAQEDAQEBCQEBAYJ8J4Itm3BFAQEBBoJLk3uCEgoThH2DNyE1FwECAQEBAQEBAhMBAQkLDAcoL4VTGQEBNwGBFAEFATWDQYFKDQGkEECLJYJaOoMBAQEFhVeCAggJAQiFH4EjcYEMghyOD4c+hG9wiw8Jjx+IGIUjkAkCBAIEBQIFDyGBCSABggdwFYJ9giQPHI4+VI84AQEB Received: from mail-pg0-f68.google.com ([74.125.83.68]) by ukel19pa18.eemsg.mail.mil with ESMTP; 16 Mar 2018 18:11:52 +0000 Received: by mail-pg0-f68.google.com with SMTP id o14so125529pgv.9 for ; Fri, 16 Mar 2018 11:11:52 -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=qvYpzQYTC4tQiVzVEPy/xgom/qGYz0bO/Fe1WAr+FeU=; b=Q+espz5Yk3MJ9epwqyV6ZxGbz91Cgm6B0/UqUT0OSCLkjcW4AjBPrWAZnqMMLQuzW4 T5nd7qp6wBcSXBba4ogfs26HDLdIwe68jAyRngPFruQSJs0kcfOhyf0RbPLUtzzODF3m fPFMOIixIAK9j0qj6+FOHENORvu+tnaztKw/Ts6Y6X1IfuVnYvOIiRlL5riiqLCNeAXo M89Zp4t3x8sB4IzRBtTn36muknUXT0L4foM0Q6jaf6LEDVqJBB9iemmK8NtDbLP1PnMm 2o2rJcfc1xzqWAnZfHPSO4umTw7jofbNmWrHi01bccQJ8/tI0qcgubEO3giEIEFsg7tu BCUQ== 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=qvYpzQYTC4tQiVzVEPy/xgom/qGYz0bO/Fe1WAr+FeU=; b=lqamYOOSeofSJSqrU0W3LRUykCvyzbJX8qYHee0ZJfYs1gf01yJF0UNvEfHl8tg3Q5 fFko9uO+b7GP7SCxhUQuWxzqKea8dWssIRnQ8+guCWYW6J+UgC6ZX7+cBLre4C++tddu ZQeTXnpOQW7tLisicgWPWhO6PcbOp4hrYg86NyWtjbZBYZRUACr6W/4nXO7eq4bkPwXZ WacJvZQTZhbxmNGa3A4hHfXCAljxdNDwgGo86SAF0SoLW7M1pdAkUYvSY4aSIEFivzI3 DUYTiqw1OzojZlqESCtv2RN69a6iMthhGU2oR1KrCLaljeNnPw+3/JMZ+x1UH/7YXJeh iXqA== X-Gm-Message-State: AElRT7HPPOLXE/YDIIYyOF2RCklRXY5/3fb1xPfK8VySP+1nb3iOYVVD ZbMUx3kRdjg/5HaYiAHzFzxWPDuOkJU= X-Google-Smtp-Source: AG47ELsAdb3aibTMuaELM/YdqMcBcsiE/05TnXnW+t+lP1Pd6FIY+ZBqovibjHwVeIXWa0VKM6zNQQ== X-Received: by 10.98.29.9 with SMTP id d9mr2334813pfd.57.1521223911503; Fri, 16 Mar 2018 11:11:51 -0700 (PDT) Received: from trong0.mtv.corp.google.com ([2620:0:1000:1601:c43f:8c1b:f6ef:3dce]) by smtp.gmail.com with ESMTPSA id y14sm18203034pff.81.2018.03.16.11.11.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Mar 2018 11:11:50 -0700 (PDT) X-EEMSG-check-009: 444-444 From: Tri Vo To: selinux@tycho.nsa.gov Date: Fri, 16 Mar 2018 11:11:36 -0700 Message-Id: <20180316181136.81215-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) A warning will be issued on this conflict. 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: Jeff Vander Stoep Acked-by: William Roberts --- 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); }