From patchwork Fri May 5 12:49:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vit Mojzis X-Patchwork-Id: 9713513 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 D26BC60235 for ; Fri, 5 May 2017 12:51:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BB8F22866D for ; Fri, 5 May 2017 12:51:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AE8C2286B9; Fri, 5 May 2017 12:51:07 +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 (emsm-gh1-uea10.nsa.gov [8.44.101.8]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C79D72866D for ; Fri, 5 May 2017 12:51:06 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.38,292,1491264000"; d="scan'208";a="6690996" IronPort-PHdr: =?us-ascii?q?9a23=3AdThXIxCbtJct3PytDyn5UyQJP3N1i/DPJgcQr6Af?= =?us-ascii?q?oPdwSPr5ps6wAkXT6L1XgUPTWs2DsrQf2rSQ7fyrBDRIyK3CmUhKSIZLWR4BhJ?= =?us-ascii?q?detC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+?= =?us-ascii?q?KPjrFY7OlcS30P2594HObwlSijewZbJ/IA+3oAjeucUbgZduIbstxxXUpXdFZ/?= =?us-ascii?q?5Yzn5yK1KJmBb86Maw/Jp9/ClVpvks6c1OX7jkcqohVbBXAygoPG4z5M3wqBnM?= =?us-ascii?q?VhCP6WcGUmUXiRVHHQ7I5wznU5jrsyv6su192DSGPcDzULs5Vyiu47ttRRT1hi?= =?us-ascii?q?gHLTo5+3zJhMJ2gqxQvRatqwViz4LIZY2YMud1cKHActMAXWdPXthfWTFPDI2/?= =?us-ascii?q?bYQPAfIBMORFo4TzuVQOtgCzCRWwCO711jNEmmP60bE83u88EQ/GxgsgH9cWvX?= =?us-ascii?q?vbrdX1KLoZX+eyzKnKzDTDbuhW0ir65YjWdxAhpvOMXLNxccrK0kQvDR3KgUiQ?= =?us-ascii?q?qYP/IzOZzPgCs2+e7+d5U++klmApqwZ0oje1x8csjJHEhpgLxV/Z9SV22po1Kc?= =?us-ascii?q?ekR058ZN6pFoZbuSKCN4ZuX88vTG5ltDw6x7Ebo5K3YicHxIo9yxLCc/CLbZSE?= =?us-ascii?q?7xb5WOqMLzp0mmhpdK+8ihu860Ss1O7xW8+p21hQtCVFiMPDtnUV2hzW7ciIV+?= =?us-ascii?q?Vy81+62TaKywDT8uZEIV0olabDK54u3Lowlp0LvETfBCD2gkT2jLKNdkk+5uip?= =?us-ascii?q?6/joYrXhppOGMY97lhr+Pbg0lsy6AOQ4NhACX2md+euiyL3u5VD1TbpFg/Eskq?= =?us-ascii?q?TVrYrWKdoUq6KnGQNZz54v6xOlADen1NQYk2MHLFVAeB+flIjmJVXOIPH+Dfei?= =?us-ascii?q?jFWgiSxkx/fbPr3nHprCMGPDnaz9fbd990FcyA0zwcpZ55JPEL4NOv3zWkjvtN?= =?us-ascii?q?DAFB82LxS0w/r7CNV6zo4eW2WPAqmDP6POsV+H/OQvLvKOZI8Svjb9LuIq5+Xy?= =?us-ascii?q?jXAng18dZrOl3ZwNaHC3Bv5mOVmWYWLwgtcdFmcHpgg+TO7wh1KeUj5TfHGyX6?= =?us-ascii?q?Q95jElE4+mA4PDRp2igbOawSe7GIFWZn1cBlCLC3foeJ2OW+0QZyKKPs9hjjsE?= =?us-ascii?q?WKCvSo8g0RGusRH1y6B8I+ra5CIXqJXj1MJv6O3LjxEy8j50ANqB3GGRVW10mX?= =?us-ascii?q?kIRzAu1qBlvUN90kuD0bR/g/FACNNc+/ZJUgA8NZ7A0uB3EM7yVRzbfteISVem?= =?us-ascii?q?RdOmDSs3Tt0v398Ee1x9FMm6jhDfwyqqBKcYmKGXBJMu6KLRxGT+J8F4y3nazq?= =?us-ascii?q?YhlEUmTtFJNWK4mq517xLTCJLRk0WFi6aqcrwR3S7M9WeEy2qDp0RYUAppXaXE?= =?us-ascii?q?W3ATfE3Wos7j5kPBTr+uF6ooPhFHycGcNqtAcsfpgkleRPf/JNTeZHq8lHmoBR?= =?us-ascii?q?mS3LOMbZHqdn4F3CrHEkgEkhsT/W6CNQckGiiuvXjSDDt0FVLge0ns6/VxqGun?= =?us-ascii?q?Tk8oyAGHd0Nh16Cv9R4TmfOcSugT06kBuCc5qjV4BU293tzNC9aaoAphZqpca8?= =?us-ascii?q?sn4FhbzWLZqxB9Ppu4IqBhnFEecAN3v1712hV0EIpAks8qrG4wwAp1M6KY30tL?= =?us-ascii?q?dymE0pDoJr3XNm7y8Qi1ZKHLwFHe0ciZ+r0U5fsit1rjuRulFk0483Voy9NVyW?= =?us-ascii?q?eT5o3WDAoOVpL8Sl039xZgp7HdeSk9+5jZ1WZqMamzvD7C3sgmBO0/xhamYdhf?= =?us-ascii?q?LLuOFBXuHM0CG8iuNOsqlkCnbx0eOOBS6LA7P9m9d/adxq6kIvxgkym7jWRC+o?= =?us-ascii?q?x91ViM9yVkQO7Sw5kF2+2Y3heAVzrkkFeur934mYFeajEWBWew1S/kBItNaaJo?= =?us-ascii?q?ZoYLFX2iI8upydVin5TtQWJX9Ea/B1Ma38+kYRySb1353Q1Uy0sXumeqljGmwD?= =?us-ascii?q?xulDEltK2f3DbBw+76bhoIJnZLRHV+jVfrOYW0kdEaU1S0bwgujhup/1r1x6hc?= =?us-ascii?q?pKR5IGneWkNIfynwL254SKuwsaCOY8lV6JMnqS9XSvizYUiGSr7hpBsXyyfjH2?= =?us-ascii?q?pFxDAnbj2qoYv2nxh7iGKbMXZyo2HUedpoxRfe4tzcROJe3iEcSCl+lzbXGkC2?= =?us-ascii?q?P8O18tWMi5fDrue+Wnq7Vp1UdSnryZ2PtDGn6m1tDxyyhOuzmsD7HgghyyP70M?= =?us-ascii?q?NqVSrQphbmfobrz7i6Mf5gfkRwHF/z8dd6GoVknoQqnp0fwn8ahpGJ/XoAl2f+?= =?us-ascii?q?KtBb1b74bHoKWTEH2djV7xb52Ed7NHKG25r5VmmBwstmf9S6YX0Z2iQm781RC6?= =?us-ascii?q?eb8rpEnTBzolWmsQLde/99ni0SyfE28n4Vn/kJuBYxziWaGr0SA09YMjH3mhSW?= =?us-ascii?q?6dCxsaVXaHypcbeuyEp0hcqhA62aogFARHb5fY8vHTdq4cViNFLBy2H86oD4eN?= =?us-ascii?q?jQdN4TuAebkxHag+hSMpIxmeIAhTB7NmLloX0l1+k7gAR03Z6noYeKMGpt/Ke2?= =?us-ascii?q?AxJCMD36ed8T8Cn3jalChsaWw5yvHpJ5FzUTRpToUPaoHywKtfv9MQaODCMzqm?= =?us-ascii?q?2AFLrCBg+Q9l1mr2nVH5CwMHGXOWMZwsl8SxmTI0xfmg8UUysgkp4/CA+q2NTr?= =?us-ascii?q?cF1l6TAJ+l74thxMx/pmNxblVGffuACoajIvRZiRMhVZ8wZC513PPsyG9OJzGC?= =?us-ascii?q?NY8YO9owyRMGCbYB5IDW4RUEyeG1/jJqWu5cXH8+WAA+qxNf/OYbGQpuxCS/eH?= =?us-ascii?q?34ig35Bg/zmSKsWPJWVtAOcj2kVdR3x5HdrWmykXQSwNiy3Nd9KbpAu7+iBvtM?= =?us-ascii?q?Cz6vrqVBjq5YSVD7tSNtVu9gusjqifMu6cniF5KSxX1pkU33/H1KAf3EIOiyFp?= =?us-ascii?q?bzStH64AujDQQ6LLgKBXCQIbayRoNMZT9a0zwgxNNdTcitPv2b5yluQ1BEtdVV?= =?us-ascii?q?z9hsGpYtQHI2enNFzdHEaLLK+LJTPKw8HteqO8VbNQjORStxKqvzaUD07jMS6H?= =?us-ascii?q?lzXzUBCvK+5MhjmBPBNCoIG9bgptCW/7QdL+dBK0K8F4jTs3wb0ogXPHLm8cPi?= =?us-ascii?q?ZifExTtLGQ6jlYgvpnEWxb8nVlNfWEmzqe7+TAMZkZqvxnAiB1l+JB/HQ60KFZ?= =?us-ascii?q?7DpaS/NpgifStcBho1WnkumJ1zpmXwFDpSpLhYKRoEViIr/V95daVnbY5xIN6m?= =?us-ascii?q?OQBw4Np9t/Bd3lo7pQxcTXlKLvNDdC9MrZ/dAGCMjKMs2HP2QuMQHyFT7PFgQF?= =?us-ascii?q?UySkNW7BiExGiv2S8GOaroQioJj2hJUOUqNbVEAyFv4CEUtlHdMCIJBxXj4/jL?= =?us-ascii?q?GUktUH5XukoxnXXslauYrHVv2KC/X1NDmZlaVEZwcPwb7gN4sTOZf021J8ZVRh?= =?us-ascii?q?m4TKA1TfXdZIoiJ7bw80pF5C8H9xT2Ep3ELlcAyt6mcJFfGohh42lhd+YeM1+T?= =?us-ascii?q?fw5Fc3I0DGpDE3kEgwh9rlhyuecCT2LKiuXoFbEDb7t080MpznWQl1dhGykVZi?= =?us-ascii?q?NDjaW7Jbl6FgenxziA/ApZtPHuZRTa5EYR8U2/6afPAo0VNSqiWp20BH+ffFCZ?= =?us-ascii?q?tllAsvb5GgtXRA1Bx/bNQtP6zfOLJJzkRMhqKJpiKo0P4+zxUaJ0sW82OSfzUI?= =?us-ascii?q?uFASObkgPCqo/e1s5RaEmzRdZGgGT+Aqre5y9kMhJ+SAyDrt06RdJUCqKeOQNb?= =?us-ascii?q?mZtHTAlcOTWVww11kImFRC/bh4yccjaVSbVkA1wLuXCRsJKdLIKRtJYMpK6HjT?= =?us-ascii?q?YSGOvP3QzpJyOYW9EP3nQvGKtKYVmU+rBhgmH54L7sgbGZmsyk7YJ9/9LLEZ0R?= =?us-ascii?q?Ut+BjrJFKdAftUYh2LjjYHrNykzJJsx4ZdPCsdAWJzMCWs+LnYuhIqgOCCXNcq?= =?us-ascii?q?YnYWRI0EOWwqWMeigS5Wo2xADCWr0uIe0AWN8iT8qTrKAznzddpsfumUaAh3CN?= =?us-ascii?q?6s+jU/7rK2hkTN/pXaOmH6M85tusXW5eMGoJaHCPNVTb5nv0fahYZYW2SgU3TT?= =?us-ascii?q?Ht6tO5jwd44sYMTwCna9SFywlTQ1Tsb2PNu2IaiIhxzoSZxTsImB0zApLdW9GS?= =?us-ascii?q?0GGxdsu+ED47pxZRYdbJo/YB7osRk+NqOkLQiE1dWuRnqiJiFNT/lD1+m6YaJY?= =?us-ascii?q?zzY0ZO+g1HQgVo06z/Ww8UMVR5EKlBHfyuylZ4lCUSj+AXNdewLXpSUljWRhMP?= =?us-ascii?q?g9wvsnyhPSrVYcKyyLdPBuaGFco9E8BFaSIXJqCmo4R16RlpfM4g+s3r8I5CRR?= =?us-ascii?q?hdBU3vNZsHLmpJ/QfCqsWLC3qZXSqycvd9wmo6xtPoP9OsSGsZPfnjrYTJnWqA?= =?us-ascii?q?KISzW1F/tAldhWOS5YTuRIlXsjOcMYpYpL8VAxWdsmJ7xTFKksoainZiF6Ai4U?= =?us-ascii?q?1iIWTZ6P3CIcjeemwLvVjA2QcZQ4PBwDqpVCjcMXUzRqbSMGuK+jS4LWmneLSm?= =?us-ascii?q?gWIQcT6QBM6xwFloJrY+/q/pHHTJ5WxD5Quf50VTHLFpZw/VvhVm6WmUT4SOmm?= =?us-ascii?q?k+GxxwJSyvPs3cUbWB54DUhd3P5YmFI1Jr9tN6QeuZXHvSOPdUP/oG3i0vCmJE?= =?us-ascii?q?VLxc3SaVL4EJLPtXDgXS0E5X0UWYhPxWnFFZsIiQp5b70kqU5QIIC8YEn++SIr?= =?us-ascii?q?x4BoH7m+WsCrw1clrXkGRye2HdpOEftmsFfNVD1jfZ+rtI3vO49OTW9I5J2dt1?= =?us-ascii?q?BZnV1jMiKj1ZVcK8BN4jsNXDdVojWQp9qyR9Nd1sBoFZMMJc1/u3jlEqNeJJeR?= =?us-ascii?q?u2E2uqDoynLB4T88qkq6xDOpF6+7VO9Z/mweGgQ1J2uFsEUvCfUj8nvK+FDXrl?= =?us-ascii?q?905/tbBqSIjUhpoTZ9GIxOCShN1X+7KlR8UmVGs/9aKanOdMxcW+c9ZRmqOxMk?= =?us-ascii?q?FP4m21eG/UZ7nHvjZCxyrARa8TjHXwYoTSkVnqvtmToGp8GoIz8VUZRIbSk6Yi?= =?us-ascii?q?fELAKalyZXvApfa050WpAZBMpF9K8B3YdO+MrNV1qsIzkfXBN+LgI4zeZflUlb?= =?us-ascii?q?vUWEfiDdCBGlderTvh1yZsidtsipI+rl/A1fkIPorPg497kfR32hgQCtQcrRr5?= =?us-ascii?q?Xmud2Oq0SDb7r3PPOkYX/ZUjfMiQ6/ha0+A5nN5SjTPxJRK4Nmxno8fZjhFWnL?= =?us-ascii?q?MAxEJ6IcOUVWTr11Zstdou9Efc9kZLgG9rJ3ChKBWBzvBJSlrONaIVbLWTTeMy?= =?us-ascii?q?KB//SkroLd8bPRVertatGCynvcX613OZJ65iXhFLfxzY9S4Ez21elx9kliU1jJ?= =?us-ascii?q?LziBrMj9JgMM/MSibFXtsYApHTzMHJd9i37txkZed8UJXSGl7JMYx45H53rqT+?= =?us-ascii?q?J3zFTzuvVI97Z48Yk3/6xpycCsKKfKMvRarVVoDQWIBghx7ZUtB3V/R3pNbeAP?= =?us-ascii?q?LvfRYb4Zgtrqq+ztEKwX8hKV8fRDadTbP0HBhtW/CjaERBxYhgcOtyAVIRaH2v?= =?us-ascii?q?6Yn690VdylqvLn2kIs5Fi+KgAJzKx36YeD4KqIq/fdbwHNwrgcRqjqWsTzo6wu?= =?us-ascii?q?u0yI//0kk6UOemhvbA25C+UdU9MdxmP8zaAr0S0sEtnMH7T7+PJZUHI5hD3gkY?= =?us-ascii?q?hnH1oKAvMUAaaL/YNGk2c6gePZMNMWcrpFmmmSCxGpCaMCxmSt6yuMJ2lpmBfO?= =?us-ascii?q?3A/sQWmr9l/5sTd4QTfQz9fkikdVUL23CFxTXyqvPE90qjKPPAzmtNrto6s191?= =?us-ascii?q?02Mnb5tN2RiGuhJalXENPlKNybOyk0q0odjIctSdy3xYAbBd29Lc8X8HF/cvTe?= =?us-ascii?q?7GernDVao6tdhore5caV+u7MHXS7iq2XpLqMyCpfyngislE18sqgOe3W592WX/?= =?us-ascii?q?So0H4cQDtltAvFQRG1saDbrlATOUGQy0fEhI0KMc9f3Xkk10Hp/vIvQNQt+wVC?= =?us-ascii?q?DozAfe8NpSjvODvoxlaSe9Y3VjKb0zZXBV/1H0d3F7U72GLqps3JjW3Q+1oqRo?= =?us-ascii?q?Zua0PnmQZ7D4IiKUIi8FIX2DYMERARaRCHC7GlHUblLYoBVUUYbBSIwri7dbkt?= =?us-ascii?q?3U1yxLOv6/XfbepiCKoRLvxdlBKBnEBHGpIKtq0TWLN8el5H+6HNugfvEJPnUO?= =?us-ascii?q?b6lXUuKfK5WMda8doWt3E6+AawWwKg6Ytf77YckJ2Hba9EYYPCvc9m7Udn5CIP?= =?us-ascii?q?djRXjxhiixO0SvwTpOf+7dfFqpWo9/yuVKE3R+oN7RQ0AH5+j5ToilA5vd7Xz/?= =?us-ascii?q?tcSpHSiYnn6ABCOWKKt5ra0xhyLuoOMYGrcK9793oZIygeJnQOPceZavQn+y9i?= =?us-ascii?q?KinT6EBCAsICYtMYJsnNlRpXikL3QrFT8NTUGluCB4d0bcAo4HL9yCop/pskTu?= =?us-ascii?q?bg9Di2KIjD71FXIfxDiD9jlNTcq+UO3PXSCScX4XiFaxdv2SON0YONC+vq8eWK?= =?us-ascii?q?1t7US0sMHjQqXIdFODqC5QunS/K6lJrzSAOb9NPzgJIleUKUR3yxgLoKsqZWHu?= =?us-ascii?q?5dkSX3xD5eGZ7ph/iNqdqj9HNXtkFbEIZ09RDFF7tQPpNnORT/kcmnQVN8CTX7?= =?us-ascii?q?eMHVcBoupeWXy/wI4+pgLUv/ZZUULggCy73k9XpfVhFuR6LuvlaFQeIRY8NrR+?= =?us-ascii?q?/Grn9P9Y1tMLMAPF+ZpJzurzdHtko2ABM3Z7AsrjxWbE7OnBdaW6zsor4PlhMc?= =?us-ascii?q?UcJluU9LAW+wPWU+5zzbVaRakqacE/kV8jSJQawITUpoLi1/QxSv2JVtYLulh/?= =?us-ascii?q?ZHvX1anilluvglzyRmRAeguS3rv68N1i4v+KqjtDkYpHJLQeOQkybOCVVew/UH?= =?us-ascii?q?lqgcC3P45ly6fnYPdozy4KNoJc7474ku/2w/YQk/fy0BRemgCSbwj6OOAoCVrN?= =?us-ascii?q?1chBqNuNjTYr6yLCgSMK89yRHiR3VmzAjenQho/3EPQjq97d8oPoO9Ntg5xiCw?= =?us-ascii?q?A2jUaE4M4r9VsMv2rVMLTfU2ZklnwGh41siHWzACRM3IG2YulAQkbn9EcJ1b4x?= =?us-ascii?q?8AC6YomiqIvrVB/gwMYjfbDIql+ofUncrT13gyV9FqyXzKpqGfgJMlzmFlkctu?= =?us-ascii?q?7iGSoHQSa/DYU8h0D3j80odfzuL/aOupsuADU4Zm07OhUPkDMsa/42e23otlWl?= =?us-ascii?q?O9zLQEA1W5KPMDxqvcUyq9S22YWeSKc3CLnzY9M07y+QenI0YyaMdLs089KPXN?= =?us-ascii?q?ioRblw37XrN+Xj+QqkPDzGw/LeMacBo7uIi6ewwLUeERYPORJfQ0wPIgDlsMc2?= =?us-ascii?q?XGHS9sBO+wrVGtnZJ0N29m4UrkfeTn6hrmP8eKGhkYDY7aqYZ8+eC7RmKEInJg?= =?us-ascii?q?0BxyM1V39+jBE1Q9rOlcfIiNndLIndR0zfYFd+txMS06otMTn4Nj6YqX0MeNah?= =?us-ascii?q?zRzIz9JdLSovieHfLfyV4memdEXboFeQn1/Zk1PsYlW73PGrtUpQ8TCrY8QJw9?= =?us-ascii?q?LGrx76V0LARvcg7NerS7nNTlqviMZptOqH/c9kgwIzvEux0f1vy0ShR2b4ith3?= =?us-ascii?q?X2Op8wXDxAr9ppChtoB4ZPHsQArw28A5GKhK67kdix+1hhu+8Lt6rwBerG1NOj?= =?us-ascii?q?34V+R5Ja/1CEPC7NBKl3hURoluqyjenE0pnwEcPtZ8gJVel6Qm7Ab7/JAJ+/Kj?= =?us-ascii?q?aQNc7mfE5G6bGc2qpjUhqNfCD5Q7aGtCq8OfRq+UU70I14c/bNwzE26rHb2cfy?= =?us-ascii?q?Z3tFqSu5qn6JLpRf5kTQBePCRxJUVeaF8GF9EK0QaYv76vwDMcQmwNeG+Alz8D?= =?us-ascii?q?VC39eZI6i7sEDDxFh3dZTFI0v1wyw5Q5UFIAyjMUswhm/UsnDdAXVaLsi5Jshh?= =?us-ascii?q?mdKVDh3250ltgmEgfW9BFXDuRdeWI2Qb3Ni+ZAKS/gJRE9kDh/K3eVI/tqCqUu?= =?us-ascii?q?lnJJFFmeSstLUantdlLC7BRNRaPy7ONr95ICJRAf/UqVgrfBEEqb41VZkxZZeV?= =?us-ascii?q?PUMHP12MySTozQvNyUf0bcCj1L6VICYK9XVK17fF3iJQqAm5uPaZhMrjXavHbJ?= =?us-ascii?q?H3Wv7dLi4lVjCcRTQvHkel41Cku+ALvPCAO2cQvkgUYj6OCA4Uvq1vr8LfDmzU?= =?us-ascii?q?meJ4Z5AKmfaaWzzwSC1/iaoyCSZLtVyWT/oFCwbWc2frgHBAtwy6Ov9M4XXlYq?= =?us-ascii?q?WXxqVPQOMWGIpMfeOdQ9bDZ/BeIy0nli4YOOahZdHcqag20k7QR2sDD6bI7EGe?= =?us-ascii?q?TFKRQvGExTLrWIIVv5Iuuiop4dLdhSl3HL7NP7mBpj6i6Im4jDyXuefGTGkif1?= =?us-ascii?q?Q1gP4eAGmG2BRAM28EC9QJt0zsQaONfFhM22wzieJv2h4MfwJzXmdo0nJIgPbu?= =?us-ascii?q?UvFeHEUZiGKoXe0ucEF8DDR2+1SDpAL1f48uo8fWElFf6vMpTogPLeJgvJfSP6?= =?us-ascii?q?kCwe0Bxj9qoCUm9S6aCgUO3Uq+76PMEfcklfV57m4i8qQzBxmC?= X-IPAS-Result: =?us-ascii?q?A2ECBADhdAxZ/wHyM5BcHAEBBAEBCgEBFwEBBAEBCgEBgwE?= =?us-ascii?q?mA2KBDI5zqFwoC4pBVwEBAQEBAQEBAgECaCiCMyINRlgBAQEBAQEjAg1eBgECJ?= =?us-ascii?q?FUDCQEBFzEIAwFTGQWIUIFLDrMsOiYCimoFhl+GSIFShycBBIlClC2HG4tvDYp?= =?us-ascii?q?wJ4ZRSJNvWIEKTiEVhTkcGYFMdAGIdAEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 05 May 2017 12:50: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 v45Coeut012135; Fri, 5 May 2017 08:50:41 -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 v45Co7K7079966 for ; Fri, 5 May 2017 08:50:07 -0400 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 v45Co7Rf012111 for ; Fri, 5 May 2017 08:50:07 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1BhAQCCdAxZhxy3hNFcHAEBBAEBCgEBgywmZYEMjnOoYyyFeAKER1cBAgEBAQEBAhMBAQEKCwkIKIVFAwMnYlFXGYhVgUsOsyo6imUBCyEFhl+GSIFShycFiUKULYcbi28NinCGeEiTb4FhTiEVhTkQDBmBTD42AYh0AQEB X-IPAS-Result: A1BhAQCCdAxZhxy3hNFcHAEBBAEBCgEBgywmZYEMjnOoYyyFeAKER1cBAgEBAQEBAhMBAQEKCwkIKIVFAwMnYlFXGYhVgUsOsyo6imUBCyEFhl+GSIFShycFiUKULYcbi28NinCGeEiTb4FhTiEVhTkQDBmBTD42AYh0AQEB X-IronPort-AV: E=Sophos;i="5.38,292,1491278400"; d="scan'208";a="6041814" 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; 05 May 2017 08:50:06 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AMhK/2BQFpyfCcxSzBYrFAJzNAtpsv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa69ZBKN2/xhgRfzUJnB7Loc0qyN4v6mBzBLvM7JmUtBWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6?= =?us-ascii?q?OPn+FJLMgMSrzeCy/IDYbxlViDanb75/KBS7oR/Qu8QZjodvKro9wQbVr3VVfO?= =?us-ascii?q?hb2XlmLk+JkRbm4cew8p9j8yBOtP8k6sVNT6b0cbkmQLJBFDgpPHw768PttRnY?= =?us-ascii?q?UAuA/WAcXXkMkhpJGAfK8hf3VYrsvyTgt+p93C6aPdDqTb0xRD+v4btnRAPuhS?= =?us-ascii?q?waMTMy7WPZhdFqjK9DoByvuQFxzYDXbo6XOvpzZb/Rcc8ASGZdQspdSzBND4Wh?= =?us-ascii?q?ZIUPFeoBOuNYopHyqFsPsRu1GA6iBOTtyj5Jh3/2xrAx3uM/EQHD2wwgHdMPsH?= =?us-ascii?q?XPrNjuLqcdT/26zKnSwjXfdf9ZxTD96I3Rfx0nvPqCU7Vwcc/LxkkuEQPIlk+Q?= =?us-ascii?q?ppL4MDOVzOsNr3KX4PZnVeKqjWMstgJ/oiC3y8syloXEgpgZxk3K+Cln2oo5ON?= =?us-ascii?q?61RUBhbdK6E5ZdsTyROZFsTcM4WW5ovT43yr0Ytp6/eygH0JEnxhHCZ/CdaYiH?= =?us-ascii?q?/A/sVOaLLjdknn5qZLW/hxOq/UihzO3zSNW03U5UoiZZltTArG0B2hLN5sSdV/?= =?us-ascii?q?dw/Ums1SyR2w3Q8u1EJFo7lavfK54v2L4wkZ8TvFzdHi/zn0X2jq6XdkQ/+uWz?= =?us-ascii?q?8eTofKjppp+GOI9okA3xLqMumsmnDeQiLgcOR3Sb+fi71LD75k32XrFKjvwwkq?= =?us-ascii?q?nEv5HXPtgbp66lDA9V1YYv8RC/Dyy839gCknkHK0xFK1q7iN3yNlXPJu3oJeuu?= =?us-ascii?q?iFSr1jFwzrbJOaOyLI/KKy39kaupWLF/+U9HgF4tyNdd9ZNPIqsMLPL6Rgn6s9?= =?us-ascii?q?mOXUxxCBC93+uyUIY17YgZQ2/aWqI=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0EtAgDMcwxZhxy3hNFcHQEFAQsBGAEFA?= =?us-ascii?q?QsBgwEmZYEMjnOoYyyFeAKER1cBAQEBAQEBAQIBAhABAQEKCwkIKC+CMyAPRlg?= =?us-ascii?q?BAQEBAQEjAg1eAwMnYlFXGYhVgUsOsyg6imUBCyEFhl+GSIFShycFiUKULYcbi?= =?us-ascii?q?28NinCGeEiTb4FiTiEVhTkQDBmBTD42AYh0AQEB?= X-IPAS-Result: =?us-ascii?q?A0EtAgDMcwxZhxy3hNFcHQEFAQsBGAEFAQsBgwEmZYEMjnO?= =?us-ascii?q?oYyyFeAKER1cBAQEBAQEBAQIBAhABAQEKCwkIKC+CMyAPRlgBAQEBAQEjAg1eA?= =?us-ascii?q?wMnYlFXGYhVgUsOsyg6imUBCyEFhl+GSIFShycFiUKULYcbi28NinCGeEiTb4F?= =?us-ascii?q?iTiEVhTkQDBmBTD42AYh0AQEB?= X-IronPort-AV: E=Sophos;i="5.38,292,1491264000"; d="scan'208";a="5511767" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mx1.redhat.com ([209.132.183.28]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 May 2017 12:50:06 +0000 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 331A5C04B302 for ; Fri, 5 May 2017 12:50:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 331A5C04B302 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=vmojzis@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 331A5C04B302 Received: from Thinkpad_450.brq.redhat.com (unknown [10.40.3.114]) by smtp.corp.redhat.com (Postfix) with ESMTP id AC5EA80693 for ; Fri, 5 May 2017 12:50:04 +0000 (UTC) From: Vit Mojzis To: selinux@tycho.nsa.gov Subject: [PATCH 3/3] libsemanage: replace access(, F_OK) checks to make setuid programs work Date: Fri, 5 May 2017 14:49:47 +0200 Message-Id: <20170505124947.21392-4-vmojzis@redhat.com> In-Reply-To: <20170505124947.21392-1-vmojzis@redhat.com> References: <1488219577.19819.19.camel@tycho.nsa.gov> <20170505124947.21392-1-vmojzis@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 05 May 2017 12:50:05 +0000 (UTC) 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 access() uses real UID instead of effective UID which causes false negative checks in setuid programs. Replace access(,F_OK) (i.e. tests for file existence) by stat(). Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1186431 Signed-off-by: Vit Mojzis --- libsemanage/src/direct_api.c | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/libsemanage/src/direct_api.c b/libsemanage/src/direct_api.c index 508277d..35ca1b0 100644 --- a/libsemanage/src/direct_api.c +++ b/libsemanage/src/direct_api.c @@ -272,7 +272,9 @@ int semanage_direct_connect(semanage_handle_t * sh) /* set the disable dontaudit value */ path = semanage_path(SEMANAGE_ACTIVE, SEMANAGE_DISABLE_DONTAUDIT); - if (access(path, F_OK) == 0) + + struct stat sb; + if (stat(path, &sb) == 0) sepol_set_disable_dontaudit(sh->sepolh, 1); else sepol_set_disable_dontaudit(sh->sepolh, 0); @@ -1101,8 +1103,9 @@ static int semanage_compile_hll_modules(semanage_handle_t *sh, goto cleanup; } + struct stat sb; if (semanage_get_ignore_module_cache(sh) == 0 && - access(cil_path, F_OK) == 0) { + stat(cil_path, &sb) == 0) { continue; } @@ -1165,7 +1168,8 @@ static int semanage_direct_commit(semanage_handle_t * sh) /* Create or remove the disable_dontaudit flag file. */ path = semanage_path(SEMANAGE_TMP, SEMANAGE_DISABLE_DONTAUDIT); - if (access(path, F_OK) == 0) + struct stat sb; + if (stat(path, &sb) == 0) do_rebuild |= !(sepol_get_disable_dontaudit(sh->sepolh) == 1); else do_rebuild |= (sepol_get_disable_dontaudit(sh->sepolh) == 1); @@ -1190,7 +1194,7 @@ static int semanage_direct_commit(semanage_handle_t * sh) /* Create or remove the preserve_tunables flag file. */ path = semanage_path(SEMANAGE_TMP, SEMANAGE_PRESERVE_TUNABLES); - if (access(path, F_OK) == 0) + if (stat(path, &sb) == 0) do_rebuild |= !(sepol_get_preserve_tunables(sh->sepolh) == 1); else do_rebuild |= (sepol_get_preserve_tunables(sh->sepolh) == 1); @@ -1231,37 +1235,37 @@ static int semanage_direct_commit(semanage_handle_t * sh) */ if (!do_rebuild) { path = semanage_path(SEMANAGE_TMP, SEMANAGE_STORE_KERNEL); - if (access(path, F_OK) != 0) { + if (stat(path, &sb) != 0) { do_rebuild = 1; goto rebuild; } path = semanage_path(SEMANAGE_TMP, SEMANAGE_STORE_FC); - if (access(path, F_OK) != 0) { + if (stat(path, &sb) != 0) { do_rebuild = 1; goto rebuild; } path = semanage_path(SEMANAGE_TMP, SEMANAGE_STORE_SEUSERS); - if (access(path, F_OK) != 0) { + if (stat(path, &sb) != 0) { do_rebuild = 1; goto rebuild; } path = semanage_path(SEMANAGE_TMP, SEMANAGE_LINKED); - if (access(path, F_OK) != 0) { + if (stat(path, &sb) != 0) { do_rebuild = 1; goto rebuild; } path = semanage_path(SEMANAGE_TMP, SEMANAGE_SEUSERS_LINKED); - if (access(path, F_OK) != 0) { + if (stat(path, &sb) != 0) { do_rebuild = 1; goto rebuild; } path = semanage_path(SEMANAGE_TMP, SEMANAGE_USERS_EXTRA_LINKED); - if (access(path, F_OK) != 0) { + if (stat(path, &sb) != 0) { do_rebuild = 1; goto rebuild; } @@ -1395,7 +1399,7 @@ rebuild: goto cleanup; path = semanage_path(SEMANAGE_TMP, SEMANAGE_SEUSERS_LINKED); - if (access(path, F_OK) == 0) { + if (stat(path, &sb) == 0) { retval = semanage_copy_file(path, semanage_path(SEMANAGE_TMP, SEMANAGE_STORE_SEUSERS), @@ -1408,7 +1412,7 @@ rebuild: } path = semanage_path(SEMANAGE_TMP, SEMANAGE_USERS_EXTRA_LINKED); - if (access(path, F_OK) == 0) { + if (stat(path, &sb) == 0) { retval = semanage_copy_file(path, semanage_path(SEMANAGE_TMP, SEMANAGE_USERS_EXTRA), @@ -1732,7 +1736,8 @@ static int semanage_direct_extract(semanage_handle_t * sh, goto cleanup; } - if (access(module_path, F_OK) != 0) { + struct stat sb; + if (stat(module_path, &sb) != 0) { ERR(sh, "Module does not exist: %s", module_path); rc = -1; goto cleanup; @@ -1762,7 +1767,7 @@ static int semanage_direct_extract(semanage_handle_t * sh, goto cleanup; } - if (extract_cil == 1 && strcmp(_modinfo->lang_ext, "cil") && access(input_file, F_OK) != 0) { + if (extract_cil == 1 && strcmp(_modinfo->lang_ext, "cil") && stat(input_file, &sb) != 0) { rc = semanage_compile_module(sh, _modinfo); if (rc < 0) { goto cleanup; @@ -2737,7 +2742,8 @@ static int semanage_direct_install_info(semanage_handle_t *sh, goto cleanup; } - if (access(path, F_OK) == 0) { + struct stat sb; + if (stat(path, &sb) == 0) { ret = unlink(path); if (ret != 0) { ERR(sh, "Error while removing cached CIL file %s: %s", path, strerror(errno));