From patchwork Fri Nov 18 14:52:06 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Smalley X-Patchwork-Id: 9436703 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 EF92260237 for ; Fri, 18 Nov 2016 14:49:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EA38629912 for ; Fri, 18 Nov 2016 14:49:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DE09529917; Fri, 18 Nov 2016 14:49:49 +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=-1.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from emsm-gh1-uea10.nsa.gov (smtp.nsa.gov [8.44.101.8]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 63C0D29912 for ; Fri, 18 Nov 2016 14:49:48 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,510,1473120000"; d="scan'208";a="1097567" IronPort-PHdr: =?us-ascii?q?9a23=3A8jLZ/R076qh4k3UksmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?sewUIv7xwZ3uMQTl6Ol3ixeRBMOAuqkC0rqd7/mocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDSwbalvIBi1ogncudQaipZ+J6gszRfEvmFGcP?= =?us-ascii?q?lMy2NyIlKTkRf85sOu85Nm7i9dpfEv+dNeXKvjZ6g3QqBWAzogM2Au+c3krgLD?= =?us-ascii?q?QheV5nsdSWoZjBxFCBXY4R7gX5fxtiz6tvdh2CSfIMb7Q6w4VSik4qx2RhDoki?= =?us-ascii?q?MHPCMn/m/RhMJ7kaZXrAu/qxBjxoLZZpyeOvhjcaPHZd4URXRPUNtfWSJCBY28?= =?us-ascii?q?d4kCA/cPMOlXs4bzqEUBrQClCAmwBu7i0CNEi2Xq0aEk1ekqDAHI3BYnH9ILqH?= =?us-ascii?q?nascn1O7kKUeC10qbIyyjIYe5T2Tjn7IjIdg4uoPGRVr93asre1FIvGhjZjlSQ?= =?us-ascii?q?tYPlPzSV2v4Ls2iA9eVsT+2vi2k5qwxopDWk28QiipHRi44IxV3J+j91zYYoKd?= =?us-ascii?q?GiVkJ2bsCoHIFNuyycKoB4WNktQ3tytyY/0rAGvJm7czUUx5k/3B7fbuCHc5CP?= =?us-ascii?q?4hL+SOadOTd4i2xheLK4nxuy7VKvyvf9Vsmpy1ZGtDZFk9nQuXAN0Bzf8M6HRe?= =?us-ascii?q?dm/ki9wzqP0gHT6uVcLUA1k6rUNYIhz6YtmpccvknPBC/7lFjsgKOIeUgo5PKk?= =?us-ascii?q?5/n/brXjvJCcNot0ig/kMqQpn8yyGf84PRYKX2ia/+S8ybLi8VTiT7VNk/02lL?= =?us-ascii?q?XWv47BJckAuq64AxNa0oYk6xqlCTemy84XkWMILFJCZhKLl5LpNE3WIPDkEfe/?= =?us-ascii?q?hEyhnylzx//cJL3hA47NI2PbkLj7Z7Z96lVcyBI3zd9F+51bFKsNIPXpWk/+rN?= =?us-ascii?q?bYFAM2MxSow+b7D9Vwzo0eWXiVDa+fLKzSsESI6/kqI+mUZY8ZoS39KvY+5/L0?= =?us-ascii?q?in85g1Add7Gz3ZQLcHC4AuhmI0KBbHrvmNgBEmAKvhclQezpklKCUjlTZ2uoU6?= =?us-ascii?q?I7/DE7B5qsDZ3fSYC1nLyBwCC7E4VMaW9bEFCMEGnnd5+fVvgWdC2SJ9Vtkjse?= =?us-ascii?q?VbiuU4Uhzw2htBfmy7p7KerZ4i0Yuozn1Nhx4O3ejhUy9SFoD8Sa1mGCVXt4nm?= =?us-ascii?q?QSRz85xKp/u1Byyk+f0ahkhPxVDcdT5/1TUgc9Lp7c0/d3C8v0WgLGcNaJTUyp?= =?us-ascii?q?QtO8DTE3UN0x38cEY1xhFNW6khDDwy2qDqcblrORAJw07rzT32LqJ8tm1XbJyr?= =?us-ascii?q?MhgEI7QstKL2GmgbR/9wfLDY7Tj0qZj7qqdbgb3CPV6GeM0HeBvEBCXw50SqjK?= =?us-ascii?q?QXcfZk7Kotvj/UPCU6WiCbI5PQtd0cSCMLdFasX1jVVaQ/fuINLeY2O1m2e0Gx?= =?us-ascii?q?mI3aiBY5D0dGUH2yXREk8Ekxoc/XyeLwgxGj+ho37CDDxpDV/gflnj8fVkp3yl?= =?us-ascii?q?QE81wBqHYFFh17Wv4B4VmeKTS+kJ0rICpighty1+HEyh0NLOF9qAuw1hcb1CYd?= =?us-ascii?q?M8/FhHyWXZtxZnMpO8L6BigVgecwtsskPq1hV3DJ9PkdItrH8wywpyM62Y2ktb?= =?us-ascii?q?dzyExZDwJqHXKm7q8RCraq7WwU3e3M+N+qgR7PQ4qlPjvBymF0c56HVny9hV03?= =?us-ascii?q?2d5prWFwoeS5TxXVgr9xJivbHVfjE955/I1X1rKaS0qDjC29YtBOQ70BavY9Bf?= =?us-ascii?q?Ma2fGQ/pDs0VG9OuJPYtm1izYRIOJPpS+7IsP8O6a/uG37amPP56kzK7iWRL+p?= =?us-ascii?q?py3liX+Cp7Tu7Iw5EFw/eD0wuCSzv8ilChvdztlYBCez4SAnK1yTL4C45Jeq1y?= =?us-ascii?q?YYELBH+rI82z39lxmZjtVmVG9FG9A1MG3NGmeQCIY1z7wwJQyVwdoWa7liug0z?= =?us-ascii?q?x0jzYpo7Kc3CPQxeTibwEKOm1VS2lkllfsJ5a7j8wAUEivdQgpmwOv5VzmyKhD?= =?us-ascii?q?uKR/M27TTF9WfyjwMm5vSbWwtryfbM5P8p8otztYUPika1CAVrH9uwca0z/kH2?= =?us-ascii?q?ZG3DA0bSyqupHikhNmiWKdMHZyoGPXec5qwxfT/tvcReRe3jAeXil3lSHXBkSg?= =?us-ascii?q?P9mu5diUjYrMvf2lWmKuU51SfjPnzYWeuyun/WdqGwGwn+ivmt37Fgg3yTf72M?= =?us-ascii?q?N3VSXMshn8epPk16KmMe15ZEllH0L869FkFYFkiYs8nooQ2X8HhpWP4XUIj2nz?= =?us-ascii?q?MdJB2aLxcnUBXzgLzMDJ4AL9wk1sMmqJx57lVnWa2sZhacO1YmUK2iI66sBHE6?= =?us-ascii?q?mU46JZkityuFq3txrRYeJ6njcf1/Qh9GIaj/sOuAo3wSWXGqoSElVAPSzwixSI?= =?us-ascii?q?6MizrKpXZGmza7ix1FJ+ncymDLyZpAFTRmr5eow+EiBq9sVwLkjA0Hvt5YH4YN?= =?us-ascii?q?PQd84ctgWIkxfciOhYMJcxmeAOhSpjJ239oWElxPQhghF125G1opSHK35x862j?= =?us-ascii?q?Gh5XKCf5Z8UN9THxlaxehNqZ35izHpV9HTUGRIHoQeimET4IsPToLQKOEDo8q3?= =?us-ascii?q?qAA7XQAQqf5F1hr3LVHJChL2uXK2UBzdV+WBmdI1RSgAYOXDoghp45DhunxMLg?= =?us-ascii?q?cEdj/TAR+lD4qhpKyu1yMRnwTmbfqx2sajsuT5ifNhVW5BlY50jJKcye8v5zHy?= =?us-ascii?q?ZA8525sgOCMXKUZwJJDWEVXUyJHFHjMaew6tbe6eSYAfC+L/TWa7WUteNeT+uI?= =?us-ascii?q?xY6o0oZ+4jmMLduAMWNtD/0hwEVDQ2t0G9/DlDUMViwXjTjCY9SfpBeh/C14tN?= =?us-ascii?q?q//O33WALo5ouOC7xSPc9p+x+onaeJL/SQizphKTZEypMMwmfFyKMF014MkS5u?= =?us-ascii?q?eCeiEa8buC7WVq3QhLVYDxEFZCNoLsdI6bwz3hVVM87Bltz1zqJ4juIyC1pdTl?= =?us-ascii?q?Phm86pZcsMI2ymKVzIGl2ENLWcKj3N2c33Zrm8SbJIhuVOqxKwoSqbE1PkPjmb?= =?us-ascii?q?jTbpWAqgMf9SgyyAOxxeoJ+ychBoCWf5TdLmbga0MNh4jDEsxr00nHzKP3YGMT?= =?us-ascii?q?dga0NNsqGQ7SRAj/VjHGxB62BpLfODmyeY8ebYLI0ZseFsAitqlOJX+2g1y7xQ?= =?us-ascii?q?7C5YXvN1gzfSosRoo164jumF0iBnXwZWqjZXmIKLul1vOabZ95lER3nJ5xcN7W?= =?us-ascii?q?KeCxQEudRlFsHvu6BXytjKiq3/MjFC/MzI/cEEHcjbNNqHMGY9MRruADPUDQ0F?= =?us-ascii?q?TSK1OmHbmUNdle+d9mGPrpk6sZXsn4IORaFdVFwwDPwaC0BlE8cFIJZ4RD8klq?= =?us-ascii?q?SbjMEQ73qksBbRXNlavozAVv+KB/XgNiyWjb1fahsLxrP4NpgTOZf920x5aVl6?= =?us-ascii?q?nZ7GG0zOUtBRuidhdBM7oF1R8HhiSW0+w1jlZR224HAND/G0hAI5igtlbOs29T?= =?us-ascii?q?fs+Uo4Jl3EpCsoikk+h9XkjSqXcDHvMKe6RZtWBDbst0gtLpP7RB54YhC1nUxi?= =?us-ascii?q?MjfLWqxej79hdW1wkgDTp4FPGflGQa1Deh8QyumdZ+803lREtiWn2UhH6PPYBp?= =?us-ascii?q?R4igsqcIOjr2lb1g15dt41P6vQJaRSzldOmq2OozWo1uEtwA4ePUoN9n2deDIQ?= =?us-ascii?q?skwSKrYmPzao/vBr6QGalTtDYnYDWOcxov1w8EM9J+OAzzn73rFZNk+xMvaTL6?= =?us-ascii?q?SDu2jPjcSIWE8/1lsUl0lZ+rh7ycMjc02OV08xyruQFhMJONHNKQFTcspe7n/T?= =?us-ascii?q?fTyBse/V25J6I529Fvz0Te+JrKsUmVyrHAIoH4QK88QAEYKh313fLcfiMLEK0w?= =?us-ascii?q?4t5BjxKFWDEvtJZAqBkC0brMGn0J93wY5dKykeAWVnMSS4/LDXphMqgPeYU9c2?= =?us-ascii?q?ZW8aUZceOnIwRsK6hzZTv25cAzmvzuIZ1A+C4ifgpiTRCTn8aMZjZPeUZB53Fd?= =?us-ascii?q?62+DU+/LKthlLN9JXROX36P8x4utDT8eMau4qHC/RMQLl9tEfThYdYSGKwU2PU?= =?us-ascii?q?EN66OYb/ZJc2YdzzEHa6XUS1iygpQMfpINatMq+IjBnySoZQsYmUwC4sOte4Fj?= =?us-ascii?q?AeHRdwoOcD67hnaAIYYpo0exjoux0wN6yiOguY1MuhQ3q1IztMU/Zf1fm6Z6BQ?= =?us-ascii?q?zyc0deC11n0gQ4ogwOaq704CWosKjgrEyva5Z4hSSy/zGmZSew/Xvyo2i3BhNv?= =?us-ascii?q?ouwuc42B7IvkQcMzGPdOxtdmNEusoxCk6MLnptC2o3XVmcgZDE4g620LAY5zFd?= =?us-ascii?q?kMpM0e1ZrHj+uYfSYCiqWKyqtZrVsy0gbdw9o6NpKILtP9GIuY/ZkDHEUJbQtQ?= =?us-ascii?q?iFXzKgGPpBhthcOiRYT+dUmWs9I8wJpZJB6VYtVsc5P7FAFKssqaq2Zjd/ESES?= =?us-ascii?q?yisZV4eB3DMcmOe8x6XVmQuQcJg4NxwEqppCiMMHUyFqeiMeuLOjV4LOmm+eUG?= =?us-ascii?q?cLOgAT4h9X6QIcjI9/ZP7l75TMTJ9NzT5WrPZ0UirEFplo61v7RHuZgUL9SPm7?= =?us-ascii?q?leymwx5Sxur20tYHQB5/FVRdx+FOm0ooMr53MLMfvovLsj+Obk76vX7tx/G9JF?= =?us-ascii?q?ZN08LYbVv4A5TZtWDkSC0T5WUURZNTyHHYDZkTnRB1Z7orpFVNJYCme1zx5z8/?= =?us-ascii?q?yoRoAba3S96ky0wirXYcSCegC8BBBP1+sFLLRD1lZIimp4//O5VPRG9c4p6dpk?= =?us-ascii?q?xYkEVsMi651YFTJ9tL4jESQDhFuS+ds8eqSM1fxc92CIcBIthlu3jnHqNEJIOc?= =?us-ascii?q?o3wxur3hzH/Z5zA8v0m7xDW1B6+3UfhZ83cYGgo3O2SUslMvAPc08mfO7lDNtU?= =?us-ascii?q?h5//tcBriKlkhxvCpxHpVVCTpT03CqMUhzRmFcs+pGMKTVb9BcQ/4qaB+vIRM+?= =?us-ascii?q?D+Qp30iU8kxvgHj2fTRythNE9CDZQQY0TzMZgrD3mT0RssunIyMVS4pUbTU9aC?= =?us-ascii?q?fIMwCbmSdJsxtEdk5lRYsZDchf+7EHw4Rb49DOSUCyJiEZRBZiLB430eJDlU5f?= =?us-ascii?q?t0WVYTvSDQS0evrTsBB7YMmcodW1I/T++QdIlpnosPsk96kZQX2phxGtS8jEr4?= =?us-ascii?q?Dgrt2KqleOdKDgPu2mf3DOUTjMggqshbo/C5nK+DbTPxRFJ5ZmznorfIbuBXTN?= =?us-ascii?q?PRtYO6IRP1BbWrxiadVavuBaYNdpeL4S+a9xHB2IWw/vFZe0rPlBM1bTXyjRID?= =?us-ascii?q?uH8uyju4Lc97jdRfLnZsyWyHbNW7h3MYti6TnnB7fq1pdT+lbs2vhz6Ex1VEPL?= =?us-ascii?q?Mz2FrNT9PAME/teidkrlvp0tAzzWHI18kH33xkFPb8AXWTGl8IwEyJNF73b9Uf?= =?us-ascii?q?930k7pv+BJ6rZk75M476puyceuKqfYMe5avlN/AhiIGgVq8Y0gAGplSGBLZe8R?= =?us-ascii?q?M/PRcr4Hjc31ruD3CqgX6AGU++NFaNvIPUfBmtKlBjGbUxxEkx8LqSQGIQuEy/?= =?us-ascii?q?6Fh6h0RN6npefj3EIt7UK+Lhkbw79z/oqE5rCHpOnMbxvW17QEXLblRt/rpLQ2?= =?us-ascii?q?p0yS/eEklKIJemFtZQ2nFPMQVs8bxmfl16wqzCQsE83ZH7364/5DS2g5ni/8lJ?= =?us-ascii?q?BhAlUWAO0bEaCM/YREkWcyg/bZOcEOcqBehmaPEgapErkDyXG37CuXJHNqggrU?= =?us-ascii?q?3xHxRmOz60T2rTRjTCvJwNrinVBZVr6tBUddRyCpI1N3sCuTPAr0s9r6obg641?= =?us-ascii?q?syMmP6r9KNiGugOLRMEs3kONOcIDc7pFQLjJ0wXNOjw4YbFsShIN0J6nFxcuPe?= =?us-ascii?q?63+3ky9Gu6pHg5He4sSV9/jME3mvkbCVq7KXxD9C0ng4p1Y/6tK+Of7S+92GWf?= =?us-ascii?q?Oo13weTy1noQvOQwa1qqDHr1ATIUGL1UPLl5IPPtFew3Y40lrr5Oc9T9I07wVe?= =?us-ascii?q?DpzPZ+8DpT/pPDv0wFCfY84pWSma1ztXH131Hkd+GKcgxm38psTJmmnM+1cwXI?= =?us-ascii?q?l/a1TnhQBrD4U/MU8t6lkXwi8YHAgIdx+aDK+nBV7kLYsCWkgPcxKH06ameq0v?= =?us-ascii?q?x0183quv5PPPbex7H6cNN/dcgRSUk1dHAZ8WqrMRQK5idFBB7qLXoRLiC4f/Vf?= =?us-ascii?q?j8iXUwLeG1Qtxd8c0BrHQi4x2/RhS65pdB7rYblIiIebRZYZjIp81z80Bn6iMR?= =?us-ascii?q?eSNXnRh/lRS5UfoGq+z55djbqpWo4P60VKkxX+UX6wQ0B2Nmgpvoml8jvc3Y1+?= =?us-ascii?q?dSS43Sk4T/8xlBI2WUt4be0hl8L/cOKo2wcbZ47XoHOzQRJ3IAPNqRcfk84DVh?= =?us-ascii?q?MDbN6FxYBMMDe9cYMNDKmQBOhU3jQKtT+dbDGl+EF4dzcNgl73btyD8r9ZszSO?= =?us-ascii?q?Dg5yGtKJ/C7lFNMPJDjDl2m9LZvucV2+fSBDIR4XaHdxh/2jmCxIWVC/bs4eWM?= =?us-ascii?q?z8nZV1wcES4sTYhdODqC9BejRuq0iJXmTAOU5dXugJIlbk6QQGK+nLgduKZWDe?= =?us-ascii?q?FAkjn73iRZFo3tiPKardys6HdQtl1AF4pz9gPKGKFePpV9JBT5mdKmRkxiCSvl?= =?us-ascii?q?eMDbbAAiuOyIyecQ++9+LVfxZZcHIhIYzLL38X9VTgxoSL7qsVaWQ/kcZN5nSP?= =?us-ascii?q?zeqHBa955gKqEIPFiHp5zqtS1EqFYoDw81cLUwtCBVdlHSnA1JXKb5oLEAhRcH?= =?us-ascii?q?Ud5ioENCBG2+NmQ/5zrBSKRUg7KcCPMQ8jqJSKwBTV9kMiRkQxO6wJ9uYaemne?= =?us-ascii?q?hbsmNamSNwuPoq0ztmRBu6oyHju6IN2TY9+L6ltTQBuHpFTv6dkyfJElhD0vUK?= =?us-ascii?q?jbkGBHbm9FO8YWMPbI3s77l7Pc7g75Uu42wjYRU/eC0LReWgCz/qgKOOGYGPtM?= =?us-ascii?q?9ciwOMuMXJdr+/Ny8SNq4yyRj7XXhyzhDenAp08GsMWjig7sErJIuzOcYh3Sep?= =?us-ascii?q?F3LUdFAS7aNVqsfxs0AETPcuY1N73GpjytSHRjEKRMHXFGY1ig8kaGtaf5JH7R?= =?us-ascii?q?8XDLIogjGOvqlH4g4YejHUHZq5+oPIh8fHxWE9Tct2xmLRvqCFhJMq0X19m9Nz?= =?us-ascii?q?6i6OuWgSePLDXs9pA3jzyp1fxvLka/WqqOAHR5NsyK69X/8aLsmj5Wy21Y12Wk?= =?us-ascii?q?+kw7QTBEa5MO4fybfYTSilTXeUWeKVfGiQhzw5KFL95QG0Ll0rb8dHt0o9MurB?= =?us-ascii?q?hp5fkA3sSrF0ST+TpV/cymwsL+UaexgwuIi5ZwwAVPQRaPSEJegy3P0+D0MBYG?= =?us-ascii?q?TXEitwF++7qkWtnIx8O3V8/UX6f/ri/R38PNuVABkEHpbQroRt9vyiWmKBJXhg?= =?us-ascii?q?wQVqPElz8+fQDU4xt+Fbc5aVk9jdnNF70ekCd/d2LyIypsQTmoV46YmP0ceKdx?= =?us-ascii?q?7Rwoz1JdHPrfiSG+ffwFgyemFGTroZZhv454skMd49Wr3TBaVWsA8dBKg7RZwh?= =?us-ascii?q?Mnn+9LtwLAxtaALRY660gsbyrOKRepRUv2PW7k43LCrEux0D1vy0TQt+b5+wnH?= =?us-ascii?q?X/O5UwRjNdr913FBRqBoxPG9kPrwC/GZ6bhLm7i8Ot+0N9o+ILv7LwCurL1Nul?= =?us-ascii?q?wYp8RJ1a5U2XPDbLGqZnmENljv69gv3YyJn+Fdviec8YVOh8WmPFbbvGEZukJz?= =?us-ascii?q?KWPsLzYVVG86Kd0L1lThWRfj72ULScuC2iKvpk/V0xypZkc+rL0Dwt87bb1cP2?= =?us-ascii?q?Z2FaoCejsHGIOIJb7FzLHuzeQwlUROGE8Gl/G60XapH49OAUMdwt2NKc+RV87C?= =?us-ascii?q?xe0MuZJKistlTM1Vx/dZLaKkvpxik4VY4FLhSjMUsjn3XZpWrFAXtGNcWkKtdi?= =?us-ascii?q?gMyTDhPz40l+gnwtZmFbFmrvX9eRNnAR29iiaw2S6AJLE9EDkvazeU45ra2yVf?= =?us-ascii?q?JlO5RcmeWsrroLi9BpJD/TRMJCJSHfMKd2PiZNDuXIvFUoZwQLvKQ1Woc0Y5iO?= =?us-ascii?q?J1gKMFmBySP00wTC1Uz0d9qx1KeGOioW9W9Hz73d2zhWuwa5oeqZgtHkUL3Bbp?= =?us-ascii?q?H5Rv3SMC0+WTyBWDQyF1qp+Veju/oZs/qYIXsfrkoSYi2MFA4ZvrpvosTIDm/P?= =?us-ascii?q?he1je4UHhP+AVC/rUi14lbQ9BiJQuECSR/oMDxLWb378gGZGvgytOONM92r/b7?= =?us-ascii?q?KE3qpVR/AWAoxUf/2bRtvYfupeJy0pljUCI+u8ecfTr7Mn3VLJV2cZFLPI9FKG?= =?us-ascii?q?Rk6MXvOc3y7rXZkSv4UspCUo+NXQni9xE6TTOLafoSWj8oGijCaFp+3RSHMtb1?= =?us-ascii?q?YzgO0cHGmL2ANAJ30cC9EJpEHtRbaNZ11C1HIsle1j2hwBdR9tUnJwyH1Wnfe8?= =?us-ascii?q?GspfSVIOimOhXuEGZkhtDDws5U+K/hHyYdsYtMDRQG9e8L8MRJEYLPY29YbXNq?= =?us-ascii?q?wQwOw10z14uiA6tTuSD08Oxj6CprHdGKN6261q+Xgz//YwWFqGBTzYbDvp0I2j?= =?us-ascii?q?XvlTyD9urHas7M/duuRgJfMOvI1iKEsbCiJxYNbG9HZOVn+ii1j6hAqyADnLeG?= =?us-ascii?q?FR2z0MPyFQM7wtwg=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2GQBQC/Ey9Y/wHyM5BeHAEBBAEBCgEBFwEBBAEBCgEBgww?= =?us-ascii?q?BAQEBAR+BSBC7MCmIEFMBAQEBAQEBAQIBAl8ogjMagiMCJBMUIAsDAwkCFykIC?= =?us-ascii?q?AMBLRUfCwUYBIhLrXY9KgKLMCWPLwIRAWiFFQWPZYpmjFyEFgKBbheIE4YLAod?= =?us-ascii?q?Iih5VXRECDwwdgygcgXtUhg4PF4IWAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 18 Nov 2016 14:49:44 +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 uAIEn95h011528; Fri, 18 Nov 2016 09:49:18 -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 uAIEn8NK220607 for ; Fri, 18 Nov 2016 09:49:08 -0500 Received: from moss-pluto.infosec.tycho.ncsc.mil (moss-pluto [192.168.25.131]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id uAIEn7al011516; Fri, 18 Nov 2016 09:49:07 -0500 From: Stephen Smalley To: selinux@tycho.nsa.gov Subject: [PATCH] libselinux: normalize enforce values from the kernel Date: Fri, 18 Nov 2016 09:52:06 -0500 Message-Id: <1479480726-2898-1-git-send-email-sds@tycho.nsa.gov> X-Mailer: git-send-email 2.7.4 X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: Cc: Stephen Smalley MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Normalize enforce values received from the kernel via /sys/fs/selinux/enforce or netlink selinux notifications to ensure that we always return a 0 or 1 to userspace code. selinux_status_getenforce(), which reads the enforce value via the SELinux kernel status page (/sys/fs/selinux/status) already normalizes its result, so we do not need to update it. Signed-off-by: Stephen Smalley --- libselinux/src/avc_internal.c | 1 + libselinux/src/getenforce.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/libselinux/src/avc_internal.c b/libselinux/src/avc_internal.c index 26f3360..49cecc9 100644 --- a/libselinux/src/avc_internal.c +++ b/libselinux/src/avc_internal.c @@ -176,6 +176,7 @@ static int avc_netlink_process(void *buf) case SELNL_MSG_SETENFORCE:{ struct selnl_msg_setenforce *msg = NLMSG_DATA(nlh); + msg->val = !!msg->val; avc_log(SELINUX_INFO, "%s: received setenforce notice (enforcing=%d)\n", avc_prefix, msg->val); diff --git a/libselinux/src/getenforce.c b/libselinux/src/getenforce.c index 4fb516a..03d3abc 100644 --- a/libselinux/src/getenforce.c +++ b/libselinux/src/getenforce.c @@ -34,7 +34,7 @@ int security_getenforce(void) if (sscanf(buf, "%d", &enforce) != 1) return -1; - return enforce; + return !!enforce; } hidden_def(security_getenforce)