From patchwork Mon May 1 13:20:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Haines X-Patchwork-Id: 9706541 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 5401F6020B for ; Mon, 1 May 2017 13:21:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 43B2B22B26 for ; Mon, 1 May 2017 13:21:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 383C527C0B; Mon, 1 May 2017 13:21:50 +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.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_NONE,T_DKIM_INVALID 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 8B3C522B26 for ; Mon, 1 May 2017 13:21:49 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.37,400,1488844800"; d="scan'208";a="6503444" IronPort-PHdr: =?us-ascii?q?9a23=3AffM+1h9H0C1t/f9uRHKM819IXTAuvvDOBiVQ1KB5?= =?us-ascii?q?0e0XIJqq85mqBkHD//Il1AaPBtSFra8YwLSM+4nbGkU4qa6bt34DdJEeHzQksu?= =?us-ascii?q?4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1?= =?us-ascii?q?Ov71GonPhMiryuy+4ZPebgFJiTanYb5/Ixq6oATPusILnYZsN6E9xwfTrHBVYe?= =?us-ascii?q?pW32RoJVySnxb4+Mi9+YNo/jpTtfw86cNOSL32cKskQ7NWCjQmKH0169bwtRbf?= =?us-ascii?q?VwuP52ATXXsQnxFVHgXK9hD6XpP2sivnqupw3TSRMMPqQbwoXzmp8qlkSAXsiC?= =?us-ascii?q?waKTA39m/ZgdF0gK5CvR6tuxlzzojJa4+XKfV+ZLvQc9MES2RcUMhfVCtPApu+?= =?us-ascii?q?YocSAecOI/1YopLhq1cStxayGROhCP/zxjJOm3T43bc60+MkEQzewAIgHs4BsH?= =?us-ascii?q?TOo9XvKagZTOK7w7PJzTXFcfxWwir25Y/SchAgvf6MXah/cdDMxkY3CwzKllWQ?= =?us-ascii?q?ppbkPzOTyOsNqHOW4PF8VeKujW4ntx9+oiKpxsgylonFnJ4aylfB9Shgxos+ON?= =?us-ascii?q?62SFZjbNK5H5ZduDuWOotrTs84XW1ltzg2xqcbtZKjfyUHyY4rywPRZvGIaYSE?= =?us-ascii?q?/A7vWPqLLTp4mX5ofq+0iQyo/ki60OL8U9G50FNNriVYjNbBrmsN1xnP6sifTf?= =?us-ascii?q?t941uh1S6P1w/N7uFEJlg5lbbBJJ47w74wi4ETvV7fHi72hEr2jKiWel8i+ue0?= =?us-ascii?q?8OTofq/qppqdN49wkg3+M6IuldKjAekgLwQDUGeW9f682bH+50H1XrpHguMsnq?= =?us-ascii?q?XEqJzaIN4Upq+9Aw9byIYj7BO/Ai+90NsGmXkHLVRFeA+IjoTwIF7OJ+34DfGj?= =?us-ascii?q?jFuyizdm3OzGP739DZXNKXjPirHhfa1n5EJGxwozys5f64pOCr4dOPLzRlPxtN?= =?us-ascii?q?vAAx87NAy0xfzoCMl91owEX2KCGa2ZMKTUsV+N/O0vOPWMa5EPuDbmMfQl4OTu?= =?us-ascii?q?jXAhk18HYaapxYcXaGy/Hvl+IUWZY2DjjcsCEWcRuQo+Su3qiEOZXD5dY3ayQq?= =?us-ascii?q?096SomCIKgEYfDW5qhgLub3Ce0BpdWfHxJCkiQEXf0cIWJQ/kNaCOWIs9kjDME?= =?us-ascii?q?T6OsS4E/2h6zsw/60aBoLvLO+i0ft5LsysR65/HJmRE17zx0ANyX03uRQGFsgm?= =?us-ascii?q?MIWzg20bhirkNhz1eD1q54g+BFGdFI+fNGTB06NZ/dzux9DdD+QATBccmVSFy+?= =?us-ascii?q?WNWpHSkxTs4tw98Je0tyBsmigQrZ3yexH7AVkLmLC4Au/aLHw3j9PcB9xGja1K?= =?us-ascii?q?M5lVkpXtNPNXG6hq547wXSB4/Ik0Kfl6uxcKQc2DfB9GaFzWaUukFXShRwUabE?= =?us-ascii?q?XXABeETat9L56V3eT7W2E7QoLhNBydKeKqtNctDmk01GS+35ONTfeGK8gH+wCg?= =?us-ascii?q?ySxrONd4rqY2Ed0z/BB0caiQwT+myGNQcmDCe7v23eFCBuFU7oY070/+l+smm0?= =?us-ascii?q?TkkowAGLdE1szL+1+gYUhfCFUPMS0KkEtD0mqzVuE1a3x8jWBMaYpwp9YKVcZs?= =?us-ascii?q?sw4FRd2mLasAx9I4etL6N4iV4ddAR3olni1xJtCoVPicIqtm8lzBJuKaKE11NM?= =?us-ascii?q?bymX0o3qOr3WNGby5guiZLTK1VHbytqW/b0P6PsgoVX5oA6pDlYi82lg09RNyH?= =?us-ascii?q?uc6I/KDA0JUZLtSUs37B56p7bUYyk4/YzU02dgMa+qvT/ew9gpHvcqyg68f9dD?= =?us-ascii?q?N6OJDAHzHNceB8iyNuMqgUOpYwkaPO9M7q47JN6md/6c1K6sJuZgkyqsjX5b74?= =?us-ascii?q?BlzkKM6y18R/bU35kY3v6Y3xGIVzPngVi9tcD3nJxLaisJHmqj0yTkApBeZrFq?= =?us-ascii?q?d4YRFWiuO9G3xsl5h5P1XX5Y9VqjB1cY18+yYheddULy3RdX1UgNpnyngyS4xS?= =?us-ascii?q?Rukz41tqqfwDDOw+P6eRoZO25EWHVijVD2IYSuk98aXE+obw4mlBa+4Ub6xq5b?= =?us-ascii?q?q75lL2nUW0tIeDL2L256WKuqqrWCe9JP6I8vsShPVOS8YEuaSqLkrxsBzSzjG2?= =?us-ascii?q?pexDYmdzCloZj5hAR6iGObLHZysHXZYtt8xRHB69zAXfRRxCYJRDFkiTnLAVix?= =?us-ascii?q?J8Op/dKQl5fHrO++TX6uVppdcCTw1oOAqTe05XZwDR24hfCzlcXtERIm3i/jy9?= =?us-ascii?q?lqSSLIoQ7kYobxyqS6NfhrcVNyCFDn7Mp6Hp1+kow2hJwL3HgWmpOV/X0bnmvp?= =?us-ascii?q?N9VUx77+ZmIXRTEX297V/BTl2Ep7I3KK2Y35UG6dz9BiZ9akZGMWwSQ94N5WCK?= =?us-ascii?q?uO67xEhyR1qEKirQ3Nefh9gisdyfw25X4EheEGpREgzjubAr8PHUlUJyrsmAqU?= =?us-ascii?q?79qmtqVYeH6vcaSs1Ep5hd2hFKuNohxYWHviZpgiHDNw78VmPFLCynLz7JvoeN?= =?us-ascii?q?7KbdIcrheUiQvPj/BJKJItkfoHnTJnNnjgvX0h1eE7lQZh3ZemvIeZMWVg57+5?= =?us-ascii?q?AgVGOT3vfMMf4CrtjaFDnsaMw4+gAJthGjIRXJvnU/2kCjQSuur7NwyWCj0ztm?= =?us-ascii?q?+bGabDHQ+Y8EpmoWjAE5a3N3GQIXkU1ttiSweAK0xYmgAbRi06noQ+FgCo2sPu?= =?us-ascii?q?bFt56ioW5l7ipRtG0vhoOAXnUmfDuAeobS85SJ2FIxpS6gFN+VvVMdCE4e1pBC?= =?us-ascii?q?xY+IOurBCWKmOHfQtIFX8GVlaCB1/9Irmk/cPA/PSABuqiM/vOZq2DqfZEW/aG?= =?us-ascii?q?356v15Fp/zKLNsSPJXRtFeE02k9ZUXB+AcTZlC0FSzYLmCLVc86buBC89zV5rs?= =?us-ascii?q?Cl7vvkRRnv6pGJC7tONtVv4Au7jr2fOO6Vnip5LixY1pwUz3/S1LcfxEISiz1p?= =?us-ascii?q?dzS1F7QArzTCTLrImqJMAR4bajlzNNBU76Iy3wlNP9TUitXp2b55lPE1D01JVV?= =?us-ascii?q?v7msGmfcYKOX2yNEvbBEaXM7SLPSXLzN/sbqyiT71QjflUtxqrtDaaDUDsICqM?= =?us-ascii?q?myPuVxC1PuFGlDubMwBGuIGhbhZtDnDuQ8/9ahKlKtB3gic2zqcqhn7RLm4TKz?= =?us-ascii?q?t8c15XrrKK9y9Yhuh/G2pb4Xp/NOWEhyGZ7+rYK5YRq/drBDp7l/5C6nQg17RV?= =?us-ascii?q?9D1EROBymCbKtd5huU+mnfOAyjV5SxpDsS1Li5iVvUp4NqXW6IJAVWzC/B0T8W?= =?us-ascii?q?WaEw4KqMd9Ct3zp6BQzcDCm7nyKDdN9NLU+9ARCNXKJ82cMXouKxzpFCTTDAsf?= =?us-ascii?q?Qj6hLXvfiFBFkPGO6n2VqYA3pYLjmJUUVL9USkc4FvQCCkt7GtwCJY14XjIgkb?= =?us-ascii?q?GAi84J6mCyrB7LRMVVpprHTO6dAe3zKDaFirlJfwcIwbT9LYgJLI373E1jZUd8?= =?us-ascii?q?nIvRAUrQWs5Coi56YwAop0VN9WRxQXco20L5cA+t5mEcFeKslB4slgR+efgt9C?= =?us-ascii?q?vr41ovJVrLpC8wn1cqlNXghjCRfjDxI7msXYFKCyr0sE0xPY3hTwZzcwKygVRu?= =?us-ascii?q?NC3YSLJJk7tgaWdrhRfauZRRA/FcSbZJYBwXxfGMe/Uny1Jcqj6kxU9G/+fFD4?= =?us-ascii?q?VtlBcye562s31Awx5jbMIyJaHIPqpG0ENQibyUsS+yyu8xwBQTKF0M8GOIZSEI?= =?us-ascii?q?v0IINqE8JyW2/u1g8wqClCVfeGIUTfolvupq9l8hO+SH1y/vzrlDKka3N+OCMa?= =?us-ascii?q?yZv2nAmNWSTVwuzEMIkFNJ/b9s0ccsa0CUTVwgzKONFxQVMsrPMRxaYNBM9HjS?= =?us-ascii?q?YCmOqv7AzohvP4WnEeDpQ/SOu7gIjUK5BgYpHpgM78QbEpmqzk7YMd/tLKQZxh?= =?us-ascii?q?U1+ATrOFKFAexNeBKMijcIvce/zZ5w3YRGKTEdB3h9PT+w5rbNqQ8gmOCDU8su?= =?us-ascii?q?YncGQosEMWo7WNaklC5dvnRACiS30+0CxQee6D/8ozjfAyPnb9p/fvuUYw1jCM?= =?us-ascii?q?2u8zUl76e2kULX8onZJ2ziNtRioN/O5vkcp5abC/NZVrZ9s0DEm4ZEXXCqVXDA?= =?us-ascii?q?EcKtLZjqd4YsdcD0Cmq9UlGnlzI1TsLxPNGxLqiIgQDlXptbsIib3T85LsCxDD?= =?us-ascii?q?ceFAlsp+sb/qJzeRUDY4YnYR7vrwkxLai/IAaE3dqwW2mtLDtXT/9YzeW8fbNa?= =?us-ascii?q?1DEjbu6gx3smV506wfS3/VQLRJ4UkhHU3eyjaJVGUSjvBnxdfB3CqjEnmGhnLe?= =?us-ascii?q?s92PowwA3WvlkGKDCEbvZpaWxes9E7H1OSLm18CnAkSF+EkYrD/gms0qgd/ytA?= =?us-ascii?q?ntZU1elFv2b7vpLEfT2jRrekqZTPvComd9QmpLdxMYP7KMucqJzehiDfTIXXsg?= =?us-ascii?q?CdSi66EftalcRQICJfRPlIgnkrN9Ubt4Rb9Uc/UdwzKKBICKkpur+lcyFkDTII?= =?us-ascii?q?wS8fSYyAwCQIgv2g1LvCiheQbJMiPQQesJpfn9QQSCF2YiYRpaO5UYXZiXOEQH?= =?us-ascii?q?ARIAgP9QRM+B4Alohoc+D/+oXIVphMxCVNrvJoSCvEDIdo+EX/SmGXh1j4R/Gh?= =?us-ascii?q?k+2m3QJS0PLs3MMUWAR6CURHweZZiFcoIqltK6YMpo7KriOIdUTisWPj0uepOF?= =?us-ascii?q?lRyczRd135FoXFtnHxUiwC9nIKW4BD0nbfFY4dkwBhcqYkuE1MIJy6ekb5/zEr?= =?us-ascii?q?3Z5pH6S+VcyxxFYotncGRyarE9pdEO5qqlTXVyN5Y5qzspXqJ41SQnNM+J2as1?= =?us-ascii?q?pZkUNtMzKnxppYNc5N5yADXCRVoTSdp9ayT9VD1tFwD58JONh/unP9F7hDOJme?= =?us-ascii?q?uXE2vabvynDB8TAmrFi63CmzG7O/T+9B8G0eAB8mJ2KCqkQ0Duss9WnT8lbRsl?= =?us-ascii?q?B04ehbB76PjVlvrzZnBJxOAChG1Wy9JVRpUHZGq/laKLjSc8FEX/kyYhqvNgci?= =?us-ascii?q?FfI62kyG5lt4nXHnbCxurgFa4TzSXxEoVSkJhbfggT0epdu9OTAAT5JHcC4sYD?= =?us-ascii?q?rbJAKDgSBYohJfZF9wW5wDBdZF4b4b15NO/sXeUUasNT0FXBt6OwI61vpQi1VO?= =?us-ascii?q?v1iGdiDGEwWob+rPvQNqcsuLqs6mMuj59h9dioz7qOA467kDR3q+lAK2T9DRs5?= =?us-ascii?q?Pwu9+XukaAb6r3L+q8YXrdQzfWlhCwma0oD5/U8CjPKABbMYV1yWI4YZj9Dm7G?= =?us-ascii?q?JQ5GKLwGKEpbT696dc5LouRdZ896ZqkF57NiBhWaSRzxAoCvqudJLkrLTzTEMy?= =?us-ascii?q?qB6vC/oZ7U7bHFUejgfdCMyGzaTKJrJZp68j77G6rw0YBC5EX23Ott9llgRljC?= =?us-ascii?q?KSyBq87hJgwT7sm4akTipoEpHS/RAJpojHrt3F9PeNQKTCCx7ZQYzI9Z6GzqRu?= =?us-ascii?q?Jm00jzt+lS+Kd46YUt5LBp08i0L7/IKftGqU9nHgSUBgJy+5UvGmd/XWdRYvQV?= =?us-ascii?q?KPjLY6QUlsXuq/3zF6wL6R2a5+1ZZsHBJ0HagMW/DSucSRNclgcbtTEaNhec1+?= =?us-ascii?q?KCm6JsS8aqv+752kw341i5MxEJ0qtg5Zue9aqOv+/XaAHdzb4aVaj2XsnztKgj?= =?us-ascii?q?u1uO5f04k74DYmp1Ywm8HegcUM4dw33szaEszSIiCcPMBang+OJZV3Ikgj3gh4?= =?us-ascii?q?19H08IFf8OGrqL54telH8im+PFLt0WbrxCmmGXGB6iE78N1Xmr6y+NL2l+mB3O?= =?us-ascii?q?0hbwQWSo7F/ttiJ4RCTBztj5nkpSTLm3Cl9YXzC1Nk9grDOPIA3oucLrtqsv6E?= =?us-ascii?q?E5LHfktM6NlWumI75XBNHwJN2CLikyuFIXjYc+Ssap2Y8FBdq3OM0R/21mbvvC?= =?us-ascii?q?92OrlDdMo6Nch4rb4syY4fvXEme9gK2dsbWC3ihYymI/vVE99N+vKu3O68eNQ/?= =?us-ascii?q?Sy2GYbVz1/tBfZXx6ptrzbqEgZOU6K0EfOg4EKO89W3Hkm2UH85egjRt0z+B9Y?= =?us-ascii?q?Fonee/MIvSrzNyfswVaDf9I3UTGT0zpWH13vC1Z3BLMx2Hnus8LVi3jf50ckRo?= =?us-ascii?q?5qd0zonRZ3FZk3KVox6FgLxSoOCRMCaRGADLCmH0vlL4oEVVQbaRudwbi6frw6?= =?us-ascii?q?0lF0wryy+uDcd/F8B7AKNvZHlAGChl9bGogZsacGWrJzZ0dd9LLLpgjlE4XnR+?= =?us-ascii?q?LplWYsOv21TMFa9toZt3g77gakWRWg7ZZD77AGiJGHbaNEeYLDvNxg4Edn6z8P?= =?us-ascii?q?cTZNgBtlgxO6T+8cvubj7cbfsJay7eauTqktTf0N9xcoH2R+k4fwgFc7rNHLze?= =?us-ascii?q?dTVInVhp758A9TOHOFpYfa0xZ9KeoSMY2rZ6xv928aJyQEIXIBI8aWYeEm4yBx?= =?us-ascii?q?KDXT+0BCAsQUaNMXJsXNgx5bilHpWLxI8srbG0OYBJlzd88y8mr30yo58Z0iXe?= =?us-ascii?q?b88DW2P4zQ70lRP/NfiyVhjN3Cq/YTwfrODygX5n6VawNrzSOGypmNDevw/OqX?= =?us-ascii?q?xdHQSVwGBC43XJ1HKDqE5wOnWvK/lI/1XQOM9s/znJU+eVqMSXyzhqsKrr1BHv?= =?us-ascii?q?JHiiX/2jheF576h+iJs9Wy9GRXtkdLEIFp7R3KAK9fJIl0OQzklsm3QUhxHi7/?= =?us-ascii?q?eMbSdhoyt+qZ2PwB4+B/N0TkY48UPA4Eyrz96XpPTQtuU6T6vlCHUuINfNFmUu?= =?us-ascii?q?/LrmhJ6YJ8LK8CJFedq4DxrjdTsVw4HQAnZrkxrjxca0nPkxZYW6nxuLEajAsT?= =?us-ascii?q?T8R1uUhWGWK/IGg+/SbIVbxJjKmND/wY6jeTTqsOU0VuKC9xXxO12JFze7S0nP?= =?us-ascii?q?FHs2VGnjh+oPgryDFmWhq8uTP2qKIJxD0g+au0tDMftnxZVu+eiTvHCU1fzPQW?= =?us-ascii?q?iqcRE3fi6UKmb3kFd4by5KRnKtnh9Ykm+HQzexIjfzcJXe64ESH/k7uIApCTsN?= =?us-ascii?q?JbnBONutvBbbG9LSgWLbk8xwjsR35j3QjChhpo9nUEQim45t8+OIq9Idolxjav?= =?us-ascii?q?GWXDe1YM5qRJscXvul4PSOs7ckhhwGJl0siGWiIBXsrPFHgpjgI8c2VLbIpD6Q?= =?us-ascii?q?MGF6kvmjuIvKlG/wEMYDfTFoSl+5XQktnT1Hk4TNdq2njWqbOfipMtyn1llMt+?= =?us-ascii?q?7jSSt3QKa+zYT8hsD2D81odCyOzxevKtv/sbSIt81ruhVuMCPdOn+WSs3pVlRk?= =?us-ascii?q?6lya4EE1q/LuAD2q/RUz25Rm2AReSLb2+Mki4lMk7z4BmlNUE3aMZWoE8+LOTC?= =?us-ascii?q?goRQlwv/XrNoXi+Qv0PUzHQ/MeMGcAI7oIKnew0JTO4SYOiRPuouz+c9CFsLaX?= =?us-ascii?q?/GAy12B/WwsVGzgIhxI29g7lniYeTx7gDmN8OfFQIaHo7csp584ue6RmaGOX98?= =?us-ascii?q?0B1yIld7+PrFG1Q2rO9cfI6bncLMiNRjze4Fa/BtPDUlut4UnoJs85OU0cmNcR?= =?us-ascii?q?HVwJb/PtTVov+fA/3E0UslZntaUr0CYQPu5oU6ONE5V6fUHbtDshQWHbI6T4A5?= =?us-ascii?q?N2ft6KF0Kxt+cgDPa7Swg8nqvvyEa4BVpn/X61IwKTnTuwcHyvOqVwB7aIqqh3?= =?us-ascii?q?rqKpAqWj1Bt8FtCgdhHIZXFcIAtxCnA5+Il66lkNKx/kJ6u/MQsaXuEPzK0865?= =?us-ascii?q?34ppVZhA+UOLJCrRBLVsgkl9ieSyhunP34LpCcPmY9wET/R7Qm/ZZb/aBIWwNC?= =?us-ascii?q?yBNtj6e0FY776WyKh5XQmJZCDlQ6qGszWpNPFl4UU914x5c/PfzDgs77HAxNvy?= =?us-ascii?q?fHpWpia5on6PM5tT9lvKBfbRXxhMU/qK7H5lHbELbYvz7OoOKsItwNyd4wl18T?= =?us-ascii?q?RD38yJLae9rk/MxE17b4zULFPz1CsiWokFPg6/MU0yjm/dsXvdHHtcItKjKcl3?= =?us-ascii?q?j9afFgbt6FVpmWExem5BHXLlRdKLNmcH28K+ZQuK9AVQAtYdnu63f1A3tqmzSe?= =?us-ascii?q?luJ5VElv+mtLIdkdZmMyvPXtRVPznMLL9qOTpcFufPq0IrYh4DqLc4QZo1ZZ6S?= =?us-ascii?q?IEMHN0eA1CzyzQve0UHucdyjyrqJKj4M8npb17LFzSRMpw6htPmCmcLvV7TZbJ?= =?us-ascii?q?DtXP7OKyopTCqaSiouHkqz4lerpf4EvPueIWcCrVEZeT6dCQ4JpqByttjcFGHS?= =?us-ascii?q?lvd/fJ0Rg/CaXTr8SCpilKo9HixLr1yDQ+IfFQnKaH/smGVctxa5Kf9W/HLqcb?= =?us-ascii?q?mYy7FLW+wSGIRMafyZQ8bCdfBYOTgoii0TOPygcN3Es7Y5zlXIQHMbE6nN812e?= =?us-ascii?q?VlSWQv2Hxz/wW4UapY00tTQp+t7KmS93CavINa6FpzGy6o64kDqYuerGW2k2bU?= =?us-ascii?q?w1hf4NDWiCzRRbNmELFcsVuEDsQ66HYUZAznQphvxy2xUUYgR8TmVu0mFKnPa6?= =?us-ascii?q?AsBZS1kUjGWqQPAdaVB4Ei4//UGN4g3ofdMPp9rfR2lA+bsQGsIhK6wz5Y3WPr?= =?us-ascii?q?YA6Oo41zJh5iohumOSCE0OoBiC9v/qHal8z6dOrUkx/vd7RQnbWTLUcmHdxr2t?= =?us-ascii?q?PMJGxCFjuljuy8vSou13MrZG4Yp+BQFZUmpNOtnB8GUZAinP0wyoskP+RWyT?= X-IPAS-Result: =?us-ascii?q?A2HeAgCTNQdZ/wHyM5BdHAYMGQYMgwMpgW6Oc6Fnhio3LYo?= =?us-ascii?q?8VwEBAQEBAQEBAgECaCiCMyINRiYyAQEBAQEBAQEBAQEBAQEBGgIISAEhAj0BO?= =?us-ascii?q?QIDCQIFEjEIAwFsBYhPgTIBAxUErmkmAoJiBYEChDuCZAQIhE+DboVvgluFGQW?= =?us-ascii?q?dU5MEix+GSgJIk2VYgQouICGEegxEHIFkdIh3AQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 01 May 2017 13:21:48 +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 v41DKj6e012601; Mon, 1 May 2017 09:21:02 -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 v41DKib6263330 for ; Mon, 1 May 2017 09:20:44 -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 v41DKhYT012599 for ; Mon, 1 May 2017 09:20:43 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1DnAADPNQdZh48AFEFdHAEFAQsBgy2CF7Bahm0OhhaEOVcBAgEBAQEBAhMBAQEKCwkIKIYLATgBFYE7iFSBMgEDFQSuaYMKBYEChDuCPiYECIRPg26Fb4JbggAMgw0FnVOTBJFpAkiTZYFhLiAhhHoBTxAMgWR0iHcBAQE X-IPAS-Result: A1DnAADPNQdZh48AFEFdHAEFAQsBgy2CF7Bahm0OhhaEOVcBAgEBAQEBAhMBAQEKCwkIKIYLATgBFYE7iFSBMgEDFQSuaYMKBYEChDuCPiYECIRPg26Fb4JbggAMgw0FnVOTBJFpAkiTZYFhLiAhhHoBTxAMgWR0iHcBAQE X-IronPort-AV: E=Sophos;i="5.37,400,1488862800"; d="scan'208";a="6035612" 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; 01 May 2017 09:20:24 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AuVNqVhfDgD+ChBksRZzj3I1+lGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcuzZx7h7PlgxGXEQZ/co6odzbGH7ea9BSdeu96oizMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCzbL52LRi6twXcu8YZjYZjNKo61wfErGZPd+?= =?us-ascii?q?lK321jOEidnwz75se+/Z5j9zpftvc8/MNeUqv0Yro1Q6VAADspL2466svrtQLe?= =?us-ascii?q?TQSU/XsTTn8WkhtTDAfb6hzxQ4r8vTH7tup53ymaINH2QLUpUjms86tnVBnlgz?= =?us-ascii?q?oBOjUk8m/Yl9Zwgbpbrhy/uhJxzY3aboaOOfZiYq/QZ88WSHBdUspNUSFKH4Oy?= =?us-ascii?q?b5EID+oEJetWs4j9qEcOrRSkHwmjGf7kxD1SiX/32601zf8hGhzB0Qw6HtIBrH?= =?us-ascii?q?TUo8/vNKgPSe+60LHHzTXZYPNX3zfy9pPIfws6rvGQXLJwd9bRxlc1FwPDkFqQ?= =?us-ascii?q?tZbpMC+S1uQIqmWW6fdrW+G3i2M/qgx8oiKjytkwhoXTmo4Z0E3I+Cp3zYotJt?= =?us-ascii?q?C1SVR3bcOqHZZfrS2WKZd6Tt84T2xopSo3zKANt4ShcygQ0psnwgbSa/yZfIiM?= =?us-ascii?q?5RLuTPyRITh/hHJ4ZLKzmxS//VSux+HmTca0zExGri5CktnKtn0BzQDc6tCbRf?= =?us-ascii?q?t5+UehxCuA2xrP5eFDO0w0iKnbJ4Ygwr42iJUTrVzOEy72lUnskqOaal8o9vSy?= =?us-ascii?q?5+j6bbjrqIeQN4puhQH/NqQulNa/AeM9MgUWRWib+Piz1L358k3jXbpFluE5nb?= =?us-ascii?q?HZsJ/AJMQboLC2AxRO34k49xa/DjGm0MgGknkdKlJKZg6Hg5L1NFHJJfD0Fe2/?= =?us-ascii?q?jEi0kDd32/DGOaXsAo7TIXjHkbfhe6t96kFHxQovzdFQ+5JUCrYbLPL1QU/+rs?= =?us-ascii?q?bUDhA+MwyqkK7bD4Bm24cfX3+fKrOIO6PV91mT76QgJPffSpUSvWPHKvMl7uTi?= =?us-ascii?q?xV8wmFkQZuH9x5ocaHmiEsNtFEWQYHzhmf8LDWYMogckSuH2zlaFVGgAND6JQ6?= =?us-ascii?q?sg62RjW8qdBoDZS9X1jQ=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0F7AACTNQdZh48AFEFdHAEFAQsBGQYMg?= =?us-ascii?q?wKCF7BahipDDoYWhDlXAQEBAQEBAQECAQIQAQEBCgsJCCgvgjMgD0YmMgEBAQE?= =?us-ascii?q?BAQEBAQEBAQEBARoCCEgBYAE4ARWBO4hUgTIBAxUErmmDCgWBAoQ7gj4mBAiET?= =?us-ascii?q?4NuhW+CW4IADIMNBZ1TkwSRaQJIk2WBYi4gIYR6AU8QDIFkdIh3AQEB?= X-IPAS-Result: =?us-ascii?q?A0F7AACTNQdZh48AFEFdHAEFAQsBGQYMgwKCF7BahipDDoY?= =?us-ascii?q?WhDlXAQEBAQEBAQECAQIQAQEBCgsJCCgvgjMgD0YmMgEBAQEBAQEBAQEBAQEBA?= =?us-ascii?q?RoCCEgBYAE4ARWBO4hUgTIBAxUErmmDCgWBAoQ7gj4mBAiET4NuhW+CW4IADIM?= =?us-ascii?q?NBZ1TkwSRaQJIk2WBYi4gIYR6AU8QDIFkdIh3AQEB?= X-IronPort-AV: E=Sophos;i="5.37,400,1488844800"; d="scan'208";a="5351648" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from rgout0703.bt.lon5.cpcloud.co.uk ([65.20.0.143]) by emsm-gh1-uea11.nsa.gov with ESMTP; 01 May 2017 13:20:24 +0000 X-OWM-Source-IP: 86.134.200.51 (GB) X-OWM-Env-Sender: richard_c_haines@btinternet.com X-Junkmail-Premium-Raw: score=7/50, refid=2.7.2:2017.5.1.130916:17:7.944, ip=, rules=__HAS_FROM, __FRAUD_WEBMAIL_FROM, __TO_MALFORMED_2, __TO_NO_NAME, __HAS_CC_HDR, __CC_NAME, __CC_NAME_DIFF_FROM_ACC, __SUBJ_ALPHA_END, __HAS_MSGID, __SANE_MSGID, __HAS_X_MAILER, __FROM_DOMAIN_IN_ANY_CC1, __ANY_URI, __FRAUD_BODY_WEBMAIL, __URI_NO_WWW, __NO_HTML_TAG_RAW, BODY_SIZE_1900_1999, BODYTEXTP_SIZE_3000_LESS, __MIME_TEXT_P1, __MIME_TEXT_ONLY, __URI_NS, HTML_00_01, HTML_00_10, BODY_SIZE_5000_LESS, __FRAUD_WEBMAIL, __FROM_DOMAIN_IN_RCPT, __CC_REAL_NAMES, __PHISH_SPEAR_STRUCTURE_1, BODY_SIZE_2000_LESS, __MIME_TEXT_P, NO_URI_HTTPS, BODY_SIZE_7000_LESS Received: from localhost.localdomain (86.134.200.51) by rgout07.bt.lon5.cpcloud.co.uk (9.0.019.13-1) (authenticated as richard_c_haines@btinternet.com) id 58BFF27E0624CF08; Mon, 1 May 2017 14:20:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btinternet.com; s=btcpcloud; t=1493644824; bh=4U46YARYOlErPApUNbnBKuFI1c610PpJxNHx8EyHTeY=; h=From:To:Cc:Subject:Date:Message-Id:X-Mailer; b=Oy3fdJkIUCe2S328HpWKzG/WKNOg3hiC4DRYSPMOPGp0U/aaRQRcfQJJsecWrZfLHmIlPL9lr+MXDmrYSiqx8Y4P2vdRxzV2CsqqLBnHrdA4YAJMoqGjDOiMRl8JzOA6IiPJZHrPJco4mQHEE9EUKFopxcNRu9hkH7ox2EKR3ls= From: Richard Haines To: selinux@tycho.nsa.gov Subject: [PATCH] libselinux: Add selinux_check_access utility Date: Mon, 1 May 2017 14:20:14 +0100 Message-Id: <20170501132014.25520-1-richard_c_haines@btinternet.com> X-Mailer: git-send-email 2.9.3 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 Signed-off-by: Richard Haines --- libselinux/utils/.gitignore | 1 + libselinux/utils/selinux_check_access.c | 52 +++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 libselinux/utils/selinux_check_access.c diff --git a/libselinux/utils/.gitignore b/libselinux/utils/.gitignore index ed3bf0b..0af903d 100644 --- a/libselinux/utils/.gitignore +++ b/libselinux/utils/.gitignore @@ -25,3 +25,4 @@ selinuxexeccon setenforce setfilecon togglesebool +selinux_check_access diff --git a/libselinux/utils/selinux_check_access.c b/libselinux/utils/selinux_check_access.c new file mode 100644 index 0000000..88762b4 --- /dev/null +++ b/libselinux/utils/selinux_check_access.c @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include + +static void usage(char *progname) +{ + fprintf(stderr, "usage: %s [-a auditdata] scon tcon class perm\n" + "\nWhere:\n\t" + "-a Optional information added to audit message.\n", + progname); + exit(1); +} + +static int cb_auditinfo(void *auditdata, + __attribute__((unused))security_class_t class, + char *msgbuf, size_t msgbufsize) +{ + return snprintf(msgbuf, msgbufsize, "%s", (char *)auditdata); +} + +int main(int argc, char **argv) +{ + int opt, rc; + char *audit_msg = NULL; + + while ((opt = getopt(argc, argv, "a:")) != -1) { + switch (opt) { + case 'a': + audit_msg = optarg; + break; + default: + usage(argv[0]); + } + } + + if ((argc - optind) != 4) + usage(argv[0]); + + if (audit_msg) + selinux_set_callback(SELINUX_CB_AUDIT, + (union selinux_callback)cb_auditinfo); + + rc = selinux_check_access(argv[optind], argv[optind + 1], + argv[optind + 2], argv[optind + 3], + audit_msg); + if (rc < 0) + perror("selinux_check_access"); + + return rc; +}