From patchwork Thu May 4 20:45:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jann Horn via Selinux X-Patchwork-Id: 9712711 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 35D1860235 for ; Thu, 4 May 2017 20:52:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2EA3726907 for ; Thu, 4 May 2017 20:52:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2373828387; Thu, 4 May 2017 20:52:25 +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.4 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM autolearn=no version=3.3.1 Received: from emsm-gh1-uea10.nsa.gov (emsm-gh1-uea10.nsa.gov [8.44.101.8]) (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 22CF326907 for ; Thu, 4 May 2017 20:52:23 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.38,289,1491264000"; d="scan'208";a="6676623" IronPort-PHdr: =?us-ascii?q?9a23=3A6k3guxfKW4M/LhMkWKCkZkd8lGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcq5ZhaN2/xhgRfzUJnB7Loc0qyN4v6mBzZLuMzZ+Fk5M7V0Hycfjs?= =?us-ascii?q?sXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFRrwLxd6?= =?us-ascii?q?KfroEYDOkcu3y/qy+5rOaAlUmTaxe71/IRG3oAnLt8Qan4RuJrsvxhfVv3BFZ/?= =?us-ascii?q?lYyWR0KFyJgh3y/N2w/Jlt8yRRv/Iu6ctNWrjkcqo7ULJVEi0oP3g668P3uxbD?= =?us-ascii?q?SxCP5mYHXWUNjhVIGQnF4wrkUZr3ryD3q/By2CiePc3xULA0RTGv5LplRRP0lC?= =?us-ascii?q?sKMSMy/2/Nisx0kalVvhSvqRJiyILQeY2ZKeZycqbbcNwdWWdMUNpdWzFYDo+g?= =?us-ascii?q?cocEEu4NMftYooX4oVYFsBmwChS2BO731DFGm3H406493esjHwHGxA4tE88AvX?= =?us-ascii?q?rUttX6KrwSXPupwKXU1zjPc+lb1Sv/5YXObxsvoeuMXbV1ccfJ10QvFxnFjlSL?= =?us-ascii?q?qYz5PjOazOINuHWa4fJmSeKvl3UnpB1xojex28wslIjJiZgIwV7Z6yp5xIc1Jd?= =?us-ascii?q?ulSE90fNWpF4BQuD+eN4t3RMMiXm5ptT0myrwGpZG7fC8KxI4hxx7EcfOLaYeI?= =?us-ascii?q?4hX9VOuIJzpzmXFreKqnihqv/kWtxffwW8mp3FpQsCZIncfAumoQ2xDL6MWKSe?= =?us-ascii?q?Fx80eu1DqVygze7vtILEA6mKfdNpUv2KQ/loAJvkTGBiL2nUL2g7KIeUg84eio?= =?us-ascii?q?7vjnYq3hpp+BK494kgH+Pboqmsy4Gek4LhIBX3Ka+eShz73v51H5QbVWgf02la?= =?us-ascii?q?nVqpbaKtgApqGlGQNV14cj6xKnAzen1tQXg2UHIUpYdB+IgIXlIVHDLO3iAfuh?= =?us-ascii?q?jFmgji1ny+3eMr3kGJrNL3zDkLn7fbZ67k5R0BEzws5b55JVDLEBPf3yVlbqu9?= =?us-ascii?q?zfEx85NRC7zPj8CNhmyoMfWX6AAq+eMK/It1+I/fggL/ODZI8SpjbxM+Il6OL2?= =?us-ascii?q?jX8lhV8derGk3ZkQaHC+BPtmP0WZbmDqgtoaE2cKuQw+TOnwh12ZTT5ceWyyX7?= =?us-ascii?q?km6jE8EoKmAp/JRpqxj7yZwCe7AppWa3hEClCOC3jna4aEW+wLaCKUI89hjCcJ?= =?us-ascii?q?VbalS4882hChrxL6y7x7LurJ4CEYsojj1Ndt7e3JiR4y7SB0D9ia02yVQWB0n2?= =?us-ascii?q?cIRzoo06BlukF9xEmM3rV/g/xCD9NT/+lJUgA4NZHC0+N6F8r+WgXbfteGUFym?= =?us-ascii?q?WMmpASktTtItxN8De1tyFMmnjhDE2SqqH6IZmqeVBJMq6KLc3nnwJ8F7y3rc0q?= =?us-ascii?q?kukUUmSNNVNWK6nq5/6xTTB4nRnkqEi6alb74c0TXR+2eEyGqBoFtXUBVsUanf?= =?us-ascii?q?W3AQeFfWp8zj5kzeV7+uFagnMgxZxM+CK6pKbdvpgE5DRPfnIdjeYmSxl322BR?= =?us-ascii?q?mS3LOMb4vqe3sD0ynHDkgLjRwT926cNQciHiehv37eDDt2GF3xe0Pj6/N+qHKg?= =?us-ascii?q?TkIv1wGFdVdh17uu+h4NgfyTUe8c0awetCcmsTV0E06338jKBNqYuwphYKJcbM?= =?us-ascii?q?sz4Fddz23ZsRByPp27L615g14eawV3s1r11xR5EYVMi88qrGklzABqM6KXzEtB?= =?us-ascii?q?dy+E3ZD3IrDXKXP9/BOoa67LwVze08yZ+qQI6PQlsVnjuxupFkU6+XV9z9ZVy2?= =?us-ascii?q?ec5onNDAcKS53+T1w39xlkqLHAeSQy/Z/b1Xh2PamzqD/C1MojBPE5xRa4Y9df?= =?us-ascii?q?LKSEGRfpE80UHciuL/cqm0SyYxIfOuBS86A1P8a8ePuAwqKrOvhvnC6+h2Rd/I?= =?us-ascii?q?99yl6M9zZ7SuPQ0ZcK2fWY3heZWDfml1esqd73lp5eZT4JA2q/zDLoBIlLZq19?= =?us-ascii?q?ZYwLE3uhI9WrxtVigJ7gQ2JY+0O+CFMHwsCpfQGfYED63Q1VyUsYu2enmTeiwz?= =?us-ascii?q?xyjT4psrKV3DbSzOT6aBoHJmlLSXFkjVftJYi0i84VXFOzYgczihSl/0H6y7Jc?= =?us-ascii?q?pKRlIGnZWV1IcDTuL2F+TquwsaKPY9BO6Jw0rSVXV/68bUqGRb79pBsa1SzjEn?= =?us-ascii?q?BaxDA6cTGloI/5nxtghGKaNnZzo2LTedtsyhfH+NzcWflR0yICRCl5kjnXGkGw?= =?us-ascii?q?P8K38tWQlpfDtP2+Vm26W51IaSnrzIWAtCqn6m1xGxG/me68msH/GwggzSD7z8?= =?us-ascii?q?VqVTnPrBvkeInr0KC6MeZ5cUlyGFD87MR7F5plkostmJ4QwmIWhpKP/XoIiW3z?= =?us-ascii?q?K8lU2bribHoRQj4G28bV7xL42E1nNH6G3Zj1WW6awstle9m6ZWUW1zk478xWDq?= =?us-ascii?q?eU66BLkTFzolWmsQLbeeJ9kSsFyfsy9H4ahPkEuAkzwSWbGbAfBkpYMjLqlxST?= =?us-ascii?q?6dCxsrlXaHyocbiq20p0hcqhA62aogFARHb5fY8vHTF27spiK1/Mznvz5ZzkeN?= =?us-ascii?q?XKa9IcqAGUmQ/aj+dJMJIxiuYKhS1/NGLlp3Il1uo7gAdy0pG7oIiGK3xh/Kyj?= =?us-ascii?q?DR5eLDH1YNkT+j71h6ZEgsmWx5yvHolmGjgTRpvnUO+nHSkdtfTiOAeCCjs8pW?= =?us-ascii?q?mHGbDHBw+Q9F9mr27TE5CsL3yXPGMWzchmRBaDPExQmgYUXCkkkZ4jDQ2q2dfh?= =?us-ascii?q?f1lj5jAK/FL4sRxMyv9yNxbjTGjfqgCoai07SJeBNhZW6B9N51vNO8yE8u1zBz?= =?us-ascii?q?1Y/oGmrAGVJGyUfQJIDX0OWkyBHF3jMKeh6sTH8+iCHOW+N+HOYbKMqeNAS/iI?= =?us-ascii?q?2Yij0ox8/zaDLs+PJGVtD+Un2kpfWnB0A8HZlC8LSywTiS3Nc9Kbqw2m9SBsqM?= =?us-ascii?q?Cw7ujrWBnz6oSVE7tdL89j+xaojqefL+SQnjp2KS5E1pMQwn/F0KIf0EQcii10?= =?us-ascii?q?cjmiC7AAtSnNTa/LgKBYExsbZzl0NMtS4KI2xhNNNtLDitPpyr54ieY4C1lfVV?= =?us-ascii?q?P/h86pftYFI2ehNFPAH0aGL66JKiHOw83tZqO8U7JQhv1OtxKsoTabD1PjPjOb?= =?us-ascii?q?mjnvTRCgK/lMjDmAMRxQuYG9aA1tCXTtTNLnbB20Ktl3giE3wbIugnPGL2kcMS?= =?us-ascii?q?Jzc0lVtL2f8TtYguljG2xG9ndlNfeLlD2H4OneK5YWrfxrDz91l+1E/ns11aFZ?= =?us-ascii?q?7CZeRPx6gCHStMJho0m6kumTzTpqSAdBqi1Vi42RskViI7/W9odbVHbf5h0N7n?= =?us-ascii?q?iQCw4QqNd/Dt3vpqZQxcLVlK7qNDdC9NHU/MsbB8TOLsKILmYhOwLzGDHIFAsF?= =?us-ascii?q?USKrNWbHikxGiv6S6GearpckpZj3g5cOUaVUVEIvGfMVFEtlB8YOIJFpUTM4ib?= =?us-ascii?q?SbltIH5WKirBnNQ8VXpovIVvOdAfXoLjaUlqRLaAUTzrP5N4sTMJf320t4all1?= =?us-ascii?q?hI7KAVbfXchRoi19aQ85uF9C8HdkQW0txU3ocQSt4GcNGv6ymx45kAp+YeA2+z?= =?us-ascii?q?fr7FY7PF3KpDE/kEMpg9XqnSiRcCLtLKe3RYxWFy30t00rPpPhRAZ0bBO9nUp/?= =?us-ascii?q?OzfeQLJekbhgeHt3hw/bvJtABeRTTbZYYBMKw/GYeeko20xGqiq73U9H+ffFCZ?= =?us-ascii?q?x6mQspcZ+sq2xP1hlmbN4yK6zQKrRGzkRMhqKOuS+o0/4+zBUYJ0kT7GOYYDQI?= =?us-ascii?q?t1AQNrk6Oyqo+fRh6QqclDRZfGgBTPkqovVx9kMhIeuAyTng071CKkyrMeyQMb?= =?us-ascii?q?+ZsXDalcGUWlMwyl8Il05d8Lhsz8gjaFSbWFo1zLSNFxQELtHNKQBPb8VP83jT?= =?us-ascii?q?cz6Osf/TzpN1JYm9EP7nTfOWvqYOnk2kBBopH5gL7skZA5as10fYLcH6I7EbzR?= =?us-ascii?q?Ut5R/mK0+bA/RTfxKHijAHo9uwzJVvx4lSOikdAXlhMSWw/rvYuxUlgOSCXNgr?= =?us-ascii?q?eXcXRZELNmgsWM29lS9ZpGpPAyWq0uIDyQiC8z/9qj7WDDbic9ppfO2Uag90CN?= =?us-ascii?q?Gq5TU/9LC7iVrQ8pXEOW76M9VjutjU5OMVoZaHFulYTb5ns0fTg4NYXWClU3bT?= =?us-ascii?q?Ed6pIJj9c5IsYsLwCna7VFy/lj00QtztM9aqK6iHnRvnRZ1IsIWB2jAsK9O9HC?= =?us-ascii?q?kEGxhsv+ED+L58ZQobbpo4ex7ptx4xN6qjIAeYydiuTGGtKSNKQPVFy+W1eaBX?= =?us-ascii?q?xTI2buCm0HsgUo06z+6v/E4RRZEKixbexeqjZ4heSiX8B31degXVqiUijWRhMP?= =?us-ascii?q?g9wvsnyhPSrVYcKyyLdPBuaGFcpd48AVKSLmloBWUgQl+djYzD4gmq378I5CZS?= =?us-ascii?q?hNdU3vdDsHTnsJ/ffSigWKq1ppXJqyAgd8Qpo7VtMYz/JcuLrIjRkSLZTJTLqA?= =?us-ascii?q?KKTTC6GORAmthLOi1YWvlJlXsiOcwctopL8VAxWdsmJ7xTFKksoainaTV5DS4T?= =?us-ascii?q?yS8ZU52P3DkZj+ihxbTVjRaQf44kMBAet5VCmNQdWTZsYiwCvK+jS5nWl2icR2?= =?us-ascii?q?gRJgcT7BhD5AIHlo90ZeDr+JPGQoJWxTNKpPx5STfEFp5t91TnUG6WmkT4RO+n?= =?us-ascii?q?k+O3wQJY1Ojs3cUDWB5jFUhdwP5bllEyJ7FtLKkfpZXHsiOSdUzgomLi1u+mJF?= =?us-ascii?q?hXyc3bc134DYXFtWrgUi0S43IUX4pPxGvZFZsMjwpzcLwrq0lUIIC6Zkb+4CQp?= =?us-ascii?q?xopzE7akVcCrxlMlrXccSCepCNdBCv9pv0zJVzF/ZJCrsprlMY1IQmBM4J2dt0?= =?us-ascii?q?tZkEJ1PiGj05pcNsdN7iQPXDVUoDWdvdqySNFY1sNsCZ8DPMt/sW/nGKxYIJiR?= =?us-ascii?q?v2E2urv3x3/Y/TA8rEm1xDGtFK+9Ue1Z43ceGwUyKmSZskkgEe0s8mLI/VDMtl?= =?us-ascii?q?B75OBbB7eVgUV2ujZ9EYhEBixV2nC9M1RzUH5Gvv1VKKTPacNcReUyaASuOxw5?= =?us-ascii?q?G/8m2VCJ/UFqknf4ZSxyqhVV+zrHUwkySyYVnq/nmScCpcG/JT8aV5VIYC09by?= =?us-ascii?q?fCLgKWgjxXsApaa05xQZwZBMhK+60D14tO4sXCUVqsKT0CXBF6NgI3y+BfmlRH?= =?us-ascii?q?sEqFYi3SEBSnde7XshJpeceestSpIO7+/AddhYPtqPo4+LkbR326hQ2tRsjTr4?= =?us-ascii?q?37ttKUrUaBabn3M/aibn/bUDjDkw2/ia0iD5bU4yjZKBBbJIViyXo4fZjhDnbG?= =?us-ascii?q?Mg9IJ60HO0ZWV712ZNtdr+9GYM9kfboG9rV2BhKbXB/vHpKgrOVeJFbJWTveNz?= =?us-ascii?q?mB8vC4oY/L97zSV/XvZsyWyHbbWK93OpB66SflFLv0zYBe/Vf51el3+kN8V1fG?= =?us-ascii?q?LziLrM79KQMT+Mmiakzis4UxHTPNHJd/imfixl1besoMRC2q7Y4Yx49H53b2Ve?= =?us-ascii?q?J4yFL8sOlI+7lj84k37Khjyd2oKqfKNfRarUhnDwCIBgVw6JoiHnVwSntMYu8V?= =?us-ascii?q?NPfRZ74Wjd7vq+DwE6wY9gGV9/ZeadvdKEHLgtO/BS2ESRxYgAcBriYXLgmG2P?= =?us-ascii?q?6fnK90UsKlqvLn2k825li+MxoGzKxs5YiY+6qHvunXbwDLwbgDQKjqSdv5rq4w?= =?us-ascii?q?tEOK+f0kiLkOd3R3YwK9FugdWNQdxmD9wq801i8sD9nMH7T7+P5ETX45mCzvm4?= =?us-ascii?q?xlFVUMBvwUBaaL/ZhZnmognezZMsYbcqFEmmaKDxKkE7kCyXCx6ySNO2llngvO?= =?us-ascii?q?0wzsTmOv8V/2tzF3TTHLz9f5nUpfTqO3CltKXyq1JU94tyuCPAzptNXrvqQ16F?= =?us-ascii?q?s5Mnf+uNKMk2uhP6hXH9bkKdyZLiQ1q0gbjJorRtygwYobA8ayIM8N8HFiafvT?= =?us-ascii?q?83+knDVFo6hZnIre/sGU+vLMEHm7k6KaqquCxDZEyng5p14z8NagOe/S59eSWf?= =?us-ascii?q?Sny34RTztjuwvGRxO1rqfbr1UUNEGQ3kfEhpEFPtZD3XYizkHm/u8jQNAt+wpC?= =?us-ascii?q?CobMffQCpSr8ODHs21aQf8o3VjWC0ztQBl/1E1h4GK0n1WL1os3IlWnf+0cpRo?= =?us-ascii?q?l2eEzrnxp3AJskKUg18lgY3jIDERQRaRCcFLyoBEXkIpEeWkcfchmHx6a1ersp?= =?us-ascii?q?0kJv2L+v4/XTbeNkDaoXKvldlhKOnERcGp8OqqIeQal8elFH+67VpwjiF5DnUO?= =?us-ascii?q?L7lXo0LvC6Xsda/t0HuHQ4/wa/XR2g6Y1Z4LoBj5CIbKFEa4DWvM9g90dn+SIP?= =?us-ascii?q?ditVjRhnlRy5TfwTpODt49jcqpqo6f+iVL0zSOUT9hg0AXl+jpTrjVA7u97Xy/?= =?us-ascii?q?tTSo3biIT46gBNIGSGuIXE3BlmL+oBNYarcKxn93UdKCgUP2gOMsaOa/kg/y9t?= =?us-ascii?q?Ny3e50BYAswSYdMXJszNlh5Ph0L0WbFT+cvbGkOCBIdobc8o9Xf3xCoz8ZQiTu?= =?us-ascii?q?bq8CW2KozH71FRI/NDiz1hlN3Yq+gP3/XSFCgX7GKdaxh03iON1ZmNBOzt/eWX?= =?us-ascii?q?0t3UUU0JHjIuWYdHODWC4RCnRvaylJjxXQOb9MnzgI45dEKXQXCxh7oKsqJNEe?= =?us-ascii?q?5GlyX60SNTFoTriPKPs9uj8nFbtltZH4Zv9RfFArlQPo1nORTkkcmmXlRzBinl?= =?us-ascii?q?d87IbRchpO2WxuMI4+V/KUT+f5MbLQwYxLL683ZVSRFuSLHutFaDQe0RfMdmSO?= =?us-ascii?q?/Drn1N7IJgLKkPPESSpJP0tTpIrVE2DxUvaLAusjxbeE7OnBdWW6bvorIAjBUT?= =?us-ascii?q?UcJhs09WBW2wIH4+5ybAValNg6meFOcV8i6KQqITXEtmNCJ+QxWo2JRhYLapkv?= =?us-ascii?q?VHvXlAnixjuvQq1CZmRBSksy32u60NwS4g+K2/tDgZu3xFSeWekyHSBVpfzPQK?= =?us-ascii?q?ibocBGvj6Fy9ZnkDd4jy4Lh8KMT+9Ikh/W4wYRE+cC0HR+igDT//j7+QCIyVrN?= =?us-ascii?q?1cnAKNuNnJbbKrLCgSKK4yyRT4Snh5zwjRgRdo8GwQQjm6698kPoq9M94/xiW0?= =?us-ascii?q?AWjbaEoM4qRRvcvzq1ELQuU2aVd6zWRtyMeHQDMCRNDVF2YzkAckdX1OcIhf5h?= =?us-ascii?q?8CC6konjGIs7FJ/gEQZzfVHJqq+o3UncrTwnk9StFqxmPKqaGfgJMlzmFlkctu?= =?us-ascii?q?7iGSoHQSa/DYU8h0D3jx1odeyfT+Z/KpsuAGVItp1q+sUPoDMsm/42u5xo9mWk?= =?us-ascii?q?i/xrQRB1C5KvMMxq/HUye5Tm2VQeuLc3WNnzkkNU7//gWoLkcpZ8dMs08yKO/C?= =?us-ascii?q?iYRalwL9ULN7XD+cpVnFw2w/KekabR45uJ+7ewwWS+4cf/ScJekrwPAlFFsMbm?= =?us-ascii?q?PGHShoBO+yq1KtmpZ0O2l460Xgfevt6hzmMMeVGhQcFI7ar51x+f+9Rm+aO39v?= =?us-ascii?q?1h5yPE5y9+jBEVQ9rOlcfIiNndLIndR0zfYFd+txMS06otMcgZxs6Y+I0MqRah?= =?us-ascii?q?HRypHyJc3JoviGHfLQ0l4memZAUroWeQn1/Zk1PsYlW73PGrtUpQwcBa8+QJM7?= =?us-ascii?q?LWfw+qZ0LAd9cgPKYbS0hc7qpvmVaZRIvX/W6UkwLDzdux0Fxfy4Vwt7b4qlh3?= =?us-ascii?q?/qOpA/WipBr8FxChthBIZPFd0Prw6mA56Mhq62kN6w+0J/u+8Pr6XwEPTK28qj?= =?us-ascii?q?04V2RZha6lSBPCzNC6lznkRlkuOyj+/O05npE8PieM8LW/ZgT27Aa7/GAp+/JS?= =?us-ascii?q?yUNsL7YU5G/KaW0KhlXRWJeCD5Q62GuTWjNPVg/0o20ZR4fO7Jwzw287Hb2cf9?= =?us-ascii?q?Z31Bpii9s3GFLp1f40LWBebGRRJbVeKF8Hp5Ha0QdYb08OYOMdo/wNmT+gVz6D?= =?us-ascii?q?VC0NCZI6i6tULM21h0dZTcLEfz3CY5Q4YKKgylMUQwmW/ZtmjdAXNEI8i/N8Zt?= =?us-ascii?q?hNeVDhrw50h+nm0jaXJBGmr2SteLJ2cbw9ixaRaJ9A1VFdYDmfC4eUojua2vRu?= =?us-ascii?q?lkIJJFmf+ltL8fi9ZmNznPRNRGPyHXNLJ2OyBeAfnPpFgpZB4EtKM4Wpk0ZZiI?= =?us-ascii?q?PkwHNEaAySXvzQrNy0H0cMas1KmRKiYM7npH167F0SRLpwShu/aWmM7jULfCY5?= =?us-ascii?q?ztQf7SNjYlVjGdRTQvHkap+Uukt+ACvPWGPWcVukoUbT6KCA4PuqBvqsDdAXTI?= =?us-ascii?q?luFkeJ0KheuaWzzrSCFij6o9GDpEuVqXQ/UdEQnWbnnhgHdTuQG5OvBN/Wjlb6?= =?us-ascii?q?CDxqZPVe0ZGJdMcuaeQ9veY/xeIC0oljoBMuamY9Lct6o50k7PTWYBHKnH7kaR?= =?us-ascii?q?TFSXQvOCwzLmRpsVv4wutSoz+9LQgzV7E6LWMLaDvzSu6JK3jD6Eue3CUWkge0?= =?us-ascii?q?41gOcFAGmb2hlAKXoEBsoTuE73R66PeUdM2GguieJ01B8GYB5zXWF20n1KgPa9?= =?us-ascii?q?HdVUSUUajGOrXPILbVN6ASgu/UCU+A3yYN0BucfVR2NE8LsDV5Ydf7EU79zMNa?= =?us-ascii?q?8Rxus59C53qyw99SOGBhVSiRzWyafIGLNAwehp5XM55O13V0fHbK3DbnPMyofu?= =?us-ascii?q?X8lA1yBorGvM2M3TseRgMbJbo8dyB1JcUgxsIdWI1jBbUHro2QK09zklACiFKz?= =?us-ascii?q?IUqCgKLGQ+e+J0yfJr+ELTe9LA716An74wo0usTwCQA/y734IdWZKh7hmxdSQe?= =?us-ascii?q?KWbjLJtxsPsYyds=3D?= X-IPAS-Result: =?us-ascii?q?A2FVAwBckwtZ/wHyM5AmNhAKAQEBAQIBAQEBCAEBAQEVAQE?= =?us-ascii?q?BAQIBAQEBCAEBAQGDASmBbo5zkVWCB44XhHWBciiGVAEIg3VXAQEBAQEBAQECA?= =?us-ascii?q?QJoKIIkDwqCWQYBAnkDCQEBFzEIAwEwAQUBAwEYGQWIA02BMwEBFgSlDj+OLiY?= =?us-ascii?q?Cg2lZghsECoQGEogrgmeEZoYWAQSJOIZggVaLZRKTCIIRiGwLHAyGREiSJTNDU?= =?us-ascii?q?liBCiULHicPXwZoGYNTHIFlRS+GRII9AQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 04 May 2017 20:52:22 +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 v44Kp0ha001164; Thu, 4 May 2017 16:51:07 -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 v44Kjqcc035981 for ; Thu, 4 May 2017 16:45:52 -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 v44Kjoqd031752 for ; Thu, 4 May 2017 16:45:51 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1B3AgCXkgtZf0JSfUpcHAEBBAEBCgEBgyyCF45zkVWQHoZuhiQChE1XAQIBAQEBAQITAQEJCwsIJoVHAwNAATgBAwwGSzQBBQEcGYhVgTIBAxUEpQs/ji6DCgWBAoJRCkANgy4BAQEBAQUCHgIGCQEIhD2DboJnhGaGFgWJOIZggVaLZRKTCIIRiGwLKIZESJIlM4EVgWEvQBVfhEsPHIFldIZEgj0BAQE X-IPAS-Result: A1B3AgCXkgtZf0JSfUpcHAEBBAEBCgEBgyyCF45zkVWQHoZuhiQChE1XAQIBAQEBAQITAQEJCwsIJoVHAwNAATgBAwwGSzQBBQEcGYhVgTIBAxUEpQs/ji6DCgWBAoJRCkANgy4BAQEBAQUCHgIGCQEIhD2DboJnhGaGFgWJOIZggVaLZRKTCIIRiGwLKIZESJIlM4EVgWEvQBVfhEsPHIFldIZEgj0BAQE X-IronPort-AV: E=Sophos;i="5.38,289,1491278400"; d="scan'208";a="6041205" Received: from emsm-gh1-uea10.corp.nsa.gov (HELO emsm-gh1-uea10.nsa.gov) ([10.208.41.36]) by goalie.tycho.ncsc.mil with ESMTP; 04 May 2017 16:45:49 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3A1CVvVx3Eu6/FODW6smDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?se0TK/ad9pjvdHbS+e9qxAeQG96KtbQa0aGP6fiocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDuwbalzIRmoogndq9cajZd/Iast1xXFpWdFdf?= =?us-ascii?q?5Lzm1yP1KTmBj85sa0/JF99ilbpuws+c1dX6jkZqo0VbNXAigoPGAz/83rqALM?= =?us-ascii?q?TRCT6XsGU2UZiQRHDg7Y5xznRJjxsy/6tu1g2CmGOMD9UL45VSi+46ptVRTljj?= =?us-ascii?q?oMOTwk/2HNksF+jLxVrg+vqRJ8xIDbYo+VOeFicq/BZ94WWXBMUtpTWiFHH4iy?= =?us-ascii?q?b5EPD+0EPetAsYT9p0EOrRqlBQmwBePg0DlIjWL307U8z+QhDRrG0xAgH90QrX?= =?us-ascii?q?/Zq8n6NKgTUOCyyqnH0y7DYuhZ2Tf674jIfRQhru+JXb1qcMrRzVMjGB/CjlWV?= =?us-ascii?q?sIHoOS6e2OcVs2WD7edtWvijh3M5pwxxuDSixdkghpPIi48U0lzJ9yZ0zJw1KN?= =?us-ascii?q?C3UkJ3fNqpHIFQuiyUMYZ9X9ksTHtyuCkgz70LoZ67czYOyJQg3xPfbuaIc4mM?= =?us-ascii?q?4h76WueRJCt0iGtreL++hhu+60egyur7Vsm71FZFsDBJncXLtnAIzxDT686HRe?= =?us-ascii?q?Vh/kq52zuC2Brf5vxaLU00j6bWKIAtzqQxm5cSqUjDGzX5mETyjK+YbEUk/e2o?= =?us-ascii?q?5vz7bbXpp56cMIl0hR/lMqk1lcy/BuM4MgcKX2eF/OSzzrzj/UnjTLpWif02l7?= =?us-ascii?q?HVsIrGKsQDuq65HwhV35446xmhCzem0dIYnWQILV9eZBKGj5TmO1HJIPziC/e/?= =?us-ascii?q?mE6jnC1kx/DBIL2ySqnKe2POlLbnYKZV919XyA11y8tWoZ1TFOIvOvX2D2Txrt?= =?us-ascii?q?3DEh4wNUSbXfr7E95928tKUm2dBamUK4vdtliH4u8qKuiIIoQSvWCueLAe+/fy?= =?us-ascii?q?gCphyhcmdq6z0M5PZQ=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GcAQBskgtZf0JSfUpcHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgwGCF45zkVWQHoZuhiQChE1XAQEBAQEBAQECAQIQAQEJCwsIJjG?= =?us-ascii?q?CMyBVWAEBAQEBAQEBAQEBAQEBAQEBAQEWAislAQEZAwNAATgBAwwGSzQBBQEcG?= =?us-ascii?q?YhVgTIBAxUEpQs/ji6DCgWBAoJRCkANgy4BAQEBAQUCHgIGCQEIhD2DboJnhGa?= =?us-ascii?q?CfQyDDQWJOIZggVaLZRKTCIIRiGwLKIZESJIlM4EVgWIvQBVfhEsPHIFldIZEg?= =?us-ascii?q?j0BAQE?= X-IPAS-Result: =?us-ascii?q?A0GcAQBskgtZf0JSfUpcHAEBBAEBCgEBFwEBBAEBCgEBgwG?= =?us-ascii?q?CF45zkVWQHoZuhiQChE1XAQEBAQEBAQECAQIQAQEJCwsIJjGCMyBVWAEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEWAislAQEZAwNAATgBAwwGSzQBBQEcGYhVgTIBAxUEpQs?= =?us-ascii?q?/ji6DCgWBAoJRCkANgy4BAQEBAQUCHgIGCQEIhD2DboJnhGaCfQyDDQWJOIZgg?= =?us-ascii?q?VaLZRKTCIIRiGwLKIZESJIlM4EVgWIvQBVfhEsPHIFldIZEgj0BAQE?= X-IronPort-AV: E=Sophos;i="5.38,289,1491264000"; d="scan'208";a="6676469" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mail-wm0-f66.google.com ([74.125.82.66]) by emsm-gh1-uea10.nsa.gov with ESMTP/TLS/AES128-GCM-SHA256; 04 May 2017 20:45:47 +0000 Received: by mail-wm0-f66.google.com with SMTP id y10so5878843wmh.0 for ; Thu, 04 May 2017 13:45:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=giPEenx8dNCH6iG4OauwIWthk3MQuPvcZOPJNk2Td10=; b=Jy5ISiLa+bOzslPMOfZ/kybuUQAJ8CEq3fRhltsbwFbXgFjm4e9K9hrWaT3l29cocT edvzjQBpR/9DXYtTyF0C6pKXVCBAujWUV7JUuBgkATeOvwHtEuIr28vV7xRVQ+QUHQhr JcP8e9trAWNruU7r/HXFNI8P0WcoR3uU2U4VKnDc9vTUxiR8NQ6XfuQQFFtWnpGx4x2N H6GHpW5K2nB9dBDbfFG7mVqEQpBZAimYnHXObftrt6n2TAk2vqFheofpofjv41rFrmva rJ2rOo/2+frhYqSTw6KqH3bCjp2PqT/HHEJfUUsHbRc+lBPTakhyVlOrtPtS7P8OUhq0 SLbA== X-Gm-Message-State: AN3rC/5yMRGc8dqdYlIK983eLquFmojAccEXhV0AkrFdNwZ3PJYrk40f DNWDG0nZTdUm1Q== X-Received: by 10.80.144.14 with SMTP id b14mr3266829eda.36.1493930747665; Thu, 04 May 2017 13:45:47 -0700 (PDT) Received: from localhost.localdomain (x4e361335.dyn.telefonica.de. [78.54.19.53]) by smtp.gmail.com with ESMTPSA id e11sm1188148edd.68.2017.05.04.13.45.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 May 2017 13:45:46 -0700 (PDT) To: selinux@tycho.nsa.gov Subject: [PATCH 1/2] libselinux: add security_get_checkreqprot Date: Thu, 4 May 2017 22:45:37 +0200 Message-Id: <20170504204538.17853-2-cgzones@googlemail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170504204538.17853-1-cgzones@googlemail.com> References: <20170504204538.17853-1-cgzones@googlemail.com> 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: From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= via Selinux Reply-To: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Add security_get_checkreqprot() function, returning the current active checkreqprot value --- libselinux/include/selinux/selinux.h | 3 +++ libselinux/man/man3/security_getenforce.3 | 9 ++++++- libselinux/src/checkreqprot.c | 40 +++++++++++++++++++++++++++++++ libselinux/src/selinux_internal.h | 1 + 4 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 libselinux/src/checkreqprot.c diff --git a/libselinux/include/selinux/selinux.h b/libselinux/include/selinux/selinux.h index 45dd6ca5..01201eee 100644 --- a/libselinux/include/selinux/selinux.h +++ b/libselinux/include/selinux/selinux.h @@ -331,6 +331,9 @@ extern int security_setenforce(int value); /* Get the behavior for undefined classes/permissions */ extern int security_deny_unknown(void); +/* Get the checkreqprot value */ +extern int security_get_checkreqprot(void); + /* Disable SELinux at runtime (must be done prior to initial policy load). */ extern int security_disable(void); diff --git a/libselinux/man/man3/security_getenforce.3 b/libselinux/man/man3/security_getenforce.3 index 7658014a..346b2cbd 100644 --- a/libselinux/man/man3/security_getenforce.3 +++ b/libselinux/man/man3/security_getenforce.3 @@ -1,6 +1,6 @@ .TH "security_getenforce" "3" "1 January 2004" "russell@coker.com.au" "SELinux API documentation" .SH "NAME" -security_getenforce, security_setenforce, security_deny_unknown \- get or set the enforcing state of SELinux +security_getenforce, security_setenforce, security_deny_unknown, security_get_checkreqprot\- get or set the enforcing state of SELinux . .SH "SYNOPSIS" .B #include @@ -10,6 +10,8 @@ security_getenforce, security_setenforce, security_deny_unknown \- get or set th .BI "int security_setenforce(int "value ); .sp .B int security_deny_unknown(void); +.sp +.B int security_get_checkreqprot(void); . .SH "DESCRIPTION" .BR security_getenforce () @@ -24,6 +26,11 @@ returned. .BR security_deny_unknown () returns 0 if SELinux treats policy queries on undefined object classes or permissions as being allowed, 1 if such queries are denied, and \-1 on error. + +.BR security_get_checkreqprot () +returns 0 if SELinux checks protection on mmap and mprotect calls preset by +the kernel, 1 if SELinux checks the protection on mmap and mprotect calls +requested by the application, and \-1 on error. . .SH "SEE ALSO" .BR selinux "(8)" diff --git a/libselinux/src/checkreqprot.c b/libselinux/src/checkreqprot.c new file mode 100644 index 00000000..9b4b12d7 --- /dev/null +++ b/libselinux/src/checkreqprot.c @@ -0,0 +1,40 @@ +#include +#include +#include +#include +#include +#include +#include "selinux_internal.h" +#include "policy.h" +#include +#include + +int security_get_checkreqprot(void) +{ + int fd, ret, checkreqprot = 0; + char path[PATH_MAX]; + char buf[20]; + + if (!selinux_mnt) { + errno = ENOENT; + return -1; + } + + snprintf(path, sizeof(path), "%s/checkreqprot", selinux_mnt); + fd = open(path, O_RDONLY | O_CLOEXEC); + if (fd < 0) + return -1; + + memset(buf, 0, sizeof(buf)); + ret = read(fd, buf, sizeof(buf) - 1); + close(fd); + if (ret < 0) + return -1; + + if (sscanf(buf, "%d", &checkreqprot) != 1) + return -1; + + return checkreqprot; +} + +hidden_def(security_get_checkreqprot); diff --git a/libselinux/src/selinux_internal.h b/libselinux/src/selinux_internal.h index 3d5c9fb4..54949c13 100644 --- a/libselinux/src/selinux_internal.h +++ b/libselinux/src/selinux_internal.h @@ -59,6 +59,7 @@ hidden_proto(selinux_mkload_policy) hidden_proto(security_getenforce) hidden_proto(security_setenforce) hidden_proto(security_deny_unknown) + hidden_proto(security_get_checkreqprot) hidden_proto(selinux_boolean_sub) hidden_proto(selinux_current_policy_path) hidden_proto(selinux_binary_policy_path)