From patchwork Mon Jun 12 17:34:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Carter X-Patchwork-Id: 9782587 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 B1F5760244 for ; Mon, 12 Jun 2017 17:39:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 979B427FE4 for ; Mon, 12 Jun 2017 17:39:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 893802869F; Mon, 12 Jun 2017 17:39:12 +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 (smtp.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 0490C27FE4 for ; Mon, 12 Jun 2017 17:39:03 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.39,334,1493683200"; d="scan'208";a="6585567" IronPort-PHdr: =?us-ascii?q?9a23=3AOWjMuxIvIF1zb/3hE9mcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgQK/z7rarrMEGX3/hxlliBBdydsKMbzbWP+Pm5ASQp2tWoiDg6aptCVhsI24?= =?us-ascii?q?09vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7?= =?us-ascii?q?Ovr6GpLIj8Swyuu+54Dfbx9GiTe5Y75+Nhe7oRjeusULnIduNrs6xwfUrHdPZ+?= =?us-ascii?q?lY335jK0iJnxb76Mew/Zpj/DpVtvk86cNOUrj0crohQ7BAAzsoL2465MvwtRne?= =?us-ascii?q?VgSP/WcTUn8XkhVTHQfI6gzxU4rrvSv7sup93zSaPdHzQLspVzmu87tnRRn1gy?= =?us-ascii?q?gJLT459HzchNJ2gqxVvRmtowVzz5DIbI2QMvd1Y6HTcs4ARWdZXshfSTFPDI2/?= =?us-ascii?q?YYUIF+oMP/tUoofjqFsVthayGRWgCfnzxjJSmnP6was32PkhHwHc2wwgGsoDvn?= =?us-ascii?q?DOo9XwKqgSSv2+wbfSwjXZc/NZxy3945XPfxAjr/CDQah/cdDNyUUxDA7FklWR?= =?us-ascii?q?ppDlPzOSzOgNtXOb4PB6WeKgjG4ntRh8rz6yzckvkonEnp8Zx1/L+CljwIs5OM?= =?us-ascii?q?e0RFB0bNK6CpdcqieXPJZsTMw4WWFnoiM6x6UDuZ68YScF1owqxwXaa/yba4iI?= =?us-ascii?q?5Q/jVPqJLTd4mn1lfLW/ig6u8Ue60O38V9S00E1QoipZktjDqnAN1xvJ5siBVv?= =?us-ascii?q?R95Vuu1SyK1wDS7uFIOUE0lazFJJ492rM8i5UevEvZEiL2hUn6lrGae0o69uSy?= =?us-ascii?q?9ujrerDmqYWdN49whAH+KKMumsmnDOQjLAcOW2mb+eKh1Lzs5EH2W7JKjuAwkq?= =?us-ascii?q?bFrp/aPt8WprK5AgBJ0oYj7AyzDzG90NsCh3UHI1VFeAyfg4jzJ17OOOz4Deu4?= =?us-ascii?q?g1m0kjdrwPbGMaf9ApXNNHfDlqzsfbR6605azQo818tf545KBbEbO/L/QEjxtM?= =?us-ascii?q?bXDhUhKQy73/7nCMlh1oMZQW+PAK2ZP7nOvl+L/eIvJO+MZI4LuDvmJfgl4+Pu?= =?us-ascii?q?jHAill8Ae6mpwYYXZGq/HvR8LEWTeWDsjcsZEWcWogo+S/TniVODUT5XYna9Qb?= =?us-ascii?q?g86yo1CI24EIjDQZqtj6aZ3CehGZ1WZH5JBUyQEXvycIWEQfgMYjqIIsB9ijwE?= =?us-ascii?q?SaShS4g52B6zqAD6zr1nLuzI+iEFrp/jysZ65/fSlRAz8jx0Cd6R02eTQGFohm?= =?us-ascii?q?kIXSM53LhjoUxhzVeOybV3g+BCGtxJ/P5GTgA6NZvAwONgENDyRhjNftGXR1a6?= =?us-ascii?q?Wt+mGy0+Tsotw98SZEZwA9WjjxHE3yqsGLIVkriLCIU18qLaxXTxIdxyy2zF1K?= =?us-ascii?q?kgkVkpXNFDNWu4ia5j7wLTHZLGk12Fl6a2cqQRxDXC+3yEwWqKvUFYSxJwUb7f?= =?us-ascii?q?UXAEeETZsc715ljcQL+qCLQnNBZByMGZJ6RWatzpl0hGROz5NNXQeW2xh3ywBR?= =?us-ascii?q?GOxr+Wa4rqYWod1j3HCEcYiwAT4WqGNQ8mCyi/u2LRFiZuFVP0Y0736elxsmm7?= =?us-ascii?q?Tk4vzwGSa01uzaa69QAPifybUfMT0aoOuD09pDVsAFa9w9XWBsKOpwp7ZqpcZ8?= =?us-ascii?q?8y4FZc1W/Csgx9Jp2gI7l5hl8QaAR7pUTu1w94Co9Yi8glsGsqzBZuKaKfyF5B?= =?us-ascii?q?dCmX3ZP3Or3KMWTy/wqga63R2lHDytqW/b0P6PsgoVX5oA6pDlYi82lg09RNyX?= =?us-ascii?q?ST+4/KDAsMXpLrSUs47QR1p7TAbik6/YPU2mVmMbOovT/ax9IpGOwlxw67f9dR?= =?us-ascii?q?KqOEExTyE9EBCsi1LuwqnFaobhceM+BU7qI0Od2pd+ee0q6xIOlghC6mjXhA4I?= =?us-ascii?q?1l3EOD7S58SvLW0JYf2PGVxRWHWCnmjFi6r8D3nJpIZTYIHmqw0SLkHpJeZrVu?= =?us-ascii?q?fYYXDmejO9G3ychjiJ7sQXFY8EWuCE8B2M+sZRWddUf93RFK2UQRv3OnhTOyzy?= =?us-ascii?q?ZonDExsqqfwCvOzvzkdBoGPm5LQHdtjUz3LIeukd8aRk+oYxIulBu/6kbw37Jb?= =?us-ascii?q?q7hnL2nPXUdIeDD7L39jUqSsqrqCZNRP5Ik0viVXV+S8Z1+aR6X5oxsb1SPsBX?= =?us-ascii?q?FexDchezGtoJX5kARwiHiBI3ZrsHrZZcZwyA/b5NzdXv5RwiMKRDJmhjnTB1i8?= =?us-ascii?q?OcSp/NqPmpfYquC+VmShVpxPfinw14+AsjW05XFyCx2lg/+zgsHnERQ90SLjzd?= =?us-ascii?q?lqUiHIrBLibYnxy6u6Nuxmc1JzBF/h98V6AZtykowqhJEfwXIanIma/WIbkWfv?= =?us-ascii?q?NtVWwbr+Y2AQRT4P2dLa+hLp11ZkLnKN24L5UXOdz9BkZ9WmZGMW3T4y49pMCK?= =?us-ascii?q?iK8LxOhTF1rUagrQLNffh9mS8Qyfgw534cmOEEowktwTubArAJG0lXIzDsmw6P?= =?us-ascii?q?79Cko6VdfHyvfqSo1EpigdChC6mPoh9aWHnkYZoiAylw4dh/MF7W1n389J3kcs?= =?us-ascii?q?HKbd0Prh2UjwvAj+9NJZIpjPUKmC5nNHnhsn0k1+46jQVi3Z+gs4iBMWlt+7i5?= =?us-ascii?q?AhFAPD3ve8wT4i3tjbpZnsuOxYCgA4huFy4EXJvtQvOkCjQSuur7NwyWCj0ztm?= =?us-ascii?q?+bGabDHQ+Y8Epmt2jAE42vN36JPHkW19NiRAWDK0xFmw0UQS46kYAjFgCx3sDh?= =?us-ascii?q?a0B55i0L5lHktBRMxOVoNwPwUmjBvguobCk7SISHJhpM8g5C/1vVMdCZ7u9rES?= =?us-ascii?q?FX5JuhrBCKKmyefAlIA38GVVGDB1D5JLau/cPA8++aBuWgM/TOfa+CqetEV/eH?= =?us-ascii?q?3ZivyJdp/y6QNsWTOXlvF/g71VBHXXB9BcvZhykPRDYNmC/Wac6Uugu8+jZroc?= =?us-ascii?q?+l6PTkRhjj5Y2RBLtOKd9v4Qy5gb+fN+6MgyZ0MSxY2okCxHPSzbgQxloSiyZu?= =?us-ascii?q?djS2C7sPqSvNQLjXmq9NAB4RczlzO9dQ76IgwglNPtbWit3v1rFmk/E1EE1KVV?= =?us-ascii?q?r9msGufswHOHuyO0/CBEqRM7SGPzLLydntYaygUb1QkPlUtxqotDadCU/sJCyD?= =?us-ascii?q?lyHyWhChMOFMljqbPABQuIG8dBZiE27jQ87nahKhNN97lzo2wac7hnnSL24TLS?= =?us-ascii?q?B8c19Rrr2X9S5YmutwFHdf4XpjLOmEhyGZ4vLZKpkIr/RkHD54l+VA4HQ107FV?= =?us-ascii?q?9j1LRORpmCvOqd5ju0ypkvKRxTV9XxpOsCxEhJyQsEV5I6rZ9YRAWWze8x4X6W?= =?us-ascii?q?WQFhIKqMF/CtH2p6BQzdvPlaL0KDtY9dLb49ccDdDOKM2bKHohLQbpGDnMAQse?= =?us-ascii?q?VzGrK3vQh0NDn/GJ7XCVtYI1qob2l5oBVLBbT0Y5FvUEBUR5BNYCOot4Xis4kb?= =?us-ascii?q?6Hi84F/WGxrBjeRMVduJDKTe+dDuv0JzaYl7ZEYQEEwbTiLYQcLof7wVBtakFm?= =?us-ascii?q?nITWHErdRcpCoiJ7YQ8qvkpA639+TnUt1ELjbwOi+n4TFfqvkR4xhQpye+Mt9C?= =?us-ascii?q?3j410vPFrFuDMwkFUtmdXimT2RbDnxLKKqUYFMDCr1tlY+MpXgTAZvag29g09k?= =?us-ascii?q?OSzYSLJWirtvaXpkiBTAuZdVH/5TU7FEagcKxf6Lf/UozUhcqiK/yE9E5erFDY?= =?us-ascii?q?VtmRAvcZ6roXJA1RxsbMIpJazQI6pJy0ZfiriIviC2yuA72BUeKFoV8GOOZC4I?= =?us-ascii?q?v1QFNr84KCWy+uxh8g+CmzxYeGgQTfUqpOlq9kA8O+iaySLvzaJDIFirN+ODN6?= =?us-ascii?q?OZp3TAlcmQT1MqyEwIjFdK8qJs0cg/c0qZTFsgzLqLFxsUMsrCJxlVb9BM+3nT?= =?us-ascii?q?ZyqOt/vCwY5tNYWnCu/oVfOOtLoTgk+8AQkpGIIM7sIcEZay1EHYLNzqI6Qbxh?= =?us-ascii?q?U34wTnPlKFDO5GeBiTijcIv9m/zINr3YlaPjwSHH9yMTu25rnKvQ8nm+CMXM0s?= =?us-ascii?q?YncdUIoELWw5V9Gnmy5DvnRAEDm23vgfyAec8z/2vj7QAyXkb9p/ePeUYgthCN?= =?us-ascii?q?Wx+TUl7ae2j1/W8pLFKmH1M9Rip8XD6eQAp5aIE/lUV6Vys1/Am4lEQHynS3XP?= =?us-ascii?q?HsCxJ5jxbYkscNP1B22mXVy4jjI6U93+PM2xLqSShwHnW5pUupGB3D8/Lc+9Ci?= =?us-ascii?q?0eGxBoquEA/qJ9ZRcMY5wnYR7orAk+OKu/IB+E3dm0RWaiNydWReFFzeqmf7xX?= =?us-ascii?q?0zYsbuiixXs8T5E6yu638VINRJAKlRzR2PejZolEXifoAHBdfRvApTYhnWh7Ku?= =?us-ascii?q?ky2vs/wA/PsVQEKT+LcO1pZ3BasN4kAFOTIXN2Cm0+R1CGlofM+Q+s0KoU/ydE?= =?us-ascii?q?kdZUzPdJsH7gsZ/DeDisQrCkqY3Jsyo8atgru7Z+PpLlIsadrpzRgyLfQ4fKsg?= =?us-ascii?q?2eSiG6DfpblsJXICJCT/lCgXslNtAeuYpd9UoxUd8zJ7NSCKktorCqbSRrDSsJ?= =?us-ascii?q?wCAESYyPxz0Cjf2627fAkReQapsiOgQesJpemtsdTzJ2YiQGqa+5UYXWlnOLSm?= =?us-ascii?q?gMIAcX9gRC/BsOmJJqcO3554TFV4NDyzlTo/1oSCTLDYVo+0H9Sm6InVjyUO+h?= =?us-ascii?q?nPCx3QJO0PLs1cEWWARlBkhHwOZZjVAlKK1tK6YKoI7FrDuIdUL8vGLizOumJV?= =?us-ascii?q?ZRyc3Id132FoXFr2/8Xjca+XIKWY9F0GvfGogKkwpldKYro01BIY68dkni5zwk?= =?us-ascii?q?xoFpH7iiWsCo3FslrGgJSDm0HNZbDOFmql3XUiV/Y5+3sJXlJ4lSQmhI9ZKHsV?= =?us-ascii?q?dZjUNtPzS6yZdHKsFN4z8MXCRUrjmHutu9VtFD09dsD5AQOtd/p2v9GKRcNZiQ?= =?us-ascii?q?pX02pqLgynvH9DA5rli62C+zGq+jQuJe520RBAMpJ2GEpUkuC+sj6WDS81/Xvl?= =?us-ascii?q?Bz5edbCaCFjV9trzZlApBOGjFJ2GiqL1RpVnZGtflaJb/Uc8xbTfgyYwOvOxwg?= =?us-ascii?q?Gv4n2UyJ4V97nW3jbyx0qARa5zjXXxMoWikNnrfthToep9m7OT8dTpJFdikhYz?= =?us-ascii?q?vAKw2AgyxXughQa11yUZADHtlF460b3ZdT/sfaSUajMzsFUwZmNg0lyvdQiFBM?= =?us-ascii?q?sF2AeS/DCQqna+zPvgdwfceLo86jNO758xtfioP7rOA48L0OR3+hmQKzWt3Rsp?= =?us-ascii?q?HztsaUuUuUaKf3LfCzbWXHTDfSkRC6na0kAIXS/yjPLApbLIF3xmEqYZf9FWLG?= =?us-ascii?q?PwlKKqwAKkVHUqB6bMlJrfpBZ894YqoJ/7FiBg6fTBP1BIOvtOVGLkrURTnGNS?= =?us-ascii?q?WO7PGwoYLJ4rzBUuXgYsuMx2jZTK5pIph67iT0FKnw3Y9Y5EX2xu9n9llmRlje?= =?us-ascii?q?LyCBsNPhKxsT5Mm5akvtpIAmHS/NDZdrl3rt21tAeNYJTC2s7JQY0olW6HLqRe?= =?us-ascii?q?J/yEjzv/VY96N45okv/7Bp1cC0KL/OKfRAr0BoHAWbCx539pUpHGh/XXpeYvEQ?= =?us-ascii?q?KPfWeaQWk9zup/rwF6wN5x2f4/ZZZsffJ0Hdhsm/DSmRSR5ekwcbrj4aNQ+c2O?= =?us-ascii?q?Sbm6JvTMaluOz52l4s41eiLx4J1rZt5Zye9qqPvu/XYAPbzaIYVajyWsPzsrMs?= =?us-ascii?q?tluQ5fI+kr4OdHZ1Ywq6H+cDTcMd2n3vzaYxzSIrCc/DGazv+OJbXXIjgj3gg4?= =?us-ascii?q?x9H0kRGv4MG7qL+Z9TnmY+m+zcLNEWc6ZCmmiVFRG+Cb8C1WSr6zaLL2l5nxHO?= =?us-ascii?q?yQ//TXm07F/soi9yWTHMwMv7kkpJSrm3Al9fXyyoOUBktzOPOBDntMHttaQ060?= =?us-ascii?q?E2NXfktMmWmWukN75WENfzJNuGISk7vFgXloE+RsSz2YAHHtqwOMse/2t6bvTA?= =?us-ascii?q?8GOrjy9Ao6BciorF/s6V++vYHX+8j62bsbqB3jZYxWYkvVsn8NCvKunO58GWQ/?= =?us-ascii?q?Svz2sRSzx/uw7BUhOupLzUsU0bOUuR0EjRgIwKJNZZ3Xsm2U76+OgvWtUz9B9R?= =?us-ascii?q?FozYffMNuSjzOCfowVaYe983VCie0z5ME1LwD1Z5GLYz2HjxvMLPmnfc4VsoSZ?= =?us-ascii?q?dsd0b/nxx4E504KV4x6FgQ2icDEAkMZgqBA760HknlNpULVVQdZhubxrS6fb03?= =?us-ascii?q?3UJryLO1+ODTdfB8B7YKNvtFlQGOnUNbG5wMvq0cQbJ8Z0dd+7TKpgjmEIXoQ/?= =?us-ascii?q?/mmmcuOvKvX8Ba68cZt2E47QqlQBqg85hD5a4BiJ+Ubq5EfYTMvMdk4kd//zEP?= =?us-ascii?q?ajBCgBhxjhO+S+Acp/nv4sPFv5qs6+auUrstRuoM+hgsHWt+k4f/gFAtoNHQze?= =?us-ascii?q?dcSZfZiYfh/wBXJX6FpoLa3wN7KeoUJIKhZKxg+GkfJygCO3IOOsKba+Um4yBz?= =?us-ascii?q?NDXc/VpCDd0XaNwFPcrNlgFUilHzV7FI7MXbAEKYB511d88282r90Co1/ockUu?= =?us-ascii?q?b89D+2IojS715XMPNZkipsiNLCqfMRwfrTFCgY/3mZZAJowiOZ0ZWNDej//fmU?= =?us-ascii?q?wtHOS1wGBjI2U5taJDea9gyoWOy1lInuUgOT7cPzm4wxdEaRRny3gaQEvb1BEe?= =?us-ascii?q?pehSXh3jlRDJr5h/SLvNqw8GFXrEFIEJ5v7R3ZH6VSJol0ORbimca3XUVzGiz/?= =?us-ascii?q?eMXQdhovpuWW3PsM7PtiOEv+f4MbJQgEy73i43pPUgRuUKL2vkqeXe8JYdtmT/?= =?us-ascii?q?XErmxa6Y1+MKIPOVmdq4bsrjhWtFA3DggpaKUzrjxBbEXOmhNaW7rssr4algQc?= =?us-ascii?q?ScJ5uVNLGW+oN2Ix+yHHVb9MgKeMB/Ib9DSTTqoTU0RnKS5+TBa1149oe7S3h/?= =?us-ascii?q?xHtXlGnixlqvgwzzNmXAe8uTHrp68V2zIg/7G4tDMbtXNZTuWelzrIBkhCzfQL?= =?us-ascii?q?i6ccEHXi6V2nbXkdbYvy/qNoJcD9+okg+Xg/ZwssfzEeV+S6Fy7wl7+IApCIsN?= =?us-ascii?q?9EhR6Npt/BbbmoICgWK7Qy1BPjR39m0gTEmxZo6mQLSC267NA4PIW9Jdolxi2w?= =?us-ascii?q?FGjZalkM7K1JsM/quF8FVuQ2b01uwHl53siBWCINWNTFG3wpgQg8dWVEbJVD5A?= =?us-ascii?q?cVF6kshTaJsLdJ/gUQYDrPCYSl/Y/QncbU1nUnS9dl2H7WrLWfhpw2yH1lh890?= =?us-ascii?q?7imWtXQQd+zZU9dsAn/31ode1ezxee6gsuUGSIt60rSuTuUOMs65+Wu5wJ9qQF?= =?us-ascii?q?OqxqwCH1qlN+8O3qvbUyagSWCDReSLcnSDnzUnPU72/xWoKEM4aNtSpU8nLuTC?= =?us-ascii?q?noJclxHmUb5sQyWQpFzbzG8kMe4BdQI5ooSnewsMTOEPYeiQP+4uz+MiCFEUdX?= =?us-ascii?q?/GATN2C/OqsV6qhIV0IGtv4UPmYen26QDmNNySGgUYEY7EsJF+5Oa2RmWbOX9v?= =?us-ascii?q?1BdyJlV79//DF1Qtse9Ra46Rnd/Uh9thy+4EefBtMSkzutMIn4Jj7o6U0NyUfh?= =?us-ascii?q?7N1JbyIsrVouOZA/3ZwEQmYGZaUqAWYQnt/YU1IsY5W6HPHbtepRkcC7Y1QJgg?= =?us-ascii?q?N2fp6q55NwJycg/UZLSxnMbqvOaLaYVOq3/R9FIwIz/WuwcfxfysUQx7c5eqim?= =?us-ascii?q?38IZAoXDJBrsFiBQV9EYtKGsMAsxCnDICOlKG8kd+x9Ftwu/UWvqroFvDKyNO5?= =?us-ascii?q?0p12X5he+0OGJy7RBK1xjUR+kuSyg+vP0oXrCcz8Z9wITu57TXDZarXeBIWwNi?= =?us-ascii?q?qOOt7ge05B67Oc1LN5UhOMZCH2RqaGsCykNO544UUg0YF4ffDczDoq773B39vy?= =?us-ascii?q?fW5brD+5rXGVLJtf8EDKBevGUhJPV/WF9GdlHasKbYr78+sAPsAiwNiC7Alp8j?= =?us-ascii?q?tCyNGKLrOirkDSwEJ7c4zULE/y1CYkVokGOhO/MVEjgWXBsHTSHWxcLtS4Kclq?= =?us-ascii?q?mNuVCwbi6FVxmWEsYG5BHXHlRcmQOWgdxc2+YAyK9ARWD9cMheK3flQ4tqKqQ+?= =?us-ascii?q?lyJppFgfmqtKkAkdtxKSHAXstaPybLI7JtIzpRCPnPpFgvYh4ZvLg1Wps1aYKI?= =?us-ascii?q?IEwZLEeK0Tnywhfa0U3oa9ys076EICkM/Xpc1bLF0CZDpw2itPaHhs3sSqvZbJ?= =?us-ascii?q?DrXPLINioqSC2aTywoEUm14Vekp+YEvP2ALGcdp1AUZTiSCBQSpqB0ttXQCHXc?= =?us-ascii?q?meh9c50LnvyaXDrwSCJgnqooGilLrVyMQ+YEFQTOdH/hjm9ctxCjK/JP5n/lca?= =?us-ascii?q?OXxrBUW+0XBYtMdOeVQ93GdvBCdH8UkWACNeK9ecDMh6oo2VLPC20CGu/H80PN?= =?us-ascii?q?YlSRR6m+zjfmRs0+tpIotzBgrtDPlSZtD/7gI6eUpzno9JWxyimfp7uNBSEWf0?= =?us-ascii?q?UpjbdaUyG6yx5aJTRBUYkY?= X-IPAS-Result: =?us-ascii?q?A2F6AgC+0D5Z/wHyM5BcGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwIrgV0Sjn+pBiuId1cBAQEBAQEBAQIBAmgogjMkgkkCJFUDCQIXMQgDA?= =?us-ascii?q?WwFiAZPgUUNshE6JgKLVZEXhScFgSwBhWiXKAKOGoUiDYsrhluUbFiBCicJAh8?= =?us-ascii?q?pgUuDVEQcggJaiV4BAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 12 Jun 2017 17:37:26 +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 v5CHXW7X000776; Mon, 12 Jun 2017 13:34:35 -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 v5CHXMbp264722 for ; Mon, 12 Jun 2017 13:33:22 -0400 Received: from moss-lions.infosec.tycho.ncsc.mil (moss-lions [192.168.25.4]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id v5CHXLeO000769 for ; Mon, 12 Jun 2017 13:33:21 -0400 From: James Carter To: selinux@tycho.nsa.gov Subject: [PATCH v2] libsepol: Fix neverallow bug when checking conditional policy Date: Mon, 12 Jun 2017 13:34:20 -0400 Message-Id: <20170612173420.3468-1-jwcart2@tycho.nsa.gov> X-Mailer: git-send-email 2.9.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: Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Commit 9e6840e refactored neverallow checking. In the process a bug was introduced that causes enabled conditional rules to be skipped. The bug is that the avtab key is checked by comparing the specified field of the key to the value AVTAB_ALLOWED. Since enabled conditional rules have an additional bit set as well, these rules are not considered to match. The fix is to use a bitwise AND (&) to only check the desired bit. Signed-off-by: James Carter --- v2: Pay attention to precedence rules libsepol/src/assertion.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libsepol/src/assertion.c b/libsepol/src/assertion.c index 27c39e7..b08757b 100644 --- a/libsepol/src/assertion.c +++ b/libsepol/src/assertion.c @@ -222,7 +222,7 @@ static int report_assertion_avtab_matches(avtab_key_t *k, avtab_datum_t *d, void ebitmap_node_t *snode, *tnode; unsigned int i, j; - if (k->specified != AVTAB_ALLOWED) + if ((k->specified & AVTAB_ALLOWED) == 0) return 0; if (!match_any_class_permissions(avrule->perms, k->target_class, d->data)) @@ -471,7 +471,7 @@ static int check_assertion_avtab_match(avtab_key_t *k, avtab_datum_t *d, void *a avrule_t *avrule = a->avrule; avtab_t *avtab = a->avtab; - if (k->specified != AVTAB_ALLOWED) + if ((k->specified & AVTAB_ALLOWED) == 0) goto exit; if (!match_any_class_permissions(avrule->perms, k->target_class, d->data))