From patchwork Tue Apr 11 17:53:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Carter X-Patchwork-Id: 9675903 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 AE42860383 for ; Tue, 11 Apr 2017 17:53:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A82982830A for ; Tue, 11 Apr 2017 17:53:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9D1F12857B; Tue, 11 Apr 2017 17:53:30 +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 B396428448 for ; Tue, 11 Apr 2017 17:53:29 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.37,186,1488844800"; d="scan'208";a="5843666" IronPort-PHdr: =?us-ascii?q?9a23=3AAJ40cRJ1R4lSrov4xNmcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgQK/j5rarrMEGX3/hxlliBBdydsKMazbOK+Pm5AyQp2tWoiDg6aptCVhsI24?= =?us-ascii?q?09vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7?= =?us-ascii?q?Ovr6GpLIj8Swyuu+54Dfbx9GiTe5YL5+Ngi6oAreusULnIduNLs6xwfUrHdPZ+?= =?us-ascii?q?lY335jK0iJnxb76Mew/Zpj/DpVtvk86cNOUrj0crohQ7BAAzsoL2465MvwtRne?= =?us-ascii?q?VgSP/WcTUn8XkhVTHQfI6gzxU4rrvSv7sup93zSaPdHzQLspVzmu87tnRRn1gy?= =?us-ascii?q?gJLT459HzchNJ2gqxVvRmtowVzz5DIbI2QMvd1Y6HTcs4ARWdZXshfSTFPDI2/?= =?us-ascii?q?YYUIDeUBM/5Yoovgq1YAohSxGQaiC/30yjJTmn/737c33/g7HA3awgAtGc8Fvn?= =?us-ascii?q?TOrNXyMacfSeS7w7PNzTrddPNdxCnw55LSchA9v/6MR697fM3TyUghCwzKlE+Q?= =?us-ascii?q?qZD7Mz6OyuQMs3SU7+pnVe61jW4nsBt+riKgxscrlInEn4QYwU3H+yVh2Is5ON?= =?us-ascii?q?K1RUFhbdOkDZdcrT+WOoRoTs84Xm1lvjsxxKcctp6hZicKzYwqxxvYa/OabYeF?= =?us-ascii?q?+gnjVOONITdgg3JlZa6/iw6y8Ue+zu38UdG50EpQoSpfk9nMq2sN2wbP6smHVv?= =?us-ascii?q?R9/kCh1SyJ1w/P8eFLPVo4la/aK54l2rIwl5wTvlrfHiLuhUn7g6Cbel8k9+S1?= =?us-ascii?q?8ejrfLrrqoGGO4Npkg3+N74hms27AeQ2KAgOWG2b9Pyn1LL9+U35QbNKjuA5k6?= =?us-ascii?q?XAq5/aItkbpqilDABLyYYu8Aq/Dje639QYmnkLNlRFeAmdgITzNFHOJ+74Ae+l?= =?us-ascii?q?g1uwiDdr2+zGPrr5D5XPKXjDlq3ufap960FGzgo+1tJf55VSCrEEOv3zQVPxu8?= =?us-ascii?q?LCDh8iKQC0xPznCNpl3IMERW2PGrOZML/VsVKQ5OIvIfODa5MWuDbmLPgl4f/u?= =?us-ascii?q?jWEilF8TeampwJQWZ2ulHvRgP0WZfGDggtAbEWcFpgA+VvDliEWeUT5PYHa/R6?= =?us-ascii?q?w95jA/CIKjE4jDXJuggLKf0yimGZ1WfHpJCkiWEXfvdYWLResDaD6ILs9miDwE?= =?us-ascii?q?WqCrS5U92hG2qA/6171nI/LJ9SIEsJLj09515/HOmRwp6zx7Ed6d02CMTmFzmG?= =?us-ascii?q?MEXTk2075joUZl0FeMzbB4g+BEFdxU//5GTxs6OoTGz+FhF9/yXQfBccuTR1a9?= =?us-ascii?q?XtWqGzcxQcwtw9UWeUZyB82ijgzf3yqtG7IUl72KBJsy8q/H2njxI99xy3fA1K?= =?us-ascii?q?U7iVkpWNFPNW6nhq5h6QffHYjJnFuFl6yyb6QTwDbN9HufzWqJpExXThZwXr/f?= =?us-ascii?q?XXAefUvbtsz56VnYT7+vErQnKg9BxtSeJaRUcNHpik9GRPj7MtTEf22xg3uwBQ?= =?us-ascii?q?qPxr6UYorqYX8S3CPBB0gFiAAe5nOGNRA/Biu4uGLfAiduGUjoY0P2/ul0sGm7?= =?us-ascii?q?QVMszwGWc01h0KK4+h0PivyfTPMTw6kJuCQ7pDV3G1a9wsjaC92apwpuZK9ce8?= =?us-ascii?q?8y4E9b1WLFsAxwJoavIL14hl4fbQt3pVjj2A9rBYVFi8Qqq2kqzAVqI6KCzFxB?= =?us-ascii?q?by+Y3Yz3OrDPMWny8gqva6nN2lHCy9uW4aEP6PM2qlXmpg6pEFAu83N53NlJy3?= =?us-ascii?q?Gc/InFDBIOUZLtVUY67xZ7qKveYikh+YzUz2ZsPLKqsjDcwdImH/YlyhO6c9dY?= =?us-ascii?q?KqOEGxf4E9cGCMi2NOwqh1+pYwoYPO9P6aE0Ptmpd/+d1aG3O+ZgmS6pgn5c4I?= =?us-ascii?q?BhyE6M8TRzSvLQ1ZYf3/6YxheHVyv7jFq5tMD3mIREZTUMEWqk0iXrHpBeZrd1?= =?us-ascii?q?fYoRDmeuOcK3zM1kh5HxQ35Y6EKjB1Qe1c+3eBqdc0D93QpK1UgNvXOnmSy4zz?= =?us-ascii?q?p7kzwyqqqf3SrOzP74dBoAIGJLQ3NijVj0K4iuk98aRFSobxQulBa94Ub6xrNb?= =?us-ascii?q?pLhmI2nIX0hIeyn2L2d/Uqq/rbeCeNZP6JIusSVWTOu8ekqWSrjjrBsGyynjBX?= =?us-ascii?q?dRxCgndzG2vZX0hwZ6iGWZLHZ3snXZY91/xRDR5dHHXv5RwyYJRDJihTnQHFi8?= =?us-ascii?q?MMGj/c+ImJfbruC+S2WhW4VLcSbx0IOAsDG36ndwDRKkmPCznsHnEQ880SLg0t?= =?us-ascii?q?lmSSPIrBHgbYXx0aS1L/5ndFFyBFDg88p6Bp1+kowoiZETx3cagI6V8GEEkWjt?= =?us-ascii?q?N9VbwqT+Y2QRRTIRxN7V+gfl0lV5Ln2V34L5Smmdwsx5atmkZGMZxzkw795MCK?= =?us-ascii?q?iJ7LxIhy11rUSkrQjJe/hygi8dyecy6H4dm+wJoBAizjiZAr0JAUZYPDDslhSR?= =?us-ascii?q?49CwtqpXYnyjcb+q1EpxhdqhFq2NohlAWHblfZcvBTdw4d9iMFLIznLz8pvreN?= =?us-ascii?q?/Mbd0NrB2ZiArAj/NLJ5IrjfoGnzFnOWXgvX0/1+E0kxJu3ZagvIiINWph5qS5?= =?us-ascii?q?DQBENjftfcMc5intjbpCnsaRx42vEI9uGjMXXJvvSPKlCzwSuur6OAaJCj0zsG?= =?us-ascii?q?+bGaDYHQ+d9khps27PH4qsN3GNK3kT1c9iSwWFJExDnAAUWy03npsjGQCuwMzu?= =?us-ascii?q?blt55iwL6VHisRZMzPxnNwXkUmjDvgiocik7RIKZLBVI8gFI/13VPtCG7uJvAy?= =?us-ascii?q?FY+YWsrBaXJm2VfQhICHsGWkiDB1HjJbSh/8XP8+2CCuq5NfvObq2EqfZCWPeQ?= =?us-ascii?q?2ZKvzoxm8i6CNsWVIHZtEuY71VBFXXBlHMTZgC4CRDYLmCLIdcKbow28+iJvpM?= =?us-ascii?q?Cl7PvrQB7v5ZeIC7ZKN9Vv4Qq5gb+bN+OLiiZ5KCxY1ogQxX/Gybgf2kQdiydy?= =?us-ascii?q?eDmsC7sAsTTBTKXKmq9YFxQbcT98NNNU76Ig2QlAIdbbhc3u2bFmiP41CktFVV?= =?us-ascii?q?v6l8Goe8MFPX+yOEnABEaRO7SMPSfLzN3vYaOgVb1Qi/1ZuACruTmFCUDjMS6D?= =?us-ascii?q?mCP3Vx20KuFDliKbPAFEuI6naBptDXXjTNT8ZR2hKdN3kTo2wb40h3PNL2IcNy?= =?us-ascii?q?Zzc19VpL2K8SxYmul/G3BG7nd9NumLgTiZ4PPXKpkIqvtmGT90mPhE4HsgxLta?= =?us-ascii?q?8jpESOZzmCTMst5ku0umnfWXyjp7TBpOrS5Gi5mKvUVtPqXZ8IJNVmva8x0W7G?= =?us-ascii?q?WfERIKq8FiCt31tKBa0sLPm77rKDde79LU+tMRCNLbKM2dLnouLwHkGDnMDAQb?= =?us-ascii?q?Sz6rMHvQh01ZkP6J8X2UoYI2qp/2mJoBUrVbTkA6FusGCkR5G9wPOIt3XjQhkb?= =?us-ascii?q?KBls4I4nu/owfXRMpBpJDHUeydAfb0JTmFirlEYgcHzqnjLYQPLIH73VJtakVi?= =?us-ascii?q?loTQB0XQRcxNojFmbgIso0VM8Hx+QXMo1kLgbQOt7nETGuConh4qigt+ZuEt+y?= =?us-ascii?q?n271cxOFXKuDM6kFMtltX9nTCRbDnxIb+2XY5IESX0s1M8MpD8QwZucQ29h0pk?= =?us-ascii?q?NCzHR7JQlbdgc35kiBPEs5tVBfFcVbFEYAMXxfyPffUnz09cpTu9yk9d+eTFCY?= =?us-ascii?q?BvmxArcZ62sn1A3AxjbMYvJaPOJKtF1F5QibySviWwzOA+3BceJ1oR8GOVYCMH?= =?us-ascii?q?pUsINr8gJyW14ONs7Q2CliBZd2cSTfoqpehm9kQnO+SP1yjgyaJMKlitN+yDKK?= =?us-ascii?q?OUo3XPmtSWQlMxy0wIjFJI8qJs0cc5dEqVWVsvw6WNGBQUL8rCKB1VbspI+HjV?= =?us-ascii?q?YymOrf3HwYhpMIWlCuDoUeiOub4QgkKjBgYmAYIM78UGHpS330HYK9rnIKQCyR?= =?us-ascii?q?U36wThPE+FA+hReBKXjDcHpNmyzIRp0olZJzEdB3h9MCqs67nLoQ8qheaMU80t?= =?us-ascii?q?YncGRIcEMGw5WNGikS5Do3tAFCW30v4eyAWa7D/8vCTRAyP6b9p/ZPeZfhxsCN?= =?us-ascii?q?au+Toj6aS2j0DY8onGLWHgKdtiosPP6f8dp5ufF/NUTLx9s0DAm4lYR32nSHPA?= =?us-ascii?q?Ed+1JpfqcIYgd9r0BWimUlankTI6U9/xPMqxLqiPmQznX4JUsIiH0z89LcC9Ez?= =?us-ascii?q?EfGxF3p+EF/q1xfhYMY5shbh7urgg+ObG/LB2e0tqwX2anMSFWQOVHzeWme7xX?= =?us-ascii?q?yDIhYfSkx3smVZw11fS48VATS5EQlRHR3+yjZolEXSj0AHxddB3FpTAlmGh5Ku?= =?us-ascii?q?Yy3uA/zQvHsVkBMjCLcOhpZ3JBv9wnGFydP255CmsiSF+al4bD5RSs378K9StH?= =?us-ascii?q?g9lUyfFFsGT5vpLHejKsXq2rponVsyonadgmuLV/P5X+LMWcqJ7QmSfSQ4XXsg?= =?us-ascii?q?2ATCG1DeFamsRKLCJeXvZIhXkvOdYatopZ9UoxSsA+KqRVCKYxu7+ncjVkDSsd?= =?us-ascii?q?zCMDUYOPwiACiP+m27TGjheQbIgiMBscvZVYmNQdSSl2bTgFqa+/TYXZjXGERX?= =?us-ascii?q?YPIAcS6wRM6wYAlo5/fuDl/IrIQoVDyyRTo/5uVCvECIVo/UPhSm6KmVj4VOmh?= =?us-ascii?q?k+ux0ANc1v7jztkbWB96CUhc3elWlVAlKLBpJKYOoIHGqDiIdVn1vGj10uupOE?= =?us-ascii?q?FRydHId13/FIfKr3D8UjAa+XEORo9C03DfFZUTkwplc6knvlNML566ekzm/Twr?= =?us-ascii?q?25xpH6WkVcCs31slrHAGRzu0HNpFFe5mtUzYWCF/Y5Grs5jlPI1STXFW+J2YsV?= =?us-ascii?q?hZkUFtPDW+yZtTMc1N5SQMXDdXqzWHoNSyUNFD2dNxD5IULdd/oW3yGKVYOJWK?= =?us-ascii?q?on02vbLuynnF+zA8rli6xTOzG7OmQOJD5WEeHBsmJ3iGoEk1E+Qs6nvS8kzKsl?= =?us-ascii?q?1s4+dbAb2PgF5toDphG5BBHSxF1Xa7IFRvVHNGqflVKLzJc8xARPk/fR+vNAYk?= =?us-ascii?q?FfE820yG4Fp5kmrnbCxqrgtV5STdUBcuVSUPhbftgzIeoNm9OTAGU5JIcSkhby?= =?us-ascii?q?DdJgKZniBYog1SZFx0VJACHNlF4a0b0pVJ8cbYT0ajNz0FVgR4Ng0kyfpfiVJD?= =?us-ascii?q?sEKAdC/GAwqnaerDvx9qccqft8OmMPP5/AJbhYz9q+A4678PR3u4lg2xWdretZ?= =?us-ascii?q?PztsWWtkuSc6f1K/e8bmHcQzjMlx+wmawpD53N/yjNLgVXNYV1yX05bpf/E2LL?= =?us-ascii?q?OwpJJ74DLUpBSa96cclGovxdZ8J8YKYJ4rNtCQiaSRPzA4Gvt/5GLkvJRTvCMS?= =?us-ascii?q?qB9PC/oZjJ4rzZU+TgYdaMx3nfSaJtIph68SX7G6vt0YJG5kr2wOli+V1nRlXd?= =?us-ascii?q?LiCBqMjhJhkR68m8d0viuZkpEi3KAJtql3rt3E5AfdINQyK26JQY1I9Z6HHoRO?= =?us-ascii?q?1l1Ej8qvZf+KRi6YYt+bxpzt20JajKI/RArUBnGgSUBhlt9pg1AmhwXXpRYugK?= =?us-ascii?q?KPfVZ6sZk9vjq+XqF6wT9B2V+vBWadrdKEHHgcmzEDacSQZLnA0Zsz4VMhOc1+?= =?us-ascii?q?KZm69zUculp/L22kQj41ikKR4J0a5i6JyY+qWSou/XdBzRwaICWqf0WsP5tq4s?= =?us-ascii?q?tF+K5f04iL4OfXR4YwujEOUGV84dwGLgwborzSIqHcPDBajv+OVfV3IjgzLvh4?= =?us-ascii?q?x9H0gMGvwKB7aL+p5enmggkezDKtIWarxCmnqIFRO8FL8CyGKk6yyTIGZ/mRHC?= =?us-ascii?q?yRDwQWS07F/tti91Wi7Mwtjsk0ZPUbm3H0hSVTKzOUBkqDOPIBbotN3vtKsp9k?= =?us-ascii?q?42NnLrtMmRlGqhP7NaBNb/K8CdISYqolIXkJwxSca11YAdB9W9PM8b8GtiYfvG?= =?us-ascii?q?92OrjyhBrr9Dh4rF58GY+u7aHXe+gKKHrLWN3ipXymAivVE46NCvKO3B58GQT/?= =?us-ascii?q?SvzWYRQD91uxHdUB6ttrzbs1cUNFSJ0EfKnYwHJdRZ0mc41074/ugjQdQz9ApE?= =?us-ascii?q?GobGefwCuSj5OCHozlaHf9I3Si6e3iNWHlP0C1Z3ArQz1XnrvM3XiXff5UEnSp?= =?us-ascii?q?N3d0z9ihx9F584Jl416FgL3ioDFhAAZguaDLGzC0XqN4kEVUkfaRSfxre6Z6M3?= =?us-ascii?q?0FZvzbOo+eDcc/ZzB7cXNvZalA6BhkJXGpUMsa0RWLh8YUNS9LbLpgj+DIjqR+?= =?us-ascii?q?DmmmAsNfKpQsBb/8cZt2Eh4gqmXBqv95ND77cdiJCVea9JeoDMs9pg70h75T4O?= =?us-ascii?q?eCtNgAJ8jx+jUuATuvrj4t7Fv5qs8OquU7wtR+oP/RguG2t+l4fwgEwkodzPy+?= =?us-ascii?q?dcUJPaiYDl/wBLPXGHo5vV0xhzKeoPN4KkZq1g+G8dJygDPX4OO8SZa+Uk6S93?= =?us-ascii?q?LDrT/0BCAt8LZd4AM8rCgxpUhVP1WLFT7cfbHl6YC5tteMAo9WX31Ss1/YE6Uu?= =?us-ascii?q?n+9D+8PYrf4E1VP/NfkCVsk8rPpOcLzvrUFCgX5n6ZZx9uwiycz5mNCvDw/fiD?= =?us-ascii?q?ydzPU1MJADQ2UodHKzaY/wyoWPa1no3zUgyI8s/znI4+dEWIS3y0m6QFtLpMEe?= =?us-ascii?q?FehSjg2zheF5r6h/SLvNqw5mpXsUdHEIVo7RHfHqVQIIl7Mwzilsa3Xkh8Gjf/?= =?us-ascii?q?eMbMexohpOWW3fwM7/xjOUXxY4EbIxQEy6/16HdOQQtuTaT5vlCHUu4LY9tmUv?= =?us-ascii?q?zEpGhP6Y18M68PIESdpJvyozdKr1A2AAkpZKUsoTxacknOgRBaWqf1uL4GkQsc?= =?us-ascii?q?Ut95tFRSGWKxJmIx/T7HWrlUjKWLDvwa7CmTRLQUU0p0KiN+Xw+12JJ2druog/?= =?us-ascii?q?BIqGVGkzh5oPg3zjNmRRy8uTb2q6IKwzIg96mytC8dtnxdUuWejyDIBE1BzPsU?= =?us-ascii?q?g6ccBXLi5EeyYXYZaov9/qVnKd7m9YY//3Q1eQ8jcDEeXeS8FyHwiLuFAoOLsN?= =?us-ascii?q?Jbih+CpsHObbuoICgJMbQ9zxPjSGRn3gjYghlo7HMBQi+84988OIW9JcElyzKq?= =?us-ascii?q?GWjbdFcM+qRJsM/wtV4XUuQ7clZhwGR/0sidWCIBXsvPG3w6jgI8c2VLbIpD6Q?= =?us-ascii?q?MGF6kvmjuIoqhG/gQPbTfIE4Sq5orQktnM2XUnS9dl2H7WrLWfhpw2yH1lh890?= =?us-ascii?q?7imWtXQXduzYUMxsAn/o24dd0+P+ZPKtsuYZR4tg0rihVuENMtW782usxJpqQl?= =?us-ascii?q?OlxqgZH1ehK+AM2LHbUzu+RG2DXeSLdHSMnyonMkHs+BakNFo3aN1Fr0UlKOvN?= =?us-ascii?q?moZclxH9UbNzXiiQvVjbzGg5PuMAeQM2v4OnewIRQe4UYOicIvMuz+MiB1sWaH?= =?us-ascii?q?/JBjB2C+6wsV6ihoR7PG9g4Uria+T37g/mKMeSGgUDEYPCoJ5+5/i6RmOZOXB+?= =?us-ascii?q?1xBzPUh09+LaF1svrO9cd4iekcLXh9Rh3u4Pb+1tPjElut4PhoJj7pGZ0cmScR?= =?us-ascii?q?HLz5b9Oc/ar+OdA/3e00QqYH9VXqAeYQPv6IUwJsQ5VKHLHbtFoRQcArA3QJsl?= =?us-ascii?q?N2jv76x0NAdzfRTKZLSog8nluv6LZoFKqHDI9F4wKjnTuwEbwPyuUQN7d4yqh2?= =?us-ascii?q?n1IJ0oQjJBrtttCgZpHYdWH8MArhGnA4KPmKygit++4UV6u+gQvar3EPDK28yz?= =?us-ascii?q?359tUJhC+UyLIDHRCbFwgkt7iuSyg/HA0oT+CM/ldt0ESOh7TXDfarDYBoWwMC?= =?us-ascii?q?mDOsHidE5c9b6TzrZ5XQ6MZCD2RaaGszekNPp860Uh1oN4ZPbTzCAq77zD3dv9?= =?us-ascii?q?fX1UpieirX6PM5tS90LKBe3YXx1KTfqF8WBlHbAYbIfu8+cOK9MiysCG4wZv9D?= =?us-ascii?q?RCzNeFI6+5o0/OwE17dpXbI1Dy1iYkX4kKPBS/MUwxgW/WqnTdHW5QLs66Jslx?= =?us-ascii?q?mNyVFADi51FtmWExYW5MAnHnSsyWNWgf2sK+fxGK9BlRA9YYgeG4ZVQ0trasRu?= =?us-ascii?q?lsO5VFn/iqtbocnNl1KyDPXtVaPzrKIL54JDVREv7PpF8uYhIetLg1QIg1b4CU?= =?us-ascii?q?IEwbKEeA1T/yzQza3E37bdOjz7yJICcI/XVD1L/FzzxMqBOiufaYn83vSrbZY4?= =?us-ascii?q?/qXPTKKioqSimaRSguEUau4Vqkuf8EvP2CIWcFo1AUeTmfCAgJqaBqs9fQD3Xf?= =?us-ascii?q?mep5fJ0FnPqaQTz/SDVklKouASZGrVuMQ/QGFQbKbnLsg3FRuBK8Kf9W/HLkbr?= =?us-ascii?q?qYxqxPV+wQHIRMbuWTQ8HEdvBGOzcoijIZNf6+f93bqbY51knFTW4HHKbV+l2e?= =?us-ascii?q?S1SWTeCCyD7xW4UaoZQ06WIU/YfLkyt2FbnYF6qOrD6ptIijhWCXvvONeHMqZh?= =?us-ascii?q?kXiecPGyGqyQNcJXtMX9MKs0j3XvSoe1dH1HVvj/lnnRALZlIgATVVznRKkaPl?= =?us-ascii?q?SYViQlkOgTbrGqUL?= X-IPAS-Result: =?us-ascii?q?A2FhBAAiF+1Y/wHyM5BcHAEBBAEBCgEBFwEBBAEBCgEBgn8?= =?us-ascii?q?pgVoSjmyoOyiJZ1cBAQEBAQEBAQIBAmgogjMigkEGAQI3FCAOAwkBARcpCAgDA?= =?us-ascii?q?S0VEQ4LBRgEh2RGgTgNq1kmAosGj2YCEQGGAQWBKwGbUQKSXgKKfIZGlAFYfQg?= =?us-ascii?q?cCQIUJlBog3McgX9ZhxgPF4IXAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 11 Apr 2017 17:53:27 +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 v3BHrP0w031403; Tue, 11 Apr 2017 13:53:26 -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 v3BHrAGk097483 for ; Tue, 11 Apr 2017 13:53:10 -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 v3BHr9T6031356 for ; Tue, 11 Apr 2017 13:53:10 -0400 From: James Carter To: selinux@tycho.nsa.gov Subject: [PATCH 2/2] secilc: Add options to control the expansion of attributes Date: Tue, 11 Apr 2017 13:53:43 -0400 Message-Id: <1491933223-18277-3-git-send-email-jwcart2@tycho.nsa.gov> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491933223-18277-1-git-send-email-jwcart2@tycho.nsa.gov> References: <1491933223-18277-1-git-send-email-jwcart2@tycho.nsa.gov> 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 Added "-G, --expand_generated" option to specify that all automatically generated attributes should be expanded and removed. Added "-X, --expand_size " option to specify which attributes are expanded when building a kernel policy. All attributes that have less types assigned to it than SIZE will be expanded when writing AV rules. Signed-off-by: James Carter --- secilc/secil2conf.c | 2 ++ secilc/secilc.8.xml | 10 ++++++++++ secilc/secilc.c | 31 ++++++++++++++++++++++++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/secilc/secil2conf.c b/secilc/secil2conf.c index 5d8fe87..4e97dd6 100644 --- a/secilc/secil2conf.c +++ b/secilc/secil2conf.c @@ -124,6 +124,8 @@ int main(int argc, char *argv[]) cil_db_init(&db); cil_set_preserve_tunables(db, preserve_tunables); cil_set_mls(db, mls); + cil_set_attrs_expand_generated(db, 0); + cil_set_attrs_expand_size(db, 0); for (i = optind; i < argc; i++) { file = fopen(argv[i], "r"); diff --git a/secilc/secilc.8.xml b/secilc/secilc.8.xml index 9e2670b..5d52e59 100644 --- a/secilc/secilc.8.xml +++ b/secilc/secilc.8.xml @@ -81,6 +81,16 @@ + + Expand and remove auto-generated attributes + + + + + Expand type attributes with fewer than <SIZE> members. + + + Increment verbosity level. diff --git a/secilc/secilc.c b/secilc/secilc.c index f4ecbee..894f174 100644 --- a/secilc/secilc.c +++ b/secilc/secilc.c @@ -64,6 +64,9 @@ static __attribute__((__noreturn__)) void usage(const char *prog) printf(" -D, --disable-dontaudit do not add dontaudit rules to the binary policy\n"); printf(" -P, --preserve-tunables treat tunables as booleans\n"); printf(" -N, --disable-neverallow do not check neverallow rules\n"); + printf(" -G, --expand_generated Expand and remove auto-generated attributes\n"); + printf(" -X, --expand_size Expand type attributes with fewer than \n"); + printf(" members.\n"); printf(" -v, --verbose increment verbosity level\n"); printf(" -h, --help display usage information\n"); exit(1); @@ -90,6 +93,8 @@ int main(int argc, char *argv[]) int preserve_tunables = 0; int handle_unknown = -1; int policyvers = POLICYDB_VERSION_MAX; + int attrs_expand_generated = 0; + int attrs_expand_size = -1; int opt_char; int opt_index = 0; char *fc_buf = NULL; @@ -107,12 +112,14 @@ int main(int argc, char *argv[]) {"preserve-tunables", no_argument, 0, 'P'}, {"output", required_argument, 0, 'o'}, {"filecontexts", required_argument, 0, 'f'}, + {"expand_generated", no_argument, 0, 'G'}, + {"expand_size", required_argument, 0, 'X'}, {0, 0, 0, 0} }; int i; while (1) { - opt_char = getopt_long(argc, argv, "o:f:U:hvt:M:PDNc:", long_opts, &opt_index); + opt_char = getopt_long(argc, argv, "o:f:U:hvt:M:PDNc:GX:", long_opts, &opt_index); if (opt_char == -1) { break; } @@ -180,6 +187,24 @@ int main(int argc, char *argv[]) case 'f': filecontexts = strdup(optarg); break; + case 'G': + attrs_expand_generated = 1; + break; + case 'X': { + char *endptr = NULL; + errno = 0; + attrs_expand_size = strtol(optarg, &endptr, 10); + if (errno != 0 || endptr == optarg || *endptr != '\0') { + fprintf(stderr, "Bad attribute expand size: %s\n", optarg); + usage(argv[0]); + } + + if (attrs_expand_size < 0) { + fprintf(stderr, "Attribute expand size must be > 0\n"); + usage(argv[0]); + } + break; + } case 'h': usage(argv[0]); case '?': @@ -210,6 +235,10 @@ int main(int argc, char *argv[]) cil_set_mls(db, mls); cil_set_target_platform(db, target); cil_set_policy_version(db, policyvers); + cil_set_attrs_expand_generated(db, attrs_expand_generated); + if (attrs_expand_size >= 0) { + cil_set_attrs_expand_size(db, (unsigned)attrs_expand_size); + } for (i = optind; i < argc; i++) { file = fopen(argv[i], "r");