From patchwork Wed Apr 12 22:00:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Christian_G=C3=B6ttsche?= X-Patchwork-Id: 9678441 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 9367560383 for ; Wed, 12 Apr 2017 22:03:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8217D285EC for ; Wed, 12 Apr 2017 22:03:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 72F3828632; Wed, 12 Apr 2017 22:03:17 +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=-3.6 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from emsm-gh1-uea11.nsa.gov (smtp.nsa.gov [8.44.101.9]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 69E39285EC for ; Wed, 12 Apr 2017 22:03:16 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.37,191,1488844800"; d="scan'208";a="4848978" IronPort-PHdr: =?us-ascii?q?9a23=3Aiqm2uxc4Iog9Pk8LmS4fRcfllGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcq4YBaN2/xhgRfzUJnB7Loc0qyN4v6mADJLscnJmUtBWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6?= =?us-ascii?q?OPn+FJLMgMSrzeCy/IDYbxlViDanb75/KBS7oR/MusQXjodvKaQ8wQbVr3VVfO?= =?us-ascii?q?hb2XlmLk+JkRbm4cew8p9j8yBOtP8k6sVNT6b0cbkmQLJBFDgpPHw768PttRnY?= =?us-ascii?q?UAuA/WAcXXkMkhpJGAfK8hf3VYrsvyTgt+p93C6aPdDqTb0xRD+v4btnRAPuhS?= =?us-ascii?q?waOTE56mXXgdFugqxdrhyquhhzz5fJbI2JMfZzeL7Wc9EHSmpbRstfVzJPDJ6y?= =?us-ascii?q?YYUMCOQOP+hYr5H/qlcToxaxChWjCuzxxT9TnXL2wa833v49HQzcwAAsAdQDu2?= =?us-ascii?q?nUotXvM6cSVPi4wbfIzTXZbvNWwiv96InSfRAnvPqCXLRocdbNyUk0CwzFjkuf?= =?us-ascii?q?opHiMjyJ2eQMsm+b7+x+WuK0kGMnpAZxoj+gxscolIbJg5gaylHA9Slj3Ik1It?= =?us-ascii?q?i4RVd9bNW5E5VQrzmXO5Z5T84tWW1luDs2xqcYtZO0YiQG0okrywbdZvGEaYSF?= =?us-ascii?q?4g7vWPyMLTp5mH5pYrGyihS0/EO90OPzTNO030xPriddl9nMsW0C2ALL58icT/?= =?us-ascii?q?t94l+h2TGS1wDP8u1EIV47la7cK5M53r4/jIATsUXeHi/tgkn2kK+XeVkk+uiv?= =?us-ascii?q?8ejnZKnppoSAOINujwH+M6AultS+AeQ+LAcOQ3CW9fmz2bDs50H0QKhGguconq?= =?us-ascii?q?TWrpzWP9kXqra8AwBP04Yj7xi/Dy2h0NQdhXQHN0xKeBaGj4jvJlHPL+n0Auy4?= =?us-ascii?q?g1Sxljdk2+7JPqb6D5XRLnnMjLfhfbFn505a0wo818pT551TCrEfOP7zQFP+tM?= =?us-ascii?q?TEDh8lNAy52+TnCNJ71owERWKPArWWMKXJvF+K4eIvJeyMa5UOuDbhNfcl/eXu?= =?us-ascii?q?gWU+mV8HcqmjxYEXZ2ygHvR6P0WZZmLhgtUDEWgQogU+T/fqiFqEUT5SeXa/RK?= =?us-ascii?q?w85jUmCIOpFojDW4atgKCc3CuhGZ1WfG9GAEiWEXj0b4WER+sMaCWKL895jDML?= =?us-ascii?q?TqauS4kg1RGysw/30LtnIfTK9SIGr57j08J15+LLnxEo6TN0F9id032KT2xsg2?= =?us-ascii?q?wIQDk23KZirkNjzleD0LN1jOZGGtxJ4PNFSAA6NYTTz+ZiEdD9RhrBfsuVSFah?= =?us-ascii?q?WtipHC0xQcgrw9IVf0l9HNCigQzZ0CqxH78ZjbqLC4Io8qjExXj+O959y2ra1K?= =?us-ascii?q?kml1QmQ81PNXG4ia576QfTApDGk1mDl6eqbqkc2zbN+3mFzWqLpk5YUQpwXr7C?= =?us-ascii?q?XXEQfEfWqs755kzaRb+0FbsnKhdBydKFKqZSatzojFJGRPH4NdTbZ2K9gmawBR?= =?us-ascii?q?CSyrOKdoXqYWYd3CTDCEcaiQwT+2iJNRQmDCe7v23eFCBuFU7oY0707+Z+sGm0?= =?us-ascii?q?TlU1zwGRdEBhz6C6+gQUhfyHU/MT2qgLtzs/pDluG1a9xd3WAcKapwV9ZKVcfc?= =?us-ascii?q?894FBf2GPXtgx9OpmgIL54hlMFfQR4oV7h1xJtCopaicgqtnQqzAhsJq2EzFNN?= =?us-ascii?q?bTSY3Yr/OrfPMGn94Aiva7LK2lHZyNuW9L0P5+4+q1r/vQGpDVEv83B/09lUyn?= =?us-ascii?q?ec/ZvLDBEIXZL2SEY3+ABwp6vGbSkl+4PUyXpsPLG3sjDY2NIpA/Ylxw2jf9hF?= =?us-ascii?q?M6OEExLyH9cdB8i0J+wgg0KpYQ4cPOBO6K40ONureOGb166xPeZvgiimgH9d74?= =?us-ascii?q?9h10KA7S18SvTH35wd2fGXwhOHVyvgjFemqs34hZpLZTUMEWqk1SjlBIlRa7Zp?= =?us-ascii?q?fYkXCGehPcu3xsl/h5H3QXJY8kCsB08e0s+zZRWSd0D93RFX1UkPunynlzG4zz?= =?us-ascii?q?tvkzE1taefxyrOw+PsdRoCIGFLQnNujVHyLoiol9oaRlSnbxA1lBu54kb336Za?= =?us-ascii?q?q757L2nPX0hIZTP2Inp8UqSurLqNeNNP6JYyvSVQSuS8bkiQSqThrBsCzyPjA2?= =?us-ascii?q?xeySgndz63p5r5ngZ1iGaGIXlvq3rZfN1/yg3E5NzAX/JR2CQJRDVggznNGle8?= =?us-ascii?q?J8Wp/cmTl5rbtOC+VmahVplNfinw1o6PrjW05XdtARGlmPCzgNLnGxAg0SDnz9?= =?us-ascii?q?lqSTnIrBHkb4n11qS1Lf5nfk5yBFPm98V6GoZ+ko0/hJwL3Xgah5OV8mAdkWf0?= =?us-ascii?q?K9lb3rj+bHUVTz4R39HV+BTl2FFkLn+Rw4L5V26dwtd4a9mhfGwW3iM978ZXCK?= =?us-ascii?q?ab97FEhjN1olu+rQLQffd9hS0Ryf0w534Gm+sJohYizj2BArAOGklVJTbslxOM?= =?us-ascii?q?79C6sqpXfnqgcb++1UdlhtChEa2NohpGVHb+YJciEjd67t9jP1LUzH3z9obkdc?= =?us-ascii?q?HIbd0Jqx2Ulw3MgPJPJJ0qkfoKgTZnOWX7vXA+zu43kRpu3Zams4SdLWVi4r65?= =?us-ascii?q?CAZCNjLpf8MT5i3tjaFGk8aVwY+vGI5hFy4IXJT2S/KoCzQSuur7NwqUFz08sH?= =?us-ascii?q?ibE6LFHQCD8Edms27PE5ezOnGPPnYZ0NFiSweFJENFhgAUQCs1noQiGwC338zu?= =?us-ascii?q?bl155isL6l7jrRtM1/hoOAXhXWfRoweocDg0R4aFIBpQ8A5C+1/fMdaC4eJrAy?= =?us-ascii?q?FY4pqhoRSTKmydegtFFn8JWkqZCFDjJLWu48fP8/SADOqkM/TOeamOqfBZV/qQ?= =?us-ascii?q?3ZKgyJZm/zKXO8qTP3liE/061lNNXX9jHcTVgTIPSzYYlyjVdc6UuA+8+jFrrs?= =?us-ascii?q?C46PnrWwLu5Y+RBLZJNNVv/B62gamdOO6MmCZ5KTFY1pYSynPSzrgQwkISgTl0?= =?us-ascii?q?dzaxCbQAqTLNTKXIl69ZFREbbT9zNMxN768n0AlCJ9PUitTv1rFilv41EVBFVV?= =?us-ascii?q?7/lc61ecwGOWa9NEnIBEyTLrSJOSXLw93rYaO7UbBfkeNUuAertDmGFU/sJC6P?= =?us-ascii?q?lz7zVxCgKetMlj2UPARCuIGhdRZgEXLjQMjoaxGhNd94lzk2wbo0h37RL2ETLT?= =?us-ascii?q?18f1lKrr2K4iNSmu9/FHBZ7np5MemEnD6U7+fCKpkIrPRrGT57l+RG4HQ90LtY?= =?us-ascii?q?9ztLS+BwmCfIqd5uuV6mmPGVyjV7SBpOtipLhIWTsEVkI6XW7IFAWW7f8RID7G?= =?us-ascii?q?WQEQ8Kp8drCt3uvaBf0N7Pm77yKDhY99LY58wcB9LbKMifKnouLQLpGCLIDAsC?= =?us-ascii?q?VTOkLnrQi0tZkPGT7X2VsoM6poL3mJUQVrBXTkc1Ge0eCkRkGtwCPZh2Uyg4nr?= =?us-ascii?q?+bls4I+GG+oAPfRcpAopDHTfWSAfP1JDael7lEaAMCwankIoQLKo37x0tiZ0Fh?= =?us-ascii?q?k4TLFErQWtZNrzZ8YQAqu0pN8WJxTmsp10LicAOt72cZFeSokR4ulgt+feMt+S?= =?us-ascii?q?/27Fc4PFXKujU/nVI2mdX9nz+RdjvxI72xXYFSECX0sEcwPon8QwZvYg24hVZk?= =?us-ascii?q?OyvcR7JNk7tgcnhmiBPbuZtKA/JcV6pEYR4OyvGRfPooy1NcpTukxUJc+eTFDp?= =?us-ascii?q?5imxcwfp63s3JMwQRjY8ApJabIPqpG0kBQhr6Svi+vzu0xxhERKFwJ8G6Jey4I?= =?us-ascii?q?v1cINqU8KCqu5exs6g2ClyFFeGcSS/oguuhq+V8lO+Sc0yLg1KZOKlqvOOyEMa?= =?us-ascii?q?yWoXLAmtKIQl4rzUwIllNF8qVx0ccta0qUTV4gzbuLGxQPK8XCNRlfb9BO+3jL?= =?us-ascii?q?YSaOreLNzIpoMIqnCODoTPKBtL0Pj02+BgYpBYMM78oaHpayzE7YMN3nLL8ZyR?= =?us-ascii?q?Qt/gjrIkuKDOhRchKRjDgHu92/zINw3YRFOz4dGntyPj+45rbNvAAqnuGOXMws?= =?us-ascii?q?bXcZQ4sELGg5VNe+my5EuXRPFiO33vsFyAiF7D/9piPQACP6b9V9ePeefQlsB8?= =?us-ascii?q?2u+TUj76i2jkba8pHZJ2HgK9tivN7O6eQBqpaIDfNUUKNxs0DGm4lXX3aqSXLA?= =?us-ascii?q?EcapJ5jsbIkhdcf0BWi+Uly+jTI1UsjwMc2xIaiPhAHnWZxbsJKH3Dw5M8+yCC?= =?us-ascii?q?0eEQ9qp+4f/KJ8eREDY50jbBH1qws+Mqu/IAGE0tmzWGutNyVZT+NezeS7YLxX?= =?us-ascii?q?yTAgbumkx3s8Vps61fW48VYRRJEWiRHT3fWjZ5NeUCfpHHxdZwXPqDE2l2hmLu?= =?us-ascii?q?Y93v0zwBXWvlkAKzqLbvBmaHRYv9EgAlOfOWl2Cms9R1+bkYrD4g6t0qsP8Ctc?= =?us-ascii?q?n9dby/ZKvGL4vpDBfDKmQLarponNsyo8cdgmpLV8MYP5IsScspPegifSTJjXsg?= =?us-ascii?q?yLVi66C/palcZRICJeXPlHh3slNdYAuYVf9Uo7Tt0+KKBXCKkwurCqbiJpAjQW?= =?us-ascii?q?zS8YS4yPwiQNguK82rvckReQdo4tPQcfv5VDmNQdVTd6Yi0DpKO5UYXZiXOEQH?= =?us-ascii?q?ARIAgP9QRM+B4Alohoc+/+/oXISoRBxCRLrPJqTCTLDIJo+EHhSmCWm1T4T++h?= =?us-ascii?q?k+Ox1wJI0P3sysUbWAJ4CUVF3eZWkEooJ613K6kXuo7KqSeGe1rnsmz31OaoI0?= =?us-ascii?q?JcxtHTd139EIXKr3H8UjEG9X0SW4BP1GnVFY4OnAphdKYruFJMLZi6dUb8/TMr?= =?us-ascii?q?259kEKW/VcCvw1YlrGgJRz22E9VfF+5msEjbWDp/Y5CksJ/lIYldQndM+J2BrF?= =?us-ascii?q?dUiF9tPDSjyZpbMM5A+SIMXCJVrjWDotSyTMxD2cl5D58II9d/tHf9GL9KOJeL?= =?us-ascii?q?uX02v6bjynnH9DAgqF263im8G7ekT+JF+G0TAgsoK36CpUkvDuss92bS/UrOsl?= =?us-ascii?q?1v/udUGKaAgltrrDZ6BJBOCS5D1Wq5IFRrUHlGr+JaJbzNc8xbR/k9fwWvOhI5?= =?us-ascii?q?Ff4i0UyE5kR0nXD+YyxpqARV5zrdXw4vVSkOg7ftnzIeptugOT8ARJJCdS8hYD?= =?us-ascii?q?vdKwKHhSBXuw5SZFtwW5AEBNZJ4bIb0JBV/srDSEasNToKUAZkNg0mzfpVjVRD?= =?us-ascii?q?v1mAeSDBEQqocu7CsgFwfceUt8OpMOj1/AJchY/9tuA36bkDTWW8mQKxWdDes5?= =?us-ascii?q?P8ttqSu0uObqj4KfezYXvcQzXXkB+/m68kD4HU8CjXLgVbMYN2yX0+YZjuEWTL?= =?us-ascii?q?JwhJJ7oHJ0pHUqB3cddGoudEaMJ/ZakG57RtCQydRhPzBoOgseNKLlDNSjTCNy?= =?us-ascii?q?+B6PCwoZrP7bzBTujtfteDx3jbTK5rPJp29Df2Fqz23o9Z/0r5xu1i9lhmSVTc?= =?us-ascii?q?NSCOssjhLBsR5Ma+bkviooEpHTTODZdqjnXi20FAeNALQyCx9JQYz41Z52juRe?= =?us-ascii?q?1k1Uj8rfNd+6Ni6YYp/7Bj0d20KrvKKfRGrU9nBQCZBh1x9pUxGmdwWnxRb/QK?= =?us-ascii?q?KPfWYKQZl9zhpP7xF6wL8h2a4ehZZcHAJ0Hblcm1EiucRgBcnAcdtT4aKROR1+?= =?us-ascii?q?Kfm6BqV8mquPP02l8p41iiNB4J1q5t5YaD+qqMuuDXcwHdzb8eWqjlXsnztKgj?= =?us-ascii?q?u1uO5f04k74DYml1bBejEOgZSMEd2nvgwrowwi83FcPMAa7g+OVfWH0jhjLvhY?= =?us-ascii?q?pxH1MIFfMIBbCL55hRnn8km+zFMd0baqJClXyVFR6jCb8CzWSk6zWMLWlgnxHO?= =?us-ascii?q?1w3wQWKv41/3tyB4RzDMw83kkkpPWbm9HV1SUDaxOU9krDOPOxLltNjttqQz4k?= =?us-ascii?q?E2KGvku8+Tm2a6JLNYBcv/JMebISUuolIYkoExTMS12Y8HAdq9PMsR8HZmY/vR?= =?us-ascii?q?9mOrkitBo6NZiIrb+cya5+vYEmKhj6KArbWB3jdYymI3vVsn8NCvKunO58GWQ/?= =?us-ascii?q?Svz2sRSSN/thDAXx6zr7zXtVEUOUqF0EfRgoMKJc1Z3WMl1k76+OgjXcgz+xtE?= =?us-ascii?q?GobHffMCqij5OCHozlaHf9I3Si6e3iNSHlLyF1l4BKc813zrscLMlHff4VsoSZ?= =?us-ascii?q?dsd03pghx3FYY4KVk35FgR3CUDDRAHaQqHA7GwGUTlMYwEWFAZaRuawbe3Yag3?= =?us-ascii?q?3Uh8w7+14u/cc/B8DbIXNvlBlg6OgERbGpUOvK0aW7J8fl9Q+bXZpgf8FofnWO?= =?us-ascii?q?LmmmAoNf2vRcBa894WuGc+4gqlQBqg85hD5a4BiJ+Ubq5EfYTMvMdk4kd8/zEP?= =?us-ascii?q?aDZCgBdhgBOiSu0cv/rs4sbBv5qn9OmuT7whR+MJ+BgoH25+lYf/gEg/odHL0O?= =?us-ascii?q?dRUo/ViYX68A1WJn6Fpobb3AdmKeoPLYKrc6xs93MZKCgCP3gOJ8aZa+Eg4y9x?= =?us-ascii?q?NzXe/11CA8IWatwCIMXAghtUhVP1WL5N6sXXAFiYC518d8ow9Wr41Cg18YcgUu?= =?us-ascii?q?bn8DK5PpHf70pDPvxZjiVslc7CpPAPzvrPDCga+mWWax9ozSyc0ZaNFuzw/eKW?= =?us-ascii?q?yN7OTV8GGTQ2U4hFLjqY5QOnXva1lInuUg6M8s/8mo4+e16QRn2/m6QFqKVMHf?= =?us-ascii?q?dbiirl2jheF4b1h++aste38GtYrEFHH5pz7RzLH6VfJJZ7NQ77lsa1XEh8ADXw?= =?us-ascii?q?eMXOehopouqWyf8G4/9iOEvmeY8bPhUExqrm6XpPUARuTKT5vlCHUu8KedRmSf?= =?us-ascii?q?zErnFJ6Y16MK8AJkKdpIHwojdOtl82HBcjaKUsoTxCaknOgApVVr77uLEakAsT?= =?us-ascii?q?T8J5uU9XFGK0OWI++yTIVaRPg6mME/wZ6DOTQbISU09wKCNxXwu12Ilye7uuhf?= =?us-ascii?q?1HvX1JniVhoPgt1DxqQwC8tjPop6IM3zIg5b65uS4FuXNbVOWfkz3HBU9FzPsU?= =?us-ascii?q?kacWE2zi5kCkYHkfcIvy56FqJcLh9YY95HQ/ZQ8sfzYcUeShDCHwiLiIApeUvd?= =?us-ascii?q?JZixOMt9/CbbipLSgdLr490w7sR2Bh0gjCmxZl6GQLTSm77N8/PYmzJMkryCyp?= =?us-ascii?q?GWjdaVYN7bhEsMT0tVERSus5d0ltwGJ50siIXicNXtDAG34pjgg4bmVJaJBD6R?= =?us-ascii?q?gaF6kumDqHoqlG/gUJYDjJE4Wl+4/QndzL2Xk8Vtpq2GPWprOfiZMuzXJlmsl4?= =?us-ascii?q?7iiQt3QOb+bYSdNjAmDv1odDzuzzf/Stsv4dR4tg07mhVOICPdSi+Wuxw5VmQE?= =?us-ascii?q?ilxq4RH1ChKu8M2q/bUzu5SW2fQemLcXaDnzg3Mk72/hSpIEc4aMFUoE8hKOfC?= =?us-ascii?q?gIBTlxH5W7NuWiqQvUPbzHAkMe4CeAI2vICnegIUQ+4VY+iRPvMuwPo4CFsNc3?= =?us-ascii?q?DFBy12BPGqsVS1hoh0J21g4VnmYeTq6g3mMtuSGxkcEY7dqp5x+OC6SXyaNH9l?= =?us-ascii?q?zR1yIFN0+PnFG1Q2rO9cfI6bncLMiNRjze4Fa/BtPDUhut4Sn4Ju8pWU0MaWfh?= =?us-ascii?q?HS0JnyIcvZov6GDP3D104qYH1VUqIFYQPp4IU3Jts5W7zQHbtauhQRHqo6T4Yi?= =?us-ascii?q?N2f28qF7MgVzfhTXZLuqnsngvviLaYdMp3/K8lIwKz/RtAYdxfyyUQx2dIuqh3?= =?us-ascii?q?H1IJAsWjJBscNiBQZ8EItIAcMAoBKtA4SIl6Gjl9+x50R6tvcEsaXuDvDK1cy5?= =?us-ascii?q?0JtqUplb5EyLOTPRC7dxgkRhkOu+mPDA0oP+Ccn6Y9MLSPB7QnLZar/BBoi+JC?= =?us-ascii?q?qOOtj9e0Fa7bGRy7d5UhSNZCDjQaWKriqkNO9r4U8j0Ix3YPLTzCAx77HcwNby?= =?us-ascii?q?YGVbqTm4oH6RMJtQ9kfKBfDfXx1IVfqF6nhqErMNYYvy6ugOLcQowMKA7Alr8D?= =?us-ascii?q?RCzMyFLrClrk/N3EJ7aJ3aIFLt2yY4QokKPA+/PFAtgWDDrHTdBm5QLs++Kcli?= =?us-ascii?q?mNyVFADi51FtmWExYW5MAnHoSsmVOWga3cK+eQKL+AVEAdYfn+64Z1Q4ubOqSe?= =?us-ascii?q?ZyIZhFmvultK8Bkdl3LyHAX9VaPy7KIL9xJDpRAf3FpEI0bR4cr7g1RoA1aICL?= =?us-ascii?q?IEwdLEiAySLyzQ3F0UDvadys1aCJLzgS8nVGybLFzDdNqxO+ufaDjc3pSKrZY4?= =?us-ascii?q?3uXP7OLColUSmXRTYoHkaq/leroOEJvOeeIWcDolAUZT+SCAETpqBzt9TQCHHc?= =?us-ascii?q?mfF7dp0QmP+aQzzwSDF/lKcqCSZEr1uDQ+ACFQbIa3/sm3RcuAi4Kf9X/HLlcq?= =?us-ascii?q?eUxqxLVOwKGoFMaOGWQ8PEefBCIDcljjcZOOO7f93GtbY500nIQHAfE6bS8V2R?= =?us-ascii?q?Uk+WTuabxzLxUoUfp5I0tTYw+tLMgi93FLzFP62Rpz6r7oG1jSWVtPbAVmYzeU?= =?us-ascii?q?w1geMDAG6HwBVaLmELFc0Vsln3QqGcf0ZMyG4pieV21h8OfwRzVHlu32ZTnPmj?= =?us-ascii?q?B8JZR1kUjHmyT/IYdlx3Ci0//VPZqjH1NMcNvcHVWn926qoHSY1bKuIhrobQJv?= =?us-ascii?q?g+2vEsiRlmui0hrySUCRtyEB6Z6KHQEeoozbJQ4m815Nl5WUaARz7ae2nDjIGh?= =?us-ascii?q?DpQclm9VvXn42p+M7ahWP7xAqtQ8WQ8H?= X-IPAS-Result: =?us-ascii?q?A2ERAwCMo+5Y/wHyM5BcGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgn8pgWyObJBhb5AOhmQoigZXAQEBAQEBAQECAQJoKEIOAYFiIlNYAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBARYCKyUBARkGAQI3BgENIAwCAQIJAQEFEgghCAgDAS0?= =?us-ascii?q?DAQUBCxEOCwUYBIgrgTEBAxUEnSg/jiomAoJhBYECglcKQA2DfQIGEoQvg22CY?= =?us-ascii?q?4MFgVcRAYYBAQSJHYZUgU6LORKSVIIMiFgLHAyGOkiRcjOBFVh9CCY1FUEYhDQ?= =?us-ascii?q?PHIFlcwGDWIMbgi4BAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 12 Apr 2017 22:03:14 +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 v3CM3CZR031823; Wed, 12 Apr 2017 18:03:14 -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 v3CM0sHq117433 for ; Wed, 12 Apr 2017 18:00:54 -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 v3CM0qVH030674 for ; Wed, 12 Apr 2017 18:00:54 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1ASAQATo+5Yf8KAVdFcGwEBAQMBAQEJAQEBgyqCFY5skGFvkA6Ga4YkAoQBVwECAQEBAQECEwEBCQsLCCaFRwMDQAE4AQMMBhoxNAEFARwZiEyBMQEDFQSdJj+OKoMJBYECglcKQA2DUwEBAQEBAQQCHgIGCQEIhC+DbYJjgwWHagWJHYZUgU6LORKSVIIMiFgLKIY6SJFyM4EVgVwmNRVZhDQPHIFlcwGJIQEBAQ X-IPAS-Result: A1ASAQATo+5Yf8KAVdFcGwEBAQMBAQEJAQEBgyqCFY5skGFvkA6Ga4YkAoQBVwECAQEBAQECEwEBCQsLCCaFRwMDQAE4AQMMBhoxNAEFARwZiEyBMQEDFQSdJj+OKoMJBYECglcKQA2DUwEBAQEBAQQCHgIGCQEIhC+DbYJjgwWHagWJHYZUgU6LORKSVIIMiFgLKIY6SJFyM4EVgVwmNRVZhDQPHIFlcwGJIQEBAQ X-IronPort-AV: E=Sophos;i="5.37,191,1488862800"; d="scan'208";a="6015302" 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; 12 Apr 2017 18:00:53 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AsF91kR086YYz/ASOsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?se0QKvad9pjvdHbS+e9qxAeQG96KtbQd1aGG7OjJYi8p2d65qncMcZhBBVcuqP?= =?us-ascii?q?49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6?= =?us-ascii?q?JvjvGo7Vks+7y/2+94fdbghMhTexe65+IRS5oQjStMQdnJdvJLs2xhbVuHVDZv?= =?us-ascii?q?5YxXlvJVKdnhb84tm/8Zt++ClOuPwv6tBNX7zic6s3UbJXAjImM3so5MLwrhnM?= =?us-ascii?q?URGP5noHXWoIlBdDHhXI4wv7Xpf1tSv6q/Z91SyHNsD4Ubw4RTKv5LptRRT1ii?= =?us-ascii?q?kIKiQ5/XnXhMJukaxVrhGvqRt9zI7ae4yZKOZyc7nBcd4AWWZMXMBcXDFBDIOm?= =?us-ascii?q?aIsPCvIMMPhYr4nnplsOtge+BQi2C+Pp1zRGh3nu3bEm0+Q6DQ7G3BIvFM8JvX?= =?us-ascii?q?vIo9X0NaASUearw6nT1jjDYPRW2TDy6IjMbB8hpOuDXbN0ccbL1UYvEAbFg0yW?= =?us-ascii?q?pIf4PD2VzvwAv3aH4+dkT+6iiG4qpxtsrjSxxcogkJTFi4Yax1zc9yh0w5w5KN?= =?us-ascii?q?2kREJhfNKpEYdcuzuZOoZ0RM4pXntmtzwgyrIcvJ62ZCgKx4ojxx7Yc/GHdpKH?= =?us-ascii?q?4hPnVOqILzZ4nm5pdKuxhxqv9UWtxffwVsaz0FZNoSpFlsfDumoR2BzU78iLUv?= =?us-ascii?q?p9/kG/1jaTzw3f9P1ILEQumafYK5Mt2KM8moQQvEjZAyP7nEr7gLeTdko+++io?= =?us-ascii?q?7+rnYq/hpp+ZL4J7lg7+M6Upmsy5H+s4KRMDX2ec+eS7273j+VP2QLBQgf03lq?= =?us-ascii?q?nVqozVJcMepqKhGQ9azp4j6wqjDzehyNkYhmcILFZEeBKBkojoNErDIOz4DPij?= =?us-ascii?q?g1Ssly1nx/bdPrL7GJnNIX/DkKmyNYp6vlVRzAs10MB3+4NfCrZHJun6HED2qo?= =?us-ascii?q?/2FBg8Zie02ef8FNR00Msxx36TGaSZPeuGulCa4eQiOMGDY4gavDv4IvkhofXp?= =?us-ascii?q?iClqyhcmYaC10M5POziDFfN8LhDBbA=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0G5AABQou5Yf8KAVdFcHAEBBAEBCgEBF?= =?us-ascii?q?gEBAQMBAQEJAQEBgn+CFY5skGFvkA6Ga4YkAoQBVwEBAQEBAQEBAgECEAEBCQs?= =?us-ascii?q?LCCYxgjMgVVgBAQEBAQEBAQEBAQEBAQEBAQEBFgIrJQEBGQMDQAE4AQMMBhoxN?= =?us-ascii?q?AEFARwZiEyBMQEDFQSdJj+OKoMJBYECglYKQA2DUwEBAQEBAQQCHgIGCQEIhC+?= =?us-ascii?q?DbYJjgwWEUQyDDQWJHYZUgU6LORKSVIIMiFgLKIY6SJFyM4EVgV0mNRVZhDQPH?= =?us-ascii?q?IFlcwGJIQEBAQ?= X-IPAS-Result: =?us-ascii?q?A0G5AABQou5Yf8KAVdFcHAEBBAEBCgEBFgEBAQMBAQEJAQE?= =?us-ascii?q?Bgn+CFY5skGFvkA6Ga4YkAoQBVwEBAQEBAQEBAgECEAEBCQsLCCYxgjMgVVgBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBFgIrJQEBGQMDQAE4AQMMBhoxNAEFARwZiEyBMQE?= =?us-ascii?q?DFQSdJj+OKoMJBYECglYKQA2DUwEBAQEBAQQCHgIGCQEIhC+DbYJjgwWEUQyDD?= =?us-ascii?q?QWJHYZUgU6LORKSVIIMiFgLKIY6SJFyM4EVgV0mNRVZhDQPHIFlcwGJIQEBAQ?= X-IronPort-AV: E=Sophos;i="5.37,191,1488844800"; d="scan'208";a="4848921" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mail-wr0-f194.google.com ([209.85.128.194]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/AES128-GCM-SHA256; 12 Apr 2017 22:00:53 +0000 Received: by mail-wr0-f194.google.com with SMTP id u18so6181268wrc.1 for ; Wed, 12 Apr 2017 15:00:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=kr2q1aLSsGZpZmRuDk+UuEmnOAZXr32u6ucIBtP0iVo=; b=TIgi934JxVRchb5iJJ6GZve529W+3VJah6a8jmsM1Zy1/FTsZ8DHmpZjUWCTkIj7e1 vLQAxomW0+E4Joeh+LIV96q/EucX4Zq3XA37Zetj39vgCJQjpyk+x7gvfFTzSUuHs/tw Z3F9Fnt9DZ8vvLV/aPe3ts/86lZjp1BJ4LSx+xzfxmqYSWwKk4KMV6kuBSyMCZl8jTpd Q/het+qz3fSZq/wN4bltwo763ScHrAkUelZv+K6duW7wXNpNSzQWVLAmeRl0v5VRrhoj 9ya2hUSex3jemmu00gpKtyNp+20WixKucVvLOInvSgdP1RA5Eq8d1+//K9CLbnlB5FG4 h0Tw== 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=kr2q1aLSsGZpZmRuDk+UuEmnOAZXr32u6ucIBtP0iVo=; b=E2ND7tUueKZL4PXtkyBddrrE5uyLg7BV87MzdWPXZ23OeI5uXJHxhbZzXSsMvsItaJ YyoEM86qJAu3p8QxqHcVYBB4Hu1Fx1bpesWbUAedvnoBscgV5fuPToOCgcNV1ehZOL0S wkQOhnf8QpVTtXiBIzJGJlJC8CpaSd7ybYbHXrZSbGsHMu3RbQT4gZcD5wd/758GChyR oIvj/gpWi7aIDuwVtuylRRvdJrCclM/nbRtw/qxLqBeg5YXTbnXmtPfJ0k+91ScxHAMl qxdBmAfhr13CoIRIssQb18QCVliN6TxcddcYDmQPDXks7Qj4u6/WSNcoYP1i6lmPuAlG t6vw== X-Gm-Message-State: AN3rC/6BGselJKn++oMMBVNRvwFEBFGpjr7IPw+20icsZVwkN7CRxPCzWSrfx4vx5DA8Eg== X-Received: by 10.223.170.143 with SMTP id h15mr4932646wrc.64.1492034452061; Wed, 12 Apr 2017 15:00:52 -0700 (PDT) Received: from localhost.localdomain (x4e32a057.dyn.telefonica.de. [78.50.160.87]) by smtp.gmail.com with ESMTPSA id f62sm8031870wmh.33.2017.04.12.15.00.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Apr 2017 15:00:51 -0700 (PDT) From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= To: selinux@tycho.nsa.gov Subject: [PATCH 1/2] libselinux: add security_checkreqprot Date: Thu, 13 Apr 2017 00:00:37 +0200 Message-Id: <20170412220038.9792-2-cgzones@googlemail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170412220038.9792-1-cgzones@googlemail.com> References: <20170412220038.9792-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: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP From: cgzones Add security_checkreqprot() function, returning the current active checkreqprot value --- libselinux/include/selinux/selinux.h | 3 +++ libselinux/man/man3/security_getenforce.3 | 8 ++++++- libselinux/man/man3/selinux_status_open.3 | 11 +++++++-- libselinux/src/checkreqprot.c | 40 +++++++++++++++++++++++++++++++ libselinux/src/selinux_internal.h | 1 + 5 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 libselinux/src/checkreqprot.c diff --git a/libselinux/include/selinux/selinux.h b/libselinux/include/selinux/selinux.h index 45dd6ca5..938393f6 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_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..e27b6c80 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_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_checkreqprot(void); . .SH "DESCRIPTION" .BR security_getenforce () @@ -24,6 +26,10 @@ 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_checkreqprot () +returns 0 if SELinux checks the protection applied by the kernel, 1 if SELinux +checks the protection requested by the application, and \-1 on error. . .SH "SEE ALSO" .BR selinux "(8)" diff --git a/libselinux/man/man3/selinux_status_open.3 b/libselinux/man/man3/selinux_status_open.3 index 2d44be57..e70ab014 100644 --- a/libselinux/man/man3/selinux_status_open.3 +++ b/libselinux/man/man3/selinux_status_open.3 @@ -1,8 +1,9 @@ .TH "selinux_status_open" "3" "22 January 2011" "kaigai@ak.jp.nec.com" "SELinux API documentation" .SH "NAME" selinux_status_open, selinux_status_close, selinux_status_updated, -selinux_status_getenforce, selinux_status_policyload and -selinux_status_deny_unknown \- reference the SELinux kernel status +selinux_status_getenforce, selinux_status_policyload, +selinux_status_deny_unknown and security_checkreqprot \- reference +the SELinux kernel status without invocation of system calls . .SH "SYNOPSIS" @@ -19,6 +20,8 @@ without invocation of system calls .BI "int selinux_status_policyload(void);" .sp .BI "int selinux_status_deny_unknown(void);" +.sp +.BI "int security_checkreqprot(void);" . .SH "DESCRIPTION" Linux 2.6.37 or later provides a SELinux kernel status page; being mostly @@ -78,6 +81,10 @@ Thus, don't use this value to know actual times of policy reloaded. returns 0 if SELinux treats policy queries on undefined object classes or permissions as being allowed, 1 if such queries are denied, or \-1 on error. .sp +.BR security_checkreqprot () +returns 0 if SELinux checks the protection applied by the kernel, 1 if SELinux +checks the protection requested by the application, and \-1 on error. +.sp Also note that these interfaces are not thread-safe, so you have to protect them from concurrent calls using exclusive locks when multiple threads are performing. diff --git a/libselinux/src/checkreqprot.c b/libselinux/src/checkreqprot.c new file mode 100644 index 00000000..009a0ff0 --- /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_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_checkreqprot); diff --git a/libselinux/src/selinux_internal.h b/libselinux/src/selinux_internal.h index 3d5c9fb4..e4650c92 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_checkreqprot) hidden_proto(selinux_boolean_sub) hidden_proto(selinux_current_policy_path) hidden_proto(selinux_binary_policy_path)