From patchwork Tue Nov 15 21:29:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Roberts, William C" X-Patchwork-Id: 9430513 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 ECCA160484 for ; Tue, 15 Nov 2016 21:29:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D956028CA1 for ; Tue, 15 Nov 2016 21:29:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CDD1728CA8; Tue, 15 Nov 2016 21:29:31 +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]) (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 F336928CA1 for ; Tue, 15 Nov 2016 21:29:30 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,496,1473120000"; d="scan'208";a="793242" IronPort-PHdr: =?us-ascii?q?9a23=3A2YK57xSjkfnFq6cDyf0HqwqYltpsv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa68ZxKFt8tkgFKBZ4jH8fUM07OQ6PG7HzVaqs/d7jgrS99lb1c9k8?= =?us-ascii?q?IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBo?= =?us-ascii?q?KevrB4Xck9q41/yo+53Ufg5EmCexbal8IRiyowjdrNQajZVtJqosxRbEo2ZDdv?= =?us-ascii?q?hLy29vOV+dhQv36N2q/J5k/SRQuvYh+NBFXK7nYak2TqFWASo/PWwt68LlqRfM?= =?us-ascii?q?TQ2U5nsBSWoWiQZHAxLE7B7hQJj8tDbxu/dn1ymbOc32Sq00WSin4qx2RhLklD?= =?us-ascii?q?sLOjgk+27ZkMxwiL9QrgynqRJx3oXYZJiZOOdicq/Ye94RWGhPUdtLVyFZAo2y?= =?us-ascii?q?cZYBAeQCM+hft4nwpUYCoBWxCgawC+3g1CRIi2Tq3aA4yektDRvL0BA+E98IrX?= =?us-ascii?q?/arM/1NKAXUe2twqjIzDHDb/dX2Tjn7YjEaAwureuWXbJ3asXe11MvFx/ejliL?= =?us-ascii?q?qIzlOS+V2foJs2SB8+VgUuevhmg6oA9yujii3togh4bGi44Pyl3I6D91zJg6KN?= =?us-ascii?q?GmUkJ3fMaoHIZUuiyZLYd6X8EvTmFytCs+zrAKo5C2cSgMxZ863RDQceaHfJKN?= =?us-ascii?q?4h/7UeaRJip3i2x9dbKkghay7VCgyurhVsmoyFpKrjRKkt3Ltn0Vyxzc8NKHSv?= =?us-ascii?q?pg/ke6wzqPywDS5f1EIUAzj6bbLYIuwqUsmZYJtETDHyv2lF33jK+QaEok5vCl?= =?us-ascii?q?5/nob7jpvJORN5J4hhvgPqkhhMCzG/k0PhALX2eB+OS80LPj/Vf+QLVPlvA2ib?= =?us-ascii?q?fWsJTbJcQdu664DBZZ3Z0k6xaiCTepzMoXnWIcIVJZeBOIk4jpO1bULPD+Fvew?= =?us-ascii?q?mU6gkDhsx/DYJrHhGInCLmDfkLf9erZw81VTxxE0wdBb5pJUEa0BIOnpVk/qqt?= =?us-ascii?q?PXEgU1MxeqzObjCdV90J4eWG2UD6CFMKLSq0KI5vk1L+iCfoAVpC39K/8j5/L0?= =?us-ascii?q?in85g1Add7Gz3ZQLcHC4AuhmI0KBbHXymtcOC30KvgslTOHxkF2NSyRTZ3epX6?= =?us-ascii?q?Ik4jE0Ep6pApnZSoCqmryB0z+xHodKaWBeFlCMDXDoep2KWvcNbCKSJ9FukiYf?= =?us-ascii?q?WLivVYAuyBautBXgxLp/NOrU/S8Yuoz/29hp/eHTkgsy9TNsBcSHz26NV310nn?= =?us-ascii?q?8PRzIu0qB/u1ZyylGf3qh5mPxVDtlT5+tIUgsjLp7dwfd6B8r1WgLbcdeDUEym?= =?us-ascii?q?Tcm+ATEtUtIxxMcDY0VnFNWhiRDDwjGnA7wPmLyIA5w077jQ33/rJ8Zy03zGzr?= =?us-ascii?q?Uuj0E6QstTMm2rnrRw+BXJB47IjUqZjb2ner4A0y7I7muDynCOvE5AWg5qTarF?= =?us-ascii?q?RWwfZlfRrdnh+kzNVbuuBqo8Mgtdyc+CLbBHasb1glVHWvjjPsjeY2OrlGuqAx?= =?us-ascii?q?aH2K+MZpLwe2oBxCXdFFQEkwcL8HaGKwc+AiOho2XFATxqCFLvf0Ts8exkp3+h?= =?us-ascii?q?SU801Q6KZVV717Wp4h4VmeCcS/QL07IftichsTJ0HE2h39/NENqAoQ1hfatZYd?= =?us-ascii?q?wn5ldLz2TZuBJhPpa4NaBtmkYecxhrv0Ppzxh2BJ9Pkcw2rHw01gpyMrmV0E1f?= =?us-ascii?q?eDOCxp/wJ7jXJnP1/BC1ZK7cwkve38qO+qcT9PQ4rE3uvB20GUU/8nVoyd1V3m?= =?us-ascii?q?CA6ZXNCQodTYj+Ul0r9xRgobHVfDU97ZvO1XJwKam0riPC29UxCesjyxage9Nf?= =?us-ascii?q?P72fFALpCcIVGdKuKOswl1iudBIEM/hY9LQoMMO+a/uGxKmrMf59kz28kWRI+p?= =?us-ascii?q?5y0kyD9idnVuHI34wKw+uE3gSZTTfwllGhvd7rmYpcfzEdAnK/yTT4BI5WfqBy?= =?us-ascii?q?Y4cLBnuyI82w3NVynYLiW35f9F6lCFMLw8upeRuUb1Pnxw1Q0l4boXu9mSu31z?= =?us-ascii?q?Z0iS0mrrKD3CzSxOTvbB4HOm9QRGl+lFvsOpa7j9QbXEiucggomwCo5V3ix6ha?= =?us-ascii?q?oqR/LnXcQVxScyjwMW5iTrO6tqCebM5X9JMorSJXXfymYVCdTr79pwUV0zn/EG?= =?us-ascii?q?tZyjE2bCqquojlkBxhkm6dK2xzrHXBc8Fq2Rjf/MDcReJW3jceXCl3kyTXBlym?= =?us-ascii?q?M9az59mbjJDDsuSiV2KmUJ1eaizrwZ+GtCu8+WJmGxu/kO6vmtf/Cwg1zTf718?= =?us-ascii?q?V2VSXPtBv8Z43r272kPuJhZURoGkHz685+Go5giIs8npcQ1mYGhp+N53oIjX/z?= =?us-ascii?q?MclH2aL5dHcNRiAEw9jO4AX+201sMHSJx5n/VnqD3sttfd66YnkZ2igl9cBFFL?= =?us-ascii?q?+U7KBYnStyule4tRjeYeV5njgD0fsh8ngag/0Xtwo31SidH6sSEldCPSz3jRiI?= =?us-ascii?q?9Ne+rLhNZGmzb7ew2k1+ncquDL6cuA1cXmj2eos6Fy9q8sp/KE7M0GH06oz8Zt?= =?us-ascii?q?nQa88cuwaKkxfGkudVKIg9lvwUiip7IWj9p2Eqy/YnjRxy2pG3pJCHJH9w/KK9?= =?us-ascii?q?GRNXKjz1Z98T+z30g6ZRhMCW05qoHpV7FTUBRIHoQu6wEDIOqfTnMB6DED48q3?= =?us-ascii?q?efB7XSBgqf6EBor3LBDZ+rK22XJHkezdVnWhaRPkpfjx4IXD8ihJ42ChiqxND9?= =?us-ascii?q?cEd+/j0R6ET3qh1QyuJvMhnySWnfqxm1ZTczUpiQNgJW7htF50fXL8OR8v5zEz?= =?us-ascii?q?tf/p27owyHMnabaBhQDWEVRkyEAEjuPrau5dbc6eiZBvK+L+fJYbiVr+xRSeuI?= =?us-ascii?q?xYmz3YR85zaDKN+DPn98AP0nwkBDR2x2G9zFmzUTTCwajz/Cb8iBqxqn5yJ3qN?= =?us-ascii?q?qw/O7sWAL16ouFE6FSPsl3+xCqnaeDMPadhDxkJjlFzZ4MynrIybcF0F4UlS5u?= =?us-ascii?q?ayGnEa4cui7VUKLQhqhXAgYBay9pOspE9ac80RNJOc7citL4zaR3geIwC1tfUl?= =?us-ascii?q?zhgM6pb9QQI26hLFPHGFqLNLOeKD3N2cH4e7u8SaVLgeVath2woy2bE1PtPjSC?= =?us-ascii?q?kTnmTRavPv1NjC6BOBxSooa9cgxiCWL7VtLpdgW7MMNrjT0x2bA7m2jKOnAGPj?= =?us-ascii?q?hzaUNCtKOQ4DhDgvplGGxB82BlIvOelyad8unYLIwZseFyDiRokOJa43Q7y7xP?= =?us-ascii?q?4CFCWvN1hDPYrsRyrFG+jumP1j1nXQJVpTZKi4KLukNiNL7E+ZZeQnnE/QgC7W?= =?us-ascii?q?OKBxQNvdtlBcXlu7pMxdjXiKLzNDBC/srO8ssTHcfUNtyIPWEmMRrxBjHUCg4F?= =?us-ascii?q?QiSqNWHbnENdl/6T+meSrpggpZjmgIAORaNDVFwpCvMaDVxoHMAFIJdyRD8ki7?= =?us-ascii?q?mbjc8W6nq4txbRXsJasY7EVv+JHfrvLzOZgqVeaBsT3bP0N4ITOZPn20Z6cFl1?= =?us-ascii?q?gJzKG1bMXdBKuiBhbhM0oEVK8Hh7VGIzwFnoagas4H8PD/67gAQ6igxkYeQi7D?= =?us-ascii?q?3s+Us4JkLWpCssl0k8gdPlji6Lfz71N6qwXoZWCzHot0crNJP7WAV1bQyokUxi?= =?us-ascii?q?KjjEW6pbj6F8emBzlA/cpZxPFOZGTaJaex8f2+uYZ+803lRcsSio3k5H5fHYBp?= =?us-ascii?q?tlmgsqaYSsoGxA2g55at46O7DQLrJTzldMnqKOojOo1ucpzQADPUkN7mKSdzMT?= =?us-ascii?q?uEETLLYmPTCo/uti6AyZhTRMZHUMV+ArovJ29kIxIeKAwDz807RbMEC+K/SfL7?= =?us-ascii?q?+Fu2jHjcOITEkw2V0VmEle57d219sjc02PV0001rSeCxEJOdDFKQFPYMpY7GLT?= =?us-ascii?q?cjqWseXR3ZJ1OJ2wFuTvTe+UqqkUhEOlHAEyEoQD6MQBA4Og0EbCLcfoNLQF0w?= =?us-ascii?q?ki5Bz3JFWZC/REYAmLnykDo8G+yp93wIZcKyoBDmV6NCW4+qzYphQ2gPaZWtc5?= =?us-ascii?q?fGsaVJMeNn0qQM26hzJZv3NYATaqzu0ZzQ+C7zngpijNFzT8ccRsZO2VZRJtD9?= =?us-ascii?q?G2/y8z866ohl7L6p/ePX31Ncx+ut/T7uMXv5WHC+lUTLZntUfch4lYSmelU27I?= =?us-ascii?q?Cd66O4L8a48yYtzoEny6SECwiyopT8ftO9agNrSIgQDtRYZTrImb3DAiONSgGT?= =?us-ascii?q?EfGxZ/vfoM6Lh6ZQIdf5oxeQTouBgmN6yjPAeY1c2jQ2m3KTRMSflf0f63Z71Q?= =?us-ascii?q?zysiaO+61HsgQY87z+mx7U4CWosKggvYxfm9e4lUSTLzFWBFewXTuSo5kHBsOf?= =?us-ascii?q?w2wuc+3BzHr0ETMzWLdexvb2xEucszCEiJLnV3EGU4QUaQjYTe4gK22bAd4Tdd?= =?us-ascii?q?lc5O0eJZqHj+ooPfYDW0VaOwt5rVtTEtYsI7rK1vL4PjONCGu4nEnj3fVpXQtR?= =?us-ascii?q?eFUCGiHfpAhtdQOD5YQOVPmWw9I8wGv4tB5lYxVsc5I7xPE7EiqKm3ZzR+ESMc?= =?us-ascii?q?yjQUWJ+H3DwHnuizwaDalguKfJQkLhMErI1IgsEBXC5ufiMeuKijWp3KmG+GUG?= =?us-ascii?q?cEPBwe4hhL5AIEko9wf/7q4JDUTJBS1zFWo+h4UizRFpln71H7UH2ZgUDkSPW9?= =?us-ascii?q?lOykxRhSw+j20tkcQxFyElRdx/xMmUs2Nr53L6gQvojFsj+MdEP6s2LtyPeoJF?= =?us-ascii?q?ZL083Uckf0DIzbumrgSicc42EbRZdTyHHDEpQfiwp4Z7wwpFpWJYCme0D+6icl?= =?us-ascii?q?x4R1Bba4TtykyEw/oXYAWSiqD8JLC/t6v1LPRD1lf5erpY3rOplIXmBQ+Jydq1?= =?us-ascii?q?JYkEp3MC600ptcJN9T7TESRjRPpi+dvNSqQs1ZxcB2F4MMIst4u3rlAKNEP5yR?= =?us-ascii?q?rGcsur3hzX/Z/z48vUy/xDW0HK+4VPxW8HEEGgUuPGSesUgvD+0j8mvI9VDNqF?= =?us-ascii?q?909f9BBreTlUVxvCp9HpdWCzlTz3ClMlJzQGNFs+hBKaTVcs1cQ+UpahO1PRwx?= =?us-ascii?q?C+Im1VST/U5ohXf5fzBytgxC9iDBWAk0UDIYgqvxlT0bsc6rIzkaRIxUbT85dS?= =?us-ascii?q?fKNxqbmTxLvBZYc0xqW4oWAsxf9LEfwIRZ5dfNRli0KSEdQhNiMhw30eBFmU5E?= =?us-ascii?q?qkWYdjjXDRC0evbXrh13YcCRodapLPT+4ghHhJ3osPoj+qUCWXKphxOiTcrZr4?= =?us-ascii?q?/mud2ArlGOe7vgM+2gfX/BSyDBjRK3hbg6FJTF4jbcMBFFJJlg1Xorf4XuBXTN?= =?us-ascii?q?PRtYO6IRP1BbWrxiadVavuBaYNdpd70H+aBxGh6KRA7jFYK0ofZaKVbTQCjRID?= =?us-ascii?q?+a8uyju47T66LSSfT4bMyW23nHW753Pot96TTjAbflz5JR+krs1fdx7U56TV/G?= =?us-ascii?q?Mz6fo9j/OgwL49SteVX4sp0vAzzWHI96kGDxyUFYa8oXXyqq/YwAyJNC9Hb/U/?= =?us-ascii?q?930lTove1J8Llk9JM37Kx3xseyOafSM+5VsUt9DhiTHAVq+Y0nAHJjSGBJfu8R?= =?us-ascii?q?NPDRcLwFjcD0te/4CbEY5QaI++xdddvHPVvOmte+CjGbTRxLghsBpSQdLguG2P?= =?us-ascii?q?6Pg7V0Rtq9pejlxkIt5ECzLhscw7Bp4YeL5LaIpPPNYBTL1rUEXLblRt/orrsw?= =?us-ascii?q?oUyS/eMrmKQIemNrfw2tCPIdWdIFxmf80aAqyjohE8HZELL6//5DTHY5kSj+m5?= =?us-ascii?q?1mGlUWB/cUHaaK/YtCn2c3gerZNsYMfqBFgGaPGgauEqUexn6z9yuXPG5ljwnM?= =?us-ascii?q?0x7qR2Oz4kX2rShlTiTS1NrjjlBaVr+sBUdVRSapP1F3sC+XNgryqNX3obg17F?= =?us-ascii?q?0xMmH8u9KNiWqhOLdTH8LhIdyROjQ7q0wMg50wXNOv35oXGd2nINce6Ht+dOfR?= =?us-ascii?q?63u3ky9dpKdKn4ze4sWO9/XWG3mgireWq7SLxDBW0Hg3p0o/6sy6NvHT+9KKX+?= =?us-ascii?q?mo13wPQCtlvAvBRRG1oKTBr18IIUyLzFvLmIsSM9Fc2nk40F3m5Oc9T98o8QVe?= =?us-ascii?q?F5zPZ/UcqjDvNjr0xkyfY9EsViWE1TtYAE71G0FiGKcgwGLwoN7JlXDI9l0sXY?= =?us-ascii?q?lwckzqiAd5D4omNE0t70IXzTAbEQgXbhCbDq+nClj5LYceUkgDcxuH1qCgeqgr?= =?us-ascii?q?xU1z3q+v5OjLYOx5A6oCKPNdjgmQk1hfAZ8WvrMRQLVne19F7qHXugniBJLjX/?= =?us-ascii?q?jnk3owKeO6QsRe8cAYuHst/AC/SAa+5ptZ6bYUloyIfLZeYZfQpMB881tn5TkX?= =?us-ascii?q?eyxWmhd/kQm2Ue8Cq+D4+dXbq4Cn6vi0W6YiWeoX7AI4B2JggJvsmFoju83Y1/?= =?us-ascii?q?9ASo3JjoTy6AJNI3+PuIvB1hlzN+oPJJyxfLZh8XUHKDISJ3QQMtqKc/M8+TNi?= =?us-ascii?q?MC3P51xeBcMBfdIYPcvXlg9OlkLkQ6pT+dTHGlCGF4h/bcco73D4yDot65szTv?= =?us-ascii?q?7g6COqJZDY91xCJPJDjD5ild3YpugVwObSCDAN7nmEbxh42T+Ny56QBPnu5+qM?= =?us-ascii?q?1cvUV1QcHiEsSYtdIyCC+QO/TOqviJrpSh+U6tP0gJ8mbEKfXGCxk7gFsqdCFu?= =?us-ascii?q?5AkCb70iFFFo/rg/KVstys6HZYt1BcCIZ89wHFF7lfPpR1PhT4jMqrSlJ/BiTh?= =?us-ascii?q?YsHUcAQhuO6MyucL+eV+OFP0ZZUHLRIc17L69X1VQxNySL7soFmZWfgeZN14R/?= =?us-ascii?q?7fs39V6I1gK64TPFeHv5zltC1IqE0sDA8vdrAwsiRQdlPSkw1NR6b0pLkAhxMT?= =?us-ascii?q?UdFjo09DB36wOGIl6jrDVKRVkLeeCPwP/TWOVawCSUNoPT1iQxmtwpVhZ6Opne?= =?us-ascii?q?xbsmNBhi59r+Yl0zp6RBu7vi3goLkN1iwk+LG5sjUBpHNEQ/6akyjWE1VCzO4F?= =?us-ascii?q?gb0aC3n89Vy2eGMDY5fq4Ll7OcTg8pEs43I+YRo/eC0GWf6vCzrqg6OJBYyPt8?= =?us-ascii?q?lchAWWtcXLYrKyIjIeNrMnyRLsX3J9yBTRnA508GsXRTWt9NAkK5mmOcY+3yam?= =?us-ascii?q?BGfVelAN4qNPrcvwukUGTOQzaVx7xmVszNKLRioXRMzAA2w1lBQraX1YcJJf7h?= =?us-ascii?q?8XD6sogjGIvqlA5A0bfDfUEoC4+obNnMbI2H89TcxpxmLXvaCFmJIq0GN/lNNw?= =?us-ascii?q?8yGOuW4ed+rGXM9wGnLzzJtQyfTiZ/WxteAKUIpmyKq7X/8EKcSj/Xa214hrWk?= =?us-ascii?q?+i3bQSBV25MPUMxr3DSSeqVXWYWfiXc2iLhzs5MFD95RemLl0zc8pLoVUyMu3c?= =?us-ascii?q?iZ5AjQHhV617RjmIr1/B0GMjKf8adx4xuIq/dAwKSOkRZuaCKugqxP0zE0AMb3?= =?us-ascii?q?jPHSt3F+C6q1itk5ZnO394+0X1ffzt8hz6MNuVAhQEE47ar55p+fy9QmKBOGNg?= =?us-ascii?q?wwNpMUlx9uffC04xufFGf5aWh9jQiMxx0fQZePd1LS09ptkTl5p/6YmV1ceHag?= =?us-ascii?q?3RzpfuKtHWvPeYB+fTz0I0dWFGSrAZex/6550mPt4lXL3eBb5ZvRUfBag5R5ws?= =?us-ascii?q?LGXx+7t3LAN0dA7eerK0jtPspu2Veptev2XW4U4oLCfApx0DzeS5QhdlYJCsm3?= =?us-ascii?q?X/O4swRjZGr91xFhtmApVAFN4aowqgGZ6Ul7mxi8Wt9ENip+8Kra3wB+jE1Nun?= =?us-ascii?q?24VxXoBa6lKQMTfQBalrh0FlgfqogvfEzJb9E8TieckLVOJjWG7KdqfGHpmjKj?= =?us-ascii?q?KJIs/9dVZG86Sd0L1lTBqcfyX5X6uatC2+Kvpo+0I7ypZ3fODL1jwi86nb2Mfu?= =?us-ascii?q?Z2FcviqjqnqJO4VE4VzSAezRRQlUSeaE8Gl5Aa0Xd5X7+/kUPdwk3tec/xF57C?= =?us-ascii?q?5e38udP6ihskjM11p/dZLaKkvpxik4VZAOIBS+KkssnXTZp2/cAXtGKMikLtNh?= =?us-ascii?q?gNGPDhzi/0Nxg30iZnZdGmr0QtecIXMb1Ny6ZA2L8gJLEtkCk+m4d04ktq29V/?= =?us-ascii?q?NoNYtdmeqwr7gHkshmKzvJRMdEOyHfN6J2PjVLAuXIvlgobQYOs6IpVYcteZiO?= =?us-ascii?q?PEQHPV+EySPz1gvCzVb5dt211KaPOika6HNHwKzZ0TJUvQm2pe6ZgtH/ULDedJ?= =?us-ascii?q?z2WeTdPzYlVjGbQzQyFl2k+Umlu/oCovWYJWYfolYJYiOdEgITobpvrdfIBG/J?= =?us-ascii?q?heJjZIEKhOydWy3oSi13jqkyBiFQuk2XXvoDExXWb3/mgGpBtwyiJuNM8Wjjb7?= =?us-ascii?q?KG2qpfQ/YWDZdUcv2FX9vYfuhTJzgymToCIua8fsPTr7Ii31LWSWsWCbLI9FyD?= =?us-ascii?q?TEKMRPyT2S7rV50Pv4cooioo5s7QnihvHqTKOrafoCSu8pS5jCaDouDeUHMiY0?= =?us-ascii?q?krj+IDGmWBxwNAKG4cAdEPpE7tWrKAZ1pL1H8xl+1u2RgMeAR1Un111X1Wmu2w?= =?us-ascii?q?GsJDSV4JkmOhXucGYEpxDDwu4U+A+hfybsAYucDPW29e8aMBSZETLPkt9IbaOa?= =?us-ascii?q?gdze033D14uiw6siScD1Rbjg6f9arfAr58zKVY5WYk5/F2Ql2PQzTHf2jFzYqm?= =?us-ascii?q?DcZPyDxroX/6ysXUsOdtNKFGqI5nGlsKBzx5JsyOtQxGBHr4wyOurh27G3KYOz?= =?us-ascii?q?tf7zEVYWQDcOVdwOh8vxLFMN3G7AfYrK8lqU22GS6XG7G039pNEciv2gKmOgdR?= =?us-ascii?q?djD+CJFyrvdEkZAZJ7kgb4WkH0vpLw7iAwbesCcJp0uimaiiEccfmjZWqa4rMt?= =?us-ascii?q?y8GtBSAA=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2H+AAC5fStY/wHyM5BdHAEBBAEBCgEBFwEBBAEBCgEBgww?= =?us-ascii?q?BAQEBAR+BWLpUBVEmiCxTAQEBAQEBAQECAQJfKIIzGoIcAiQTFCAOAwkCFwghC?= =?us-ascii?q?AgDAS0VGAcLBRgEiEuzQz0qAos+ASSIQYZvEQGFfQWPXIplkGICihaGCpFRVTc?= =?us-ascii?q?jRoU9UQGFbIItAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 15 Nov 2016 21:29:28 +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 uAFLTBA5005482; Tue, 15 Nov 2016 16:29:17 -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 uAFLTA2L120901 for ; Tue, 15 Nov 2016 16:29:10 -0500 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 uAFLTAb4005475; Tue, 15 Nov 2016 16:29:10 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1DlAAAEfStY/yNjr8ZdGwEBAQMBAQEJAQEBgzcBAQEBAR+BWLcdgzcFWhiGC4ImUwECAQEBAQECYoU3UjCBDxKIbLNHPYteATCIQYx+BY9cimWQYgKQIJFRVTeGJh00AYgZAQEB X-IPAS-Result: A1DlAAAEfStY/yNjr8ZdGwEBAQMBAQEJAQEBgzcBAQEBAR+BWLcdgzcFWhiGC4ImUwECAQEBAQECYoU3UjCBDxKIbLNHPYteATCIQYx+BY9cimWQYgKQIJFRVTeGJh00AYgZAQEB X-IronPort-AV: E=Sophos;i="5.31,496,1473134400"; d="scan'208";a="5825960" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 15 Nov 2016 16:29:11 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3ADkKLJhcPDEvjc017+9Kv4ZrylGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcS4ZR7h7PlgxGXEQZ/co6odzbGH6Oa5AydZvcjJmUtBWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6?= =?us-ascii?q?OPn+FJLMgMSrzeCy/IDYbxlViDanb75/KBu7oR/MusUIjoduN6k8xxrUqXZUZu?= =?us-ascii?q?pawn9lK0iOlBjm/Mew+5Bj8yVUu/0/8sNLTLv3caclQ7FGFToqK2866tHluhnF?= =?us-ascii?q?VguP+2ATUn4KnRpSAgjK9w/1U5HsuSbnrOV92S2aPcrrTbAoXDmp8qlmRAP0hC?= =?us-ascii?q?oBKjU063/chNBug61HoRKhvx1/zJDSYIGJL/p1Y6fRccoHSWZdQspdUipMCZ6+?= =?us-ascii?q?YYQSFeoMJeZWoZfgqVUArhWwAhKhCP/zxjJSmnP7x7E23/gnHArb3AIgBdUOsH?= =?us-ascii?q?HModT7NacSVeS1zKjSwjXGdf9ZxS3x6JLPch86v/6MR65wcdHKxEkuEQPFkkuf?= =?us-ascii?q?qYj/MzyJ0eQNtm6W5PdjW+K3k2MrtgV8rzu1yssxiITEhpgZx1TA+Cljzos4Jd?= =?us-ascii?q?u1Q1Nhb9G+CptfrSSaOpN2Qsw8R2Fovz43yrMDuZ6geSgKx44oywLDZ/CZaoSI?= =?us-ascii?q?4w7sW/qLLTd2gXJpYrO/hxCu8Ue+zu3wTNW70FFPriZdk9nMsG4C1wDL58SaTv?= =?us-ascii?q?Zw/V2t1SuN2g3T8O1JJUQ5mbDVJpMh2rIwk4AcsUXHHi/4gkX2i6qWe10q++ip?= =?us-ascii?q?7+TnZrTmqYWZN4Nulg7yKL4umsukDusmKAgOQ3Ob9P+91L3l4U32XrFKgucqna?= =?us-ascii?q?netZDWPd4bqbKhAw9JzoYj7A6yDyy739QDhnQHMFJEdw6Hj4juIV3OJuv4Au2l?= =?us-ascii?q?j1Sjlzdr2ejMPqf9DZXVMnjDjLDhcK5m60FCzAozzNZf549bC7waPPLyWlP+tN?= =?us-ascii?q?zfDhMjNQy02PzoBM9y1oMZR2LcSpOeZbjeqneU9+kvJK+Kf4ZTtzHjb7Aj4f3G?= =?us-ascii?q?gng+llsQO6Ku2N9fc328H/J7M22FcHHshZEHCm5MsQ0gH8Lwj1jXTj9XY3e7Wu?= =?us-ascii?q?Q3oCs8Ao+8EZzrR4axjbjH1yC+Tc4eXXxPFl3ZSSSgTI6DQfpZLXvKesI=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0HhAAC5fStY/yNjr8ZdGwEBAQMBAQEJA?= =?us-ascii?q?QEBFgEBAQMBAQEJAQEBgwwBAQEBAR+BWLcdgzcFWhiGC4ImUwEBAQEBAQEBAgE?= =?us-ascii?q?CXyiCMxoBgkFSMIEPEohss0M9i14BCyWIQYx+BY9cimWQYgKQIJFRVTeGJh00A?= =?us-ascii?q?YgZAQEB?= X-IPAS-Result: =?us-ascii?q?A0HhAAC5fStY/yNjr8ZdGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwwBAQEBAR+BWLcdgzcFWhiGC4ImUwEBAQEBAQEBAgECXyiCMxoBgkFSM?= =?us-ascii?q?IEPEohss0M9i14BCyWIQYx+BY9cimWQYgKQIJFRVTeGJh00AYgZAQEB?= X-IronPort-AV: E=Sophos;i="5.31,496,1473120000"; d="scan'208";a="793231" Received: from fmsmga002-icc.fm.intel.com ([198.175.99.35]) by emsm-gh1-uea11.nsa.gov with ESMTP; 15 Nov 2016 21:29:09 +0000 Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga002-icc.fm.intel.com with ESMTP; 15 Nov 2016 13:29:09 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,496,1473145200"; d="scan'208";a="31662661" Received: from clpowell-mobl3.amr.corp.intel.com (HELO wcrobert-MOBL1.amr.corp.intel.com) ([10.254.74.236]) by orsmga005.jf.intel.com with ESMTP; 15 Nov 2016 13:29:08 -0800 From: william.c.roberts@intel.com To: sds@tycho.nsa.gov, nnk@google.com, selinux@tycho.nsa.gov Subject: [PATCH take2 v3] libsepol: fix checkpolicy dontaudit compiler bug Date: Tue, 15 Nov 2016 13:29:05 -0800 Message-Id: <1479245345-18119-1-git-send-email-william.c.roberts@intel.com> 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: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP From: William Roberts The combining logic for dontaudit rules was wrong, causing a dontaudit A B:C *; rule to be clobbered by a dontaudit A B:C p; rule. This is a reimplementation of 6201bb5e2 that avoids the cumbersome pointer assignments on alloced. Reported-by: Nick Kralevich Signed-off-by: William Roberts --- libsepol/src/expand.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/libsepol/src/expand.c b/libsepol/src/expand.c index 004a029..5a04c25 100644 --- a/libsepol/src/expand.c +++ b/libsepol/src/expand.c @@ -1604,7 +1604,8 @@ static int expand_range_trans(expand_state_t * state, static avtab_ptr_t find_avtab_node(sepol_handle_t * handle, avtab_t * avtab, avtab_key_t * key, cond_av_list_t ** cond, - av_extended_perms_t *xperms) + av_extended_perms_t *xperms, + uint32_t specified) { avtab_ptr_t node; avtab_datum_t avdatum; @@ -1640,6 +1641,11 @@ static avtab_ptr_t find_avtab_node(sepol_handle_t * handle, if (!node) { memset(&avdatum, 0, sizeof avdatum); + /* + * AUDITDENY, aka DONTAUDIT, is &= assigned, versus != for others. + * Initialize data accordingly. + */ + avdatum.data = (specified == AVRULE_AUDITDENY) ? ~0 : 0; /* this is used to get the node - insertion is actually unique */ node = avtab_insert_nonunique(avtab, key, &avdatum); if (!node) { @@ -1750,7 +1756,7 @@ static int expand_terule_helper(sepol_handle_t * handle, return EXPAND_RULE_CONFLICT; } - node = find_avtab_node(handle, avtab, &avkey, cond, NULL); + node = find_avtab_node(handle, avtab, &avkey, cond, NULL, 0); if (!node) return -1; if (enabled) { @@ -1824,7 +1830,8 @@ static int expand_avrule_helper(sepol_handle_t * handle, avkey.target_class = cur->tclass; avkey.specified = spec; - node = find_avtab_node(handle, avtab, &avkey, cond, extended_perms); + node = find_avtab_node(handle, avtab, &avkey, cond, + extended_perms, specified); if (!node) return EXPAND_RULE_ERROR; if (enabled) { @@ -1850,10 +1857,7 @@ static int expand_avrule_helper(sepol_handle_t * handle, */ avdatump->data &= cur->data; } else if (specified & AVRULE_DONTAUDIT) { - if (avdatump->data) - avdatump->data &= ~cur->data; - else - avdatump->data = ~cur->data; + avdatump->data &= ~cur->data; } else if (specified & AVRULE_XPERMS) { xperms = avdatump->xperms; if (!xperms) {