From patchwork Wed Nov 23 17:11:28 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Smalley X-Patchwork-Id: 9443903 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 5C6DD60235 for ; Wed, 23 Nov 2016 17:11:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 60B7C2715B for ; Wed, 23 Nov 2016 17:11:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5555327BE5; Wed, 23 Nov 2016 17:11: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=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from emsm-gh1-uea11.nsa.gov (emsm-gh1-uea11.nsa.gov [8.44.101.9]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8227F2715B for ; Wed, 23 Nov 2016 17:11:48 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,539,1473120000"; d="scan'208";a="1022810" IronPort-PHdr: =?us-ascii?q?9a23=3AfU6+JBXpH1zQN4NCY8F1gezfdSfV8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYYheGtadThVPEFb/W9+hDw7KP9fuxAipavt3Q7TgrS99lb1c9k8?= =?us-ascii?q?IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBo?= =?us-ascii?q?KevrB4Xck9q41/yo+53Ufg5EmCexbal8IRiyowjdrNcajIltJqs1yhbCv2dFdf?= =?us-ascii?q?lRyW50P1yYggzy5t23/J5t8iRQv+wu+stdWqjkfKo2UKJVAi0+P286+MPkux/D?= =?us-ascii?q?TRCS5nQHSWUZjgBIAwne4x7kWJr6rzb3ufB82CmeOs32UKw0VDG/5KplVBPklC?= =?us-ascii?q?EKPCM3/2HNjsx7kbxVrhSvqRdix4LYeZ+ZOOZ7cq7bYNgUR3dOXtxJWiJBHI2y?= =?us-ascii?q?coUBAekGM+laoYn9v1kDoQawCAajGOzhxSFHhmTt0K0m0eksCx3K0RY8E94Qtn?= =?us-ascii?q?nfsdX7NL0VUeCw1KTG0CnDYO1O2Tf99ofIdA0qr+yJXb1qdcrRzVcgFgPYhViX?= =?us-ascii?q?sozqIiiV2/8Rs2mb8+VgVeWvh3QhqwFquDej3Mgsio7Xho8MzF3P6CZ3wJ4tKN?= =?us-ascii?q?GlR0N2bsSoHZtNuy2AKYd7Td0uT3t1tCs817YIo4S0fDIQx5Qi3xPfbvuHfJWW?= =?us-ascii?q?7R/7T+aRJCt4hGpieLKimxa+6UigxfP4VsmzyFtKsjBKksPNtnAQzBzf8NSHS/?= =?us-ascii?q?th8Ueh3jaDzQbT5f1fIU8oj6bbLp8hwroompoSt0TMADP2lV3rgKKZeUgo4Oil?= =?us-ascii?q?5/n9brn4qZKQKZV4hhzmPqQrgMO/AOA4MgYUX2ic/OSxzKbj8lP9QLVLiP02j6?= =?us-ascii?q?bYvInBKsQcu665BRNa3Zg46xukEzen0MgXnXkALF5ffhKHlJLmN0vBIPD/E/ez?= =?us-ascii?q?m06snytzx/DaIr3hBY3ALnbZkLj7e7Zy909cyBEowNBa/5JUC6gNIOn9W0/qrt?= =?us-ascii?q?DYCQU5MwOsyeb9FNp9zp8eWX6IAqKBM6Pdq1yI5uUyI+SXZ48aojX9K/845/L0?= =?us-ascii?q?in85g1Add7Gz3ZQLcHC4AuhmI0KBbHX2n9gBC2YKsRQkTOHxklKNTTtTa2y1X6?= =?us-ascii?q?Im6TExEJimApvbRoCxnLyB2z+2Hp1IaWBCDlCMFmzld4GZW/cQbyKSJ9VuniYD?= =?us-ascii?q?Vbi7RI8rzQuuuxPiy7p7MurU/TUVtYnt1Nhv4O3Tjg0y+CdvD8Sb1GGMQWR0kX?= =?us-ascii?q?kORzMs2qBwv1B9wE+Z0adkm/xYCcBT5/RRXwY0L5Hcy/B6BM7oWgLaZdqJVkip?= =?us-ascii?q?Qs+9DjEsS9I92dgOY1xyG9+6lBDMwzKqA6MJl7yMHJE07r/T0GXwJ8lnz3bLz7?= =?us-ascii?q?Uuj14jQsRTL2KmnbJ/+xLVB4HXj0WTj7yqergE3C7R6GeDynKDvEdZUA50VaXK?= =?us-ascii?q?Q2sfa1DMotvn/EPCSKWiCbM9MgtO0cSCMLdFasX1jVVaQ/fuIMnRbHitm2iqGx?= =?us-ascii?q?mIyLyNYZH2dGUdxirdElQEnB4J/XqcMwgxGDuhqXrEDDNyDVLvf1/s8e5mpXOl?= =?us-ascii?q?T0870x2Kb0p717av5hEVhfucS/Uc3r8fvCchqjN0E0yn39LREdaAoBBhfKpEa9?= =?us-ascii?q?Mn/FhHzX7ZtxB6PpG4K6Bih0Uecxhus0P1yRp3DoRAkc43rHIl1wdyMrqY0FJH?= =?us-ascii?q?dzOZwZ/wIafbKm/s8xCzc6TWwE3R0M6K+qcT7/Q1s0/jvAatFkom7XpnycVa03?= =?us-ascii?q?yS55jRFwoSTI7+Ul0t+xh9vbHabTE355nI2n10Lam0rjjC1soxBOQ/1xage81T?= =?us-ascii?q?P7meGADpFM0aA9SuKOssm1WyaxIIIOZS9KkoMM+8cfuJxrKrNv56nD26lWRH/J?= =?us-ascii?q?x90kWU+ip5Tu7ExogKw/eD0wuZSTj8iFOhvd7tmYxeYzEdAHa/wzD+BIFNfq1y?= =?us-ascii?q?YZoLCWC2Ls202Np+gYXtVmVb9FG9AVMGw8mpdgSOb1Dn2g1Qz0sXq2S9mSSk1z?= =?us-ascii?q?x0jy0prq2H0SzQxeTtaQEKOnBNRGZ/jVfgO460gM4GXEKwdQgmiAOl5Vrmx6hc?= =?us-ascii?q?vKl/N3PcQVpMfyXtM25iU7ewt7qbb85B8pwotz9bUOOmYVCVUrT9uQcV0zv/H2?= =?us-ascii?q?tCwzA2byuqtYjkkBFhh2KdKXlyoGDfec5u2RfV/MbcSuJJ3joaWCl4jiHaBkCm?= =?us-ascii?q?MNm0+dWbiY/Dvfq4V2K9SJJTazLmzZ6btCSl/21qGgezn+u0mt36Cwg1zTH019?= =?us-ascii?q?dtVSXSoxbzfJPn16KkPuJ7ZkNoHkPz69JmGoFilYs9nJ8Q1mIchpWJ+noHlHz+?= =?us-ascii?q?MdtF1q3ja3oNXyQEw8bP4Aji2k1sMG6Gx57jWnWa2MthaMGwYnkK1SIl88BKFK?= =?us-ascii?q?CU4aRLnSt1vlW4twLQYeBhnjca0vYu7mAVg/0SuAUx1CqdGq4dEVNePSPyixSC?= =?us-ascii?q?98q+o7lPZGazbbiw01JzndW7A7GGpgFTRmr5eos4EiBq9ch/NkzD0GHo6o74Yt?= =?us-ascii?q?bQdcwcugeSkxjek+hfMIgxmeYShSp7JWL9umUoy/QhgR1gx526uZKIK2Fq/KO5?= =?us-ascii?q?GRNXLCH6Z8YJ9jHql6Zekd6c35qzEZV5BjULQJzoQOquEDIIr/vnLx6OHSYyqn?= =?us-ascii?q?eaA7rfBhOf6Elnr3LJCZ+rMW2YJHgDwtVmXhWdI1ZfgA8MVjUggpE5DhyqxNDm?= =?us-ascii?q?cEph/jAe+EX3pQVKyuJpKxn/VXzSpAa2ZTgqVpeTNh1W7htN503NK8yR8vpzHz?= =?us-ascii?q?1E/p2mtAGCN3ebaBpSAmEGQEyLHU7jM6K15dba8OiYG/C+IOHUbbWKtOxeUe2H?= =?us-ascii?q?xYi23ot6+DaMNcWOPn54A/09xEVDQWhzG97FlDUXVywXiyXNYtaApBim5C14tM?= =?us-ascii?q?+//+rwWA/0/ouAEaVSPs9g+x+omqePLeiQizhlKTxAzJMD2WfIyKQD3F4Vkyxh?= =?us-ascii?q?bDitEbsHtS7LV6/fh7FYAAUaayxpMstE9aU83hNCOcTDkNP6yqZ4juIpC1dCTV?= =?us-ascii?q?HugM6patYUI26jL17HA16LO6qAJT3O2c73YKe8RqZXjORbrRGwviybE0D7NDSZ?= =?us-ascii?q?izbpTwyvMf1LjCyDIBxev4S9fgx3CWjkTdPpdBu7P8RtjT0x37I0hWjHOnIbMT?= =?us-ascii?q?h5b0xCtKaQ7T9CjvV5BWNB8mJvLfOYlCaB8+nYNpEWvONoAiV0k+JV/m83y75S?= =?us-ascii?q?7CFKSvx6hjfSrsJuo1Ghl+mA1CBrUBxQpTZXnIiLp1ltOb3F9plcXnbJ5BMN7W?= =?us-ascii?q?OMCxsUo9tqFNjvtL5MytjVlKP+MzBC88rK8ssaAsjbMsOHMH46PhruFz/YFgwF?= =?us-ascii?q?TSSkNWvHnUxSjOmS9mGJrpg9spXsnoQBRaVfVFEuFfMaDV9lHMAYL5dxRTMkkr?= =?us-ascii?q?+bgNQO5XWgsBnbXN9asYzfVvKOHfXvLy6UjaNaaBsT37z3N54TOZH720F5cVZ6?= =?us-ascii?q?nZ7KFFfXXdBDui1hdBE7oUVX/Hh4UGIzx1rvahmx738LCf60ghk2hxNjbuQq8j?= =?us-ascii?q?fs5Uo4KUTOpCsxi0Q+g8vqgSqWcDLrK6ewR45WATLut0ctKpP7Xxp1bQqqkEN5?= =?us-ascii?q?LjjEWbNRgKZ7dW1wkgDco4FPGflSTK1ffhAf2eyXZ+8p0VRAqiSr30lH6vXZCZ?= =?us-ascii?q?F6jgslbYasr25c2wJkdNM1K7bQK7RUwVhLnK2OuDOo1ucqwAIFPUkC7GaSdDQP?= =?us-ascii?q?uEwSObksPzCo8fB06QyehztDf3ABV/4tovJw6Ew9PeWBzyX73r5MLECxKvaTL6?= =?us-ascii?q?SDu2jPjcSIWE8/1lsUl0lZ+rh7ydwjfFSQV0AuyruRChsIONHeJgFSaspd6GLc?= =?us-ascii?q?fT2SsenXx5J6IZm9HPjyTeCSrKYUnl6kHAExEoQP9MQAHoOj0EfELcfnN7MFxh?= =?us-ascii?q?It5Bz3K1mfCvRGZg6Lmi8do86j1J93wZVdJjYFDGVhMCW347HXphMqgPuDR9o5?= =?us-ascii?q?f3YaX4seOX0tQsG6nTBWv2hYBjmtzu0Z0BSC7yP7pinIDDn8aMRsZPmKahN2E9?= =?us-ascii?q?y2+Csw/LaohlLN9ZXePW76P8x4utDT8eMau4qHC/RMQLZnt0fcmpVXSGKyXG7K?= =?us-ascii?q?Ed+1IZ/wa482YtHvEXm6U0awizQsQ8f/IdahNK6Ijh/0RYxMqomUwCgjNdOhFj?= =?us-ascii?q?EZAxp/vP8M5KRnaAIZfpU7fwDntx4lN6OlOgeZ0s+iQ2G3KTtZV/Nf1/m1Z6RL?= =?us-ascii?q?zyowae+30HQgTow7z+mz9U4CWpQKgwrDyvm9fIZeUDL8GnpHdwXIvyo5mHBrNv?= =?us-ascii?q?wuzecn3BPIrV4cPiiRdOxvaWxLo9E8BVSWIXVtEmQ2XkKSg5Df7wCrxL0d4yxd?= =?us-ascii?q?n9NI3uJfq3j+ooXTYDSyV6y3sZ/VqTYvbcA6o61tNozuOteJtJHEkTPDV5Tfrg?= =?us-ascii?q?qFUCq+F/pbhNdQOj5YT+dUlmElI8AGvpBB6UUpXMckO7NPELUspqytaTd8Fy4d?= =?us-ascii?q?1zUZV4Sb0zEZnue8waHVlgmOf5QmMRwEtppCgt8cUy55YiMeuKGjWJ/Ml2+BUG?= =?us-ascii?q?QLJhkc7RhU7gIaioBwZvzl4JbPTJJUyz9Zuel0XTHOFplp8Vv2UWCWgUTiR/W6?= =?us-ascii?q?j+OmxxhezPTy3dkHQBR/E1RSx/5Klks0L7F6M6cRspTWvT+IdEP6uWPtx/GlJF?= =?us-ascii?q?RKyM3baUP3A5TfuWr7SC0c9mUeRZVTx3HHCZQSjw15Zb4xq1VWPYCmfFzy5z8/?= =?us-ascii?q?yoRoHrm4VNyryE0/oXYAWSiqD8JLC/t6v1LPRD1lf5erpY3qO5VIWGBQ/oGdpk?= =?us-ascii?q?xYkEVqPS+5z4ZcK8FT7T4NWjhPvSuSvMGoRM1Fx8B2E4cGIs1jtHflBKNEJJ+R?= =?us-ascii?q?rmUqurzoz3/U4Cw8vEu/xDqoAaO4SfxW/3EGEAUzO2ueslUvD/cr8mrK8lDCqE?= =?us-ascii?q?p08P1fBreSlkh+vShyHohWBjlX0XCqMU5zQGNBs+VAJ6Tfa9ZcTOUqZR+zJxw+?= =?us-ascii?q?EuYr306O/U5qhnr2fjJ9thBE9CDHQwk7SzQajq3rmTIAtsGtISUaRI5QbTU9cy?= =?us-ascii?q?fFLBqWljtZvBlDd01nWY0VD9he9r4H2otU+9bNRly3KSEZRhBiMBw30eZHn05Z?= =?us-ascii?q?rEqYYTzdDRavdfvXqB14Y9qerM6zI/Tl5wpHjoTnsP4m+KkdW3KmnhCiTs7Eo4?= =?us-ascii?q?/6qNKKqlOEdL3kPO2kfX/BUD/MgAiohbc/E5nF5TXcMBZAJplhznokfILhBnLV?= =?us-ascii?q?MhRAO6IbPVBUVaRgZdVBuOBaaNdueLwV9q91GhKHWhTvFZSzrPlcMFncWynRIj?= =?us-ascii?q?6c8uy7vYLT96bSSfbhZsyLw3bIXb53Mo196TnhFLfgyZVe9Vbu2vdx6kN6TkDL?= =?us-ascii?q?PD2HrNv7PQ4E+c+ieVH4sp0uBzPWD496kGDxyUFYa8oXXyqq/YwayJxD8nbwTv?= =?us-ascii?q?l40kzpv+1M7LRk7JQ347R1yce1OajSKO5VsUl8AhSOAQVq7JotCnBlR29Neu8R?= =?us-ascii?q?NOvRfaMBgMDsse/3EaIX6AeS++NEd9TKPF3BldO5CjGHThxIhgEBpiAGLgGEzf?= =?us-ascii?q?6Kh7d0Sdq5pej+wk8t5Vy+IwUHzLBr4IeI4KuIpOnZbxvL17cEQbTqRtnurrsw?= =?us-ascii?q?p0OS+Ockm6AUdmxyeQ2nH/AXVtQByWf40aAq0SUsHtvFH7Lh5PFDUHY5kSj7m5?= =?us-ascii?q?xnHlUWHfQUHaGQ/YlFm2c1lOPYOscRcqBYlWaFDQSkHaMayX639yuXJ3FojQ3U?= =?us-ascii?q?3BH0X2yz90P2rC9/QSbX1NfsjktVWaexBUdOXiqmI1V0sDWRMwr0rND3o7g67F?= =?us-ascii?q?kqMmz4s9KAjG+hOKhSH8D/P9GcLzc7q08QjJ0rXNOvwZobGd2/INgP7H5+cuHS?= =?us-ascii?q?62Sxky9Ou61HnZbR4tmJ+vXLGnmtl6iaq7GTyzBdzXg3o1U/58uvNv7Q4N2KWO?= =?us-ascii?q?yo2HwNTyd+oQTBWx+1qrrHr18KPUyL1EbLmIMUMdFfwXY3yFvq5O49T9Iv7A9e?= =?us-ascii?q?DJrPZ+sepTDvPzv52VSfY9MyViSF1jtYAFL0HkdiGKg93mLws9jFlXHO9F00Xo?= =?us-ascii?q?NwbVDohQRrD4UkLkIg8FkXwysZHgcXdR+WF6qoClr5LYQaSUcPcxOH3KK1eq0v?= =?us-ascii?q?x0183quv5PPPbex7H6cCLfddjhWAnVdBGJIWsLEeQKpmdF9A8K7avRTtC4/6UP?= =?us-ascii?q?f4j3UwKOe1QsdA8c8DrXci5Ry/RxW445dZ87kbkIyIdrJDYZXUpMBz9Vtn6iIP?= =?us-ascii?q?di1Dhxh/lRC5XfkHpO/95tjbsZyo6vuhVas2X+UY7QQ0CHh+j5r+h1Aju9LX2/?= =?us-ascii?q?1fSoLLk4T/9h5CI3qQtIbdyRl8JvIEK5i3c7Z463UHOy8eKmoSPdqMdfY85zVi?= =?us-ascii?q?MDPN6FFZH8wMZNwYPMvRmQ9OkU3mQqtT9tfBFl+eFYhza9gi73DrxzAt7Zs8Tu?= =?us-ascii?q?Hg5Se5JZ/F9VFCIe9DjCV3mdLGpegV3eTdCCgN7nmEcBh52CWCxIeRC/zo5+WD?= =?us-ascii?q?1MnUV08aHi4xS4pdKySN+Qq7Ruqyk5XlVRiU5dH3gJI/ckKQW3Owkb8BsqlSC+?= =?us-ascii?q?5Bij/00iJYFo/rm/Kfq8Cs53dPtl1bDIZz6gXIGKBYPpV9JRT4mdekS1N5Biv+?= =?us-ascii?q?Ys7UcAQhuPaYx+cL+eV+NFD+aZUdIh0a17Lw8WBVQRd2SL7qolaZWvocZNR6R/?= =?us-ascii?q?PftXBZ8J9uJaAJMlicopzqszhJpUs5AA8scrAwqCJVelPJnA1PVKb+oKQAhRcE?= =?us-ascii?q?Ud5lpU9MHnq9OGA55zrHU6RZlrWeCPwR8jWOU6MPUkRoMiVlQxO22ZVjYKWpnf?= =?us-ascii?q?FZsmxcmiNyvfkq3yZgRBSipS3mv7gN1i44+LGkqDUBvmRITuSAkyjSD1VO1/AK?= =?us-ascii?q?jboBBHbj7ly8e2MPbIzo4LloPc7g75Uu42wjYRU/eC0LReagBD/+j6OGBoyCq9?= =?us-ascii?q?xdiwSLuMrQcb+/Ny4SOaohyRj7XXhyzhDenAp08GsMWjig49skJIKzOMk7wiqo?= =?us-ascii?q?HXPWdE0L4qNPscv+qUQHTO0oZlN92G9jyNSIRjURRMzTHGY4lgokaWVEcZJb7h?= =?us-ascii?q?8aE6gogiqWsaRd+wEUYSvUEp679YXKmsfIw3Y9R89wxm3Kvq2Fmo8q0Hp9ltNo?= =?us-ascii?q?7y6OvW8fd/DZU8BwAXj8yINfxfb4Z/qzruANUJFmx6i5UP8eLsmj/nO72JBrWk?= =?us-ascii?q?+mxbQeGEG0MO0ZybfYVCelT3OXWeKRf2iKgTk5Llb45QO0IV0vdMdKs0g9P/PZ?= =?us-ascii?q?iZFCkQ3hTah5Rj6UpV/c0GwjLf0aeBwrt4u9fAwKVuERbfCGJecy2P0+FEcMb3?= =?us-ascii?q?jRECtuDO+2tUSinJJ1OnVn5UX6b//g8gXhMNuVARkLD5LVroR2+fyhXWKBOHlg?= =?us-ascii?q?zBJoMElz7effGEw7tvVAfJaJgdjQm9N73PYLd/hzNS09u8YTlZx45IiV0ceKdB?= =?us-ascii?q?TRwYjoJdHRvPeUGfrfz14lemtCSLoWfRv155kmPt4+Q7DTHadZvRQbBag/WpMh?= =?us-ascii?q?LHz89KR1LANvaA7eeq64gs7wpuKEfpFUvWPZ7kosLCfAvB0O0vK1TRRhb5Crm3?= =?us-ascii?q?r9Pos9RjdAr91xEBtpApFDG8QarwqoG5SUgr20i8et+0NmvO8Hqa3wCvTU29mi?= =?us-ascii?q?x4VxW4JV5VeXPDbQGKZrnl5lgfqsjfva1Jn+F9/ic8seVOdnWm7FdqPGHoKnJz?= =?us-ascii?q?KKO8L8fVNG8rGF3LJ9UxWRfzz5X7GduS2lLvpk50I7xpZ/fOrJwzwn96vb18fq?= =?us-ascii?q?Z2FHuiejqmaENIBB41zOBOzeWQ9USPWC/GhqAa0XbZX79P0QPtw62teR+Apz4y?= =?us-ascii?q?pY0MuDPaehqlTD2l90dZ7BK0vpwSk5U5EQIBujKUssnXPZqnPFDHRYL8ikMtVt?= =?us-ascii?q?jc2UDxz04Ul+g3shZmhfFWr0Xd2RI3QU29qiZA2W8wJGF9MDkPSrdk44t62yT+?= =?us-ascii?q?5oN45bmeWrsrUIj9JpKyDJRMhHMCDcNrh2PiBeDu/XvlgnfgYEs6QpWocyfZWO?= =?us-ascii?q?IlkIMESHySzp1gbCzEv0d8Cs1KaOPSYW/XVHz67f3ThKuQa5pe6Tgtf/X7DBcJ?= =?us-ascii?q?H2QPnSPTI+WT6BQjgyFUep+Uy4u/ofpvaYOnkQrUwObiKJFgEToqFvrd7NDm7c?= =?us-ascii?q?guBsYJ0LhOqHWyDrUiF5mrA9BjpQtUCLRfoPDw7Wb2XugGBEogytOudM/W75b7?= =?us-ascii?q?2f3qdVVPYZDZBWcv2YXdTYfetTJyksljoDI+a8fsDco6w/0l3WUWsTC7PI+0GG?= =?us-ascii?q?TE6KXvycwCrmXYcQv4gzoCoo4NPQnjRsHqTOJbmfoiCh8o+igCafo+3eWXEnY1?= =?us-ascii?q?Ypj+IaHGmB3B5AJXkaBNEXv0HtQqiAZ11L1HIvku9u1AUMeBltUnJwyH1ahvC9?= =?us-ascii?q?FdNFSVQMlmOhXOUGbExrDDM35UKK+QPyYdkcts3SRGJT7aUMRpQHLPkp6YjXP6?= =?us-ascii?q?0QzOwv3D14vCwwqz+dAE9FjgKZ76rQG7pxxr9F5Wk++/F7RUSPTC3CfWjJzYqm?= =?us-ascii?q?Ed5Ayjl0rXDiycXUorMlCLwPvIx9AVEXEQpqN9vd+nZHSmiy1wys7DihGzHLGy?= =?us-ascii?q?4U+DYGI2Q+c+9xy+Jq+ELTes3p9VKbt6VnrlCiTwmMFOzni9RwFsj12FDgOmFw?= =?us-ascii?q?ejKxGsUz8K5A?= X-IPAS-Result: =?us-ascii?q?A2HhBQA/zTVY/wHyM5BeGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgw0BAQEBAR+BShC7SyaII1MBAQEBAQEBAQIBAl8oQhIBgV4aghwCBAECJ?= =?us-ascii?q?BMUIAsDAwkBARcpCAgDAS0VEQ4LBRgEiEyvfj0qAostAQsBJI80EQFohHceBY9?= =?us-ascii?q?pimaRAAKBcIgsDIYHSZEtVV4XAhEMHoMxHIF7VIUGgQQNFweCEAEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 23 Nov 2016 17:11: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 uANHBhBa016249; Wed, 23 Nov 2016 12:11:43 -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 uANH8T5u048242 for ; Wed, 23 Nov 2016 12:08:29 -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 uANH8SAl015047; Wed, 23 Nov 2016 12:08:29 -0500 From: Stephen Smalley To: selinux@tycho.nsa.gov Subject: [PATCH 1/2] libsepol: do not write object_r types to policy file Date: Wed, 23 Nov 2016 12:11:28 -0500 Message-Id: <1479921089-11519-2-git-send-email-sds@tycho.nsa.gov> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1479921089-11519-1-git-send-email-sds@tycho.nsa.gov> References: <1479921089-11519-1-git-send-email-sds@tycho.nsa.gov> 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 Originally object_r's types bitmap was empty since we exempt object_r from the normal user-role and role-type checks. CIL however sets object_r's types to all types to avoid special case logic. However, the kernel does not load object_r types from the policy file; it predefines object_r and merely validates that the object_r definition in the policy has the expected value. Thus, the actual policy file and the /sys/fs/selinux/policy file were differing in their object_r entry. Fix this by not writing object_r's types to the policy file, since they are ignored by the kernel anyway. Signed-off-by: Stephen Smalley --- libsepol/src/write.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/libsepol/src/write.c b/libsepol/src/write.c index d87ea61..fbc6dad 100644 --- a/libsepol/src/write.c +++ b/libsepol/src/write.c @@ -1078,8 +1078,25 @@ static int role_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr) if (ebitmap_write(&role->dominates, fp)) return POLICYDB_ERROR; if (p->policy_type == POLICY_KERN) { - if (ebitmap_write(&role->types.types, fp)) - return POLICYDB_ERROR; + if (role->s.value == OBJECT_R_VAL) { + /* + * CIL populates object_r's types map + * rather than handling it as a special case. + * However, this creates an inconsistency with + * the kernel policy read from /sys/fs/selinux/policy + * because the kernel ignores everything except for + * object_r's value from the policy file. + * Make them consistent by writing an empty + * ebitmap instead. + */ + ebitmap_t empty; + ebitmap_init(&empty); + if (ebitmap_write(&empty, fp)) + return POLICYDB_ERROR; + } else { + if (ebitmap_write(&role->types.types, fp)) + return POLICYDB_ERROR; + } } else { if (type_set_write(&role->types, fp)) return POLICYDB_ERROR;