From patchwork Tue Nov 15 21:42:36 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: 9430527 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 0450B60469 for ; Tue, 15 Nov 2016 21:43:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E419A285D1 for ; Tue, 15 Nov 2016 21:43:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D836E2891A; Tue, 15 Nov 2016 21:43: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.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 D95CC285D1 for ; Tue, 15 Nov 2016 21:43:17 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,496,1473120000"; d="scan'208";a="793700" IronPort-PHdr: =?us-ascii?q?9a23=3AXb3OMBxebb+xrd/XCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1ekQKPad9pjvdHbS+e9qxAeQG96KsLQd0aGP7/GocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDSwbalvIBmoogndq8YbjI9/Iast1xXFpWdFdf?= =?us-ascii?q?5Lzm1yP1KTmBj85sa0/JF99ilbpuws+c1dX6jkZqo0VbNXAigoPGAz/83rqALM?= =?us-ascii?q?TRCT6XsGU2UZiQRHDg7Y5xznRJjxsy/6tu1g2CmGOMD9UL45VSi+46ptVRTnhj?= =?us-ascii?q?0HNzok+2/JjMJ+gr9QrBa4qxBi34LYZYeYP+d8cKzAZ9MXXWpPUNhMWSJPAY2y?= =?us-ascii?q?aJMPAugcMetWoIbyu1QAogWlBQS3GOPiyCVFimPs0KEmzegsFxzN0gw6H9IJtX?= =?us-ascii?q?TZtNv0NKYWUeCxzanH1zDDY+lK1jvn8ojIdQsuru+WXbJsasrc0kgvFwXZjlqO?= =?us-ascii?q?rYzpJS+a1uMIs2Wd8uFuVvqvhnY6pwx+rTWj3MchhpTTio4LxV3I6z91zJstKd?= =?us-ascii?q?GlTEN2YsSoHIZSuiyaLYd7RscvT3tmtSs6zLANpIS1czIQyJs9wh7Sc/mHc4+V?= =?us-ascii?q?7R39TOuROjJ4hG59eLK4mhay7VCsyu3iWcmw11ZHtjZFncPWtnAMyhzT8dKLSu?= =?us-ascii?q?d9/0i92TaP0Brf6udYLkAviaXXMZshwr80lpYLsETDGDH5mFnugaOLeUgp9fKk?= =?us-ascii?q?5uT6brn8uJOROJF4hhvjPqg2n8ywG+U4MgwAX2iB/uS80aXu/VbnT7VOj/02lL?= =?us-ascii?q?TZsZ/DKcsAoa65HglV3Zo95BakFDqmzNQZkmUHLFJCYh6HiZPpNEvULPD3Cve/?= =?us-ascii?q?nUygkC13yPDeIr3hHpLNI2Ddn7f5Z7l98U9cyBEowNBH/Z1UELABIOnrWk/1rt?= =?us-ascii?q?PXEgE2Pxazw+b9B9V3zpkeVn6XAq+FLKPStkeF5+wuI+mIYY8apiz9JuMr5/Hw?= =?us-ascii?q?kHA5nkUdcrOx3ZsNb3C4HOppLFmFYXb2hdcBC2gKtBIkTOP2kF2CTSJTZ3GqUq?= =?us-ascii?q?Iy/DE0EoSmApvCRoC2m7GB2T+7HpxPamBdBFGMCm3kd4KeW/cDcCiSONNukiQY?= =?us-ascii?q?Vbi9TI8szRKuuxX5y7pgM+rZ4S4Yuojg1Nhy+u3fjxYy9SZ7D86FyWGCU3l0nn?= =?us-ascii?q?8URz8xxK1wu1Fyyk2C0admmfxVDsZc6O9MUgsgMp7c1eN6AcjoWg3dZteJVEqm?= =?us-ascii?q?QtK+DD4tVN0xx8EBY11hG9SiiRDOxDGqDKMUl7OVApw07qPc0GLrK8Z71XnGyL?= =?us-ascii?q?Erj0M6TctXKW2mmql/+hDTB4HXl0WZk6GqeL8Y3C7Q6GeDym+Os1tCXA53S6XF?= =?us-ascii?q?UmgVZlHKotTh+kPCU7iuBKw8MgtP086CLbBKasHygFVdQvfjP9rfY2erlGe2Hx?= =?us-ascii?q?qIwK2DbJbycWUHwCrdEFQEkxwU/XueOwkxHCOho37AAzx0DlLieF3s/vdkqHyg?= =?us-ascii?q?U080yhuGb0p717q64hQVn+CTS+sP3rIYvycssyl0E0ug0NLXEdWAoxFsc7lbYd?= =?us-ascii?q?M4/FhIz3nZtxBnMpymMa9imkYUcx5rsEP2yxV3FoJAnNAsrHMryApyLbyX0Eha?= =?us-ascii?q?ejyCw5/wILrXJnP1/BC1ZK7cwkve38qO+qcT9PQ4rE3usxyzGUo+6XpozddV0n?= =?us-ascii?q?SH65rWDAodS4jxUlop+Bhgvb3aZDcy55/M3312Laa0qiPC284uBOY91BagfstQ?= =?us-ascii?q?ML+DFA/oCcEVG8iuKOssm1imdR8EOOFS9KguMMO8cPuKwqmrPPxvnDi+l2RI/J?= =?us-ascii?q?h90l6Q9yp7UuPI25cFw+qE3geeTDfzklOhssHxmYBZajAfBXG/yTDlBI5XZ619?= =?us-ascii?q?YZ0LBX2oI8Kp2tV0n4TtVGJA9F6/G1MG39ekeQCVb1z52Q1fy14XrmCgmSq21D?= =?us-ascii?q?F0iCwpobaE3CDUxOTibhUHMHZRRGZ+lVfsPZS0j9cCUUiwdQcpiR+l6VzgyKRB?= =?us-ascii?q?v6t/KG3TQVtPfyjwNGxiV7e8tryFY8FT8p8otztYUPika1CAVrH9uwca0z/kH2?= =?us-ascii?q?ZGwTA7cyimtYv/nxFhlmKSMnJzrH7HdsFq3xvf4sLTReJJ1DocWCZ4kSXXBkS7?= =?us-ascii?q?P9Sx/tWbiZHDsvulWmKiSJJTdzLrzYWeuyun/2FqBge/n/+rkN39DQc6yTP718?= =?us-ascii?q?VtVSjQtBbzeJTr16CkPuJ/ZEZoAkP85NRgGoxlj4swn48f2WIBhpmP5noHlnrz?= =?us-ascii?q?Mc9H1q3gYnoNQiQLw9HL7wT/3k1sMG6JzZrjVnqB2sthe8W6YmQO1yIj6cBFFb?= =?us-ascii?q?yZ7KJCnSRoolq0twTRbuZhnj0F0/sh9GYag/0VuAoq1iidGqodHVRcPSH3ixuI?= =?us-ascii?q?7sy+raVOaGaha7ew0lBynde7DLGNugtcQmr2eo8+HS9s6cVyKFHM0X336o76Y9?= =?us-ascii?q?TQaNUTthOakxjek+hVNJIxlv0PhSV5I279u2Mqy/Ijhxx0wZ66pJSHK3lq/K+h?= =?us-ascii?q?DB5XLDv1Z98U+jHolqtekNiZ0J2oHpV7ADoLRIHoTfWqED0MqfvnKxyCEDomqn?= =?us-ascii?q?eUAbDfBxOQ6F96r3LTFJCmL36XJHkFwtV4RBidPFBfgAcPUTU8gJE5Chuqy9D7?= =?us-ascii?q?f0dh+D8d/Fj4pQVQyuhwLRnwTn/fpBu0ajczUJWQMRxW4RtZ6kjIN8yR9Ph/Hy?= =?us-ascii?q?ZC/p2utAaNMHCUZxxUDWEVXUyJH0rjMaSz6tTb/OiYA+W/I+HIYbqQtexUT+2I?= =?us-ascii?q?yo630ot64zaMMd2CPmN4A/w1wEZDWGp2G8DemzQPUCEYjT7Cb8uBqBe74C13od?= =?us-ascii?q?i18O73VwL3+YuPF7xSPM1p+xCsm6iDL/aQiT13KTZZzJMM3mPIyLYe3F4UkS5u?= =?us-ascii?q?cSWiEbUaui7JVq7QnbVXDxEDYSNpKMRI97483hVKOcPDl9z1zaB3geQ6C1dfT1?= =?us-ascii?q?PhhNqkZdcQLGG+KVPHHlyEOK6CJT3WxcH4e7m8RaRMjOVTtB2xuTGbH1XlPjud?= =?us-ascii?q?iznjTwqvPv1UjCGHIBxev5mwfQ1sCWjsS9LmbAa2P8JpgjItwL07nHXKOXQbMT?= =?us-ascii?q?hmfENHtqeQ4j9AgvVjB2xB6WJoIvOLmymD8enXNI0bsfxzAitqkeJa5W41y7pR?= =?us-ascii?q?7C5fQ/x0lzHertl0o1GpiuOP0CZoUAJSqjZXg4KGpVliOaLc9pVaQ3bE+xMM4n?= =?us-ascii?q?uWCxsRvdtlDcPgu6NLx9fTk6LzLStN/MjP/csAHcTULtyIMGY5OxrzBDHUFBcF?= =?us-ascii?q?TSKsNWzHh0xdjPGS9nqQrpcgsZjhg58OSr5HVFwvCPwWEENlHMYNIJ1vRDMrja?= =?us-ascii?q?abjNIU5Xq5tBTRQttVsYrDVv+JAvXvLy2ZjaVeaBsO2rP4LoUTOpf920N8dllw?= =?us-ascii?q?hJ7KFFbIXdBRvi1haRc5oF9T/3hlUGI8wVjlZR+t4HIIDvG0nwQ2hRZ5YeQj7D?= =?us-ascii?q?fs+Uk4J1rQqCs2jkYxhc3vgSqNfz7pMKewQYZWBjLpuEcrLJP7Qht6bRapkEN+?= =?us-ascii?q?LjfEXbVRjrV7dW91lADcpIFPGf9ATaxEehMQw++YZ+kw21RGtiqn3VNH5ffCCZ?= =?us-ascii?q?Z6mgsqa4CjoG9b2w15at41OavQJLFSw1dKmq2OuzWk1ucrwA8RP0wN6n+deDYU?= =?us-ascii?q?uEwUMbkrPy6o/ut26QOcnTtCeW8MWuElovJs60MxIeOAzzjv07RbMEC+K/SfL7?= =?us-ascii?q?+Fu2jHjcOIWU0/1kcJl0lD4Lh33twufFaTV0Aq0LSeDQ8JNdbYJQFTccVS6GDZ?= =?us-ascii?q?fTySvuXV3ZJ1I4K9G/j1QuCSsaYUhUSkHBo0E4kX8MQOAIOs0EDZLMfgKr4J0x?= =?us-ascii?q?Mt6xr3JF+dFvRGZAqLkCsbo8G41JJ33pNdJzEHDmV7LSW35q3apgAtgPqbQNg6?= =?us-ascii?q?eHEaUZUYNnguQs21hzZZv2hcDDmwyu8Z1AmC7zr7piTMDDn9b8Fua+qVZRJsEt?= =?us-ascii?q?654i8z866ohl7L6p/ePX31Ncx+ut/T7uMXv5mHC+lOQrl7r0fRgIhYR3ukUm7J?= =?us-ascii?q?Dd61J4b/a4gqbdzoFHm6SEazizQrQMftJNytNLSHgRn0RYZIt4mWxCosNcu8Fj?= =?us-ascii?q?4CBRh/v+QD5aJ6ZQ0EZZo0ewXluB8/N6OlJgeUy9uuQ3u3JTtQUfZf0f2wZ6ZL?= =?us-ascii?q?wCo0cu+61HwgQ4khwOap904AX4sFgQzAxfm9fYleSjL8GmZdegnVoio5jWdhPP?= =?us-ascii?q?4owugj2BPIrUUcMzeTeexzbmxEvs0zBVOVIXVyEWo2X0aSg5fZ7AOw2L4f5DdS?= =?us-ascii?q?n9FR0eJZqnf+pYPfbCiqWKO1tZXfqzAgYsQ+o61tLYzjJdOLu4/cnjPFUJbdqR?= =?us-ascii?q?GKUCm+F/pem9hfPjhYQOVWlm45OcwKo41B6VA+Vs0mPbxAFLEspqy2aTpjFSMS?= =?us-ascii?q?1zUWV5mH3DMZmeq8x6HamQ2OcJs8NBwEsZNCgtQZUy53bSMepLOjV4vMmG+eT2?= =?us-ascii?q?gHOgET4hpQ5AgYjI9/Yvjl4JbUTJ9L0zNXo+h7UjDRGZlt9lv7THqbgVnkSPq7?= =?us-ascii?q?iOymwRhdwOjq0tYFRB51EVJdyPpOlks0NLF3LLEdv4DQvjCUdUP6vWftyOq8K1?= =?us-ascii?q?lS0sDUdkP3A5TbumbmVS0c43IUT5dVyH7DDZQSjxZ5aKEzqVVUJ4Cmflzx5yYq?= =?us-ascii?q?xoRuG7m4W9umx1MirXYBXCelDcZOC/thsFLMQz1lYparqJr/N5VVWG9Q94WXq0?= =?us-ascii?q?1Fn0V1Ly651Z1cJtlX7T4WQThPpy+RvNipRc1C2M92DoMMLcxlt3f7BqxEJICb?= =?us-ascii?q?o2cqtbz31n/Z5zc8vU+mxDW0Hq+1VP5Z83EbGgoyPWierFcgD/c0+GfI7l/Nqk?= =?us-ascii?q?x0//tcBrWXjUV+uix9EYpKBjlUzn2qMkp8TGFes+pELKTabdZcT+M1ZR+1NBw0?= =?us-ascii?q?DeQm0FCR/UFogXf5ZDR/tgtd+y/DUQk7SzMVj6zsmTIAtM6oJyUWS5VSbTUudy?= =?us-ascii?q?3FMR6UmThLvBZDbEFnQ5IZAtFb9LwAwIRb4NHCRli2KSEZQhNtKxg00fxBmk5f?= =?us-ascii?q?qE+YYzzSDRK0dfbTtR16ZdyerMC1I/jl/gpLl43qvfsk+KUEQn2phReiQcvCr4?= =?us-ascii?q?PmsN2FqFeOfr/iM+KgeX/BUCTMjReoiLc+EZbF4ijTPxBHK5RhzXokZobhBnDV?= =?us-ascii?q?MRtaIKIUOlRUWbp8adpYvuBQf9Vkd7oR+a9xGhKHQQviGJS0rPlaNFncWCjeIj?= =?us-ascii?q?6a8uy4vILT96DSRvbmZsyQ3XbIWaZ3Mo196TnhFLfgyZVe9Vbu2vdx6kN6TkDL?= =?us-ascii?q?MzybrNv/OAwE+dKvdlbmvp01BzPZGolwkHvqxkFEacUXXzem8JMCyJNW8HzwU/?= =?us-ascii?q?530lDvsO1O8Llp8Yw37KptycewO6jSNehavlV9DRWPAAVl6IktAHNjSG9Leu8e?= =?us-ascii?q?Nu3dfaIHgsDys+r3DbAY6AWJ++xFbtvKP0PBldOlCjGbUhxEmB0OqSABIwuZyv?= =?us-ascii?q?6Fn7N0Sce5quj4wE0t5UO+IgQBzLB36oeO4rCIq/PPbxvN0bgEXbDnRsHpobQq?= =?us-ascii?q?tUOS//okm6MQdWFufw2oCu4dVtUaxmv6y6Al0z4sGdvZH7384P5DS245njX4lp?= =?us-ascii?q?ByAlUWG/cUHb6V8oRbhWo3hvLWOcYXcq9YnGaDDxmkEqUNyXSz8SuYPHFlgg3S?= =?us-ascii?q?0xH3WW6z6lv2oDR5QSvKytfviEtVVr+5BUdIRSWpIlN4sCmSPAX0qNr3pL4141?= =?us-ascii?q?8sPmzjrtKNm3OrOKlLEM3nONycPS40qUoSjJ02QNyvxY8bFsSmLdcU8XFxdP3e?= =?us-ascii?q?5H23ky5PpKdHnYne4tqP9vXRA3agk7WQq6+RyzBA1ng4oVY/58ikNvHV4t2HQ+?= =?us-ascii?q?+l12gPQChivAvBRQS6qqTBr1ATO0yEzlvEmJAQMtFex3k42Vns5PI/T9Ir6AVe?= =?us-ascii?q?CoHAausHpTD3JjT0xFGfbMwzViSF3DtYAFX1EUJgGKcmxGLwvdjGlXPR+10uWo?= =?us-ascii?q?l/aUjnhRh2D4U3N00t7kQYzTQZHQgLdx+bEKmiBV75IoscSUgDdROH0aCheqgt?= =?us-ascii?q?w0182Lyv6/HIbeFnHKoCLOhdgRSBnFdFAZIaq6seT6xge1VF7q7YuhDiC5T7X/?= =?us-ascii?q?jhjXcwN/y1QsVB/MAcqXQj4hiwRwCh6ZdF4LYXkpaIebBYYZLUpsBz819n5SIT?= =?us-ascii?q?dixKmBV/jhK4XvoGq+//+dXbq4Sn6vqwW6kxXekX8AI0B2tmhZvqnF8juc3X1/?= =?us-ascii?q?tbSoDNkov/8RtNInCQt4bY0hl8NfIOJJi2fLZk7HgIOy8eKG8QMtWMdvk8+Sht?= =?us-ascii?q?MC/J6FBYBcMMf9wYNtLXmQ9Ikk3pRK1T9s3DF1+AEYhza9wn72r5yTAy65s8Uf?= =?us-ascii?q?/s6CSoKpDb7lFNOe5DjSp3mdLavucV3ebdCCgZ4HmecRh1wTmOy5qTBPbq++WD?= =?us-ascii?q?1tXUW0kBHi4sXIdXPCCC9hC/RuqpiJXpVRuZ6tPpgJ0gcEKfXHqxk7oev6lREO?= =?us-ascii?q?5AhST73iREGYDunf2Vqces5HFRtlJZDIZ59QfFF7lHPpVnJRT4kdGmRkdmCSvl?= =?us-ascii?q?Zs7UahoutfGSxucN/+VxKUv+apUGIhIf0b7672RaThd2Qr7solmZRf4RZMdhSP?= =?us-ascii?q?7coXBa94RgK7MIPFiao5DqtSlHqFQ3AA8vdb8xoSdXdk3Qkw1PW6f7oqQMig0C?= =?us-ascii?q?Xt5loUVMA36/OHoi5zrbUqRYlK+RCP0J/TWUSqwBSV5oPjl/QxOy35VuYKCpkO?= =?us-ascii?q?tCsm5JkSJxuv8q0yZpRBGkoy3ju7oN2S48+LG/rDgBtmBKTv6FkyvRFFtNw/IE?= =?us-ascii?q?jaYaC3b/5l2xe3YDbI7o77lhO8vs744h424wYR87ZS0JQfygCz3sj6OPGoGPst?= =?us-ascii?q?VchB6LuMnUcbCzLSwSNqkgxhPiRnh91BPenBVp8GYQXDWg7cEkK5+5Ock4xyqk?= =?us-ascii?q?A27be0gQ4qlRqsv+qUYLTPcqaVNm2Ghj09aHSTcLRMHUH2Y1kxUraWRDcJJY8x?= =?us-ascii?q?MaELMogjmQtKlc4g4UeCvUEpii+oTIn8fHx3c9Tdluxm/NqKyKnJUq32N5m99u?= =?us-ascii?q?6C6BpmgSffTCU8BwGnjzyptfyevmavWituAHT4Vnx6qlUP8GKcSj4my22JNrWk?= =?us-ascii?q?C53LgeGUS2MPMbzLfBTyilUXGYWfiMc2WUnTY5Mk7z5QGvLl0zacdKs1EyP/DH?= =?us-ascii?q?hp5diw3hS617Sj+XpV/Bw2wpKfkaeB4uuIe7ZwwKS/YcZ/SdJegr2/A+FFoMYG?= =?us-ascii?q?PKHSRoD++6q1itk5ZnO394+0X1ffzt8hz6MNuVAhQEFI/arp1y+fy9XW+BO2Vv?= =?us-ascii?q?zB51PEly6ejfEU49tulCfJaNhdLQnch00fYZd/dxNi0wosUclZxl6YmIy8qKah?= =?us-ascii?q?XRzpHuJdHJvPiXHeDQw14temFAXboTeRn16JkiPt4lR73TGqNUvRoCCqg+QZwh?= =?us-ascii?q?L3n++bp1LQNydw7RYaq7gtPupu2VfJdUoGXW7l0oJifGpxID0uC0TRB8b52yiX?= =?us-ascii?q?TyOIowRjNdoNJzERZmGYpPG98arwW5GZKUn7u7i9Cp8UNgp+AKqbbwCuzN1Nmh?= =?us-ascii?q?2IVxW4ZV6FeTPDbVHqZrmVhljuWujffcyJn+F93tdckCVOdlXm7PcqXGEZmnKj?= =?us-ascii?q?KSJsL8fFZL87qd0LJ/TxWQazn1X66HtC2/KPVk+l42yo1ic+rVyzwh9bbb2MH9?= =?us-ascii?q?Z2tDvCessWaJNIdD7FzNHeHeRAxbSf6E8GZjAK0WYoz4+ugSMdwi3tec+Rd87C?= =?us-ascii?q?xY38aeIKiusFXM2kRlepLfN0Tpxik5VZMNIBSlPksmmXXZpWjFAXRAMsikLtFg?= =?us-ascii?q?gNKUDhz2+0l8gmAsZndHGmXyX9uRP3YU296mbg2Q6A1LF8oDn/KweUMgs629U/?= =?us-ascii?q?VnOpVEmeWss7UKishpKyDJRMdEOyHQLbl2PideD+nVo1goeBEEuaAvWogpfZiO?= =?us-ascii?q?PF8HMECYxCPw1wTC0kr0eMe32aaUJiYW7nVHz7XY0ThDpwm5peyVgsv9X7DFdJ?= =?us-ascii?q?v2RuLdMDI5VjGGQjQ/CV2m9kyjt/oAvfqYOnsfoksObiKJFgEcurpjrcPOAW/X?= =?us-ascii?q?mO1jeoAKhf+BVi/sSCx4jrcyBj1RuUGCWfUDCRLWb3jngGZGvwyiPPBM92r/b7?= =?us-ascii?q?KE3qpVR/AWAoxUf/2WWdTXYupeJzY2mTUdI+u8YdncoKwi0lLJUGsVCa/I+0OC?= =?us-ascii?q?TESOWPyT2yrrXZkJv4gzoico+NfQnihtE6TSPrafvCWj8oiigyadp+LeV3MhY0?= =?us-ascii?q?svgOINGGOB2gVPKHkYC9EJv0HgWrCPZ0RL1HIpj+JuwBgMeAJoX31hyH1Wgei9?= =?us-ascii?q?FdNDSVIOimOhXuEGZkhtDDws5U+K/hHyYdsYtMDISW9e86cDRIseIfQz9onYJr?= =?us-ascii?q?EQwPco3TJhpiw2qSOdAE1Bjgid6arfALp8xqFe5Wk/5/x2XEaPQzXbcmXcz4qp?= =?us-ascii?q?Fd9AxSlpoXD+y8XboPphNL1EqIFlUx82BndtKsv14SFKUWay3hC7+Rm8AnDWJj?= =?us-ascii?q?QayDkMIiMBe6B+yOo/+A3FctfH9FO4q7MqqEztDx2CTLWzxs9lEMbsgBq5bS1K?= =?us-ascii?q?eDDtHNZsrfxAjsoJSaIheYW6RVvGK1utRjmEsjwBoUC56o+gCtBHlyBHyqg=3D?= X-IPAS-Result: =?us-ascii?q?A2H+AAATgStY/wHyM5BdHAEBBAEBCgEBFwEBBAEBCgEBgww?= =?us-ascii?q?BAQEBAR+BWLpUBVEmiCxTAQEBAQEBAQECAQJfKIIzGoIcAiQTFCAOAwkCFwghC?= =?us-ascii?q?AgDAS0VGAcLBRgEiEuzOT0qAotBASSIQYZvEQGFfQWPXIplkGICihaGCpFRVTc?= =?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:43:15 +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 uAFLh1JP006843; Tue, 15 Nov 2016 16:43:03 -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 uAFLh02Z121680 for ; Tue, 15 Nov 2016 16:43:00 -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 uAFLh0IS006820; Tue, 15 Nov 2016 16:43:00 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1DlAACXgCtY/yNjr8ZdGwEBAQMBAQEJAQEBgzcBAQEBAR+BWLcdgzcFWhiGC4ImUwECAQEBAQECYoU3UjCBDxKIbLM5PYthATCIQYx+BY9cimWQYgKQIJFRVTeGJh00AYgZAQEB X-IPAS-Result: A1DlAACXgCtY/yNjr8ZdGwEBAQMBAQEJAQEBgzcBAQEBAR+BWLcdgzcFWhiGC4ImUwECAQEBAQECYoU3UjCBDxKIbLM5PYthATCIQYx+BY9cimWQYgKQIJFRVTeGJh00AYgZAQEB X-IronPort-AV: E=Sophos;i="5.31,496,1473134400"; d="scan'208";a="5825975" 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:42:58 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3Ax7zJ6heYScH5A9vOhzvb8JgmlGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcS4ZR7h7PlgxGXEQZ/co6odzbGH6Oa5AydZvcfJmUtBWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6?= =?us-ascii?q?OPn+FJLMgMSrzeCy/IDYbxlViDanb75/KBu7oR/MusUIjoduN6k8xx/UqXZUZu?= =?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?A0H+AAATgStY/yNjr8ZdHAEBBAEBCgEBF?= =?us-ascii?q?gEBAQMBAQEJAQEBgwwBAQEBAR+BWLcdgzcFWhiGC4ImUwEBAQEBAQEBAgECXyi?= =?us-ascii?q?CMxoBgkFSMIEPEohsszk9i2EBCyWIQYx+BY9cimWQYgKQIJFRVTeGJh00AYgZA?= =?us-ascii?q?QEB?= X-IPAS-Result: =?us-ascii?q?A0H+AAATgStY/yNjr8ZdHAEBBAEBCgEBFgEBAQMBAQEJAQE?= =?us-ascii?q?BgwwBAQEBAR+BWLcdgzcFWhiGC4ImUwEBAQEBAQEBAgECXyiCMxoBgkFSMIEPE?= =?us-ascii?q?ohsszk9i2EBCyWIQYx+BY9cimWQYgKQIJFRVTeGJh00AYgZAQEB?= X-IronPort-AV: E=Sophos;i="5.31,496,1473120000"; d="scan'208";a="793685" Received: from fmsmga002-icc.fm.intel.com ([198.175.99.35]) by emsm-gh1-uea11.nsa.gov with ESMTP; 15 Nov 2016 21:42:39 +0000 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga002-icc.fm.intel.com with ESMTP; 15 Nov 2016 13:42:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos; i="5.31,496,1473145200"; d="scan'208"; a="1059894124" Received: from clpowell-mobl3.amr.corp.intel.com (HELO wcrobert-MOBL1.amr.corp.intel.com) ([10.254.74.236]) by orsmga001.jf.intel.com with ESMTP; 15 Nov 2016 13:42:39 -0800 From: william.c.roberts@intel.com To: sds@tycho.nsa.gov, nnk@google.com, selinux@tycho.nsa.gov Subject: [PATCH take2 v4] libsepol: fix checkpolicy dontaudit compiler bug Date: Tue, 15 Nov 2016 13:42:36 -0800 Message-Id: <1479246156-18730-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: /commit 6201bb5e258e2b5bcc04d502d6fbc05c69d21d71 ("libsepol: fix checkpolicy dontaudit compiler bug") 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..78905d9 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 spec) { 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 = (spec == 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, spec); 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) {