From patchwork Thu Nov 17 16:56:08 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Roberts, William C" X-Patchwork-Id: 9434585 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 1EB066047D for ; Thu, 17 Nov 2016 17:01:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0E65129664 for ; Thu, 17 Nov 2016 17:01:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 02A5C29666; Thu, 17 Nov 2016 17:01:49 +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]) (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 8C1A829664 for ; Thu, 17 Nov 2016 17:01:48 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,506,1473120000"; d="scan'208";a="1059126" IronPort-PHdr: =?us-ascii?q?9a23=3AHP97CRQbsrEDSRNPniB5tgOABNpsv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa68ZxCAt8tkgFKBZ4jH8fUM07OQ6PG7HzVeqsbd+Fk5M7V0Hycfjs?= =?us-ascii?q?sXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFRrwLxd6?= =?us-ascii?q?KfroEYDOkcu3y/qy+5rOaAlUmTaxe71/IRG4oAnLq8UbgIRuJ6U+xxDUvnZGZu?= =?us-ascii?q?NayH9yK1mOhRj8/MCw/JBi8yRUpf0s8tNLXLv5caolU7FWFSwqPG8p6sLlsxnD?= =?us-ascii?q?VhaP6WAHUmoKiBpIAhPK4w/8U5zsryb1rOt92C2dPc3rUbA5XCmp4ql3RBP0ji?= =?us-ascii?q?oMKjA28HvTisdtkqxVphyvrAF7z4LNfY2ZKP9yc6XAdt0YWGVBRN5cWSxfDI2h?= =?us-ascii?q?YYUBDO0PMuRWr4nlpVYCsBWzCgawC+3g1DBInWT73bE43uk7DQ3LxhAsE8wIvX?= =?us-ascii?q?/JrNv1LqASUeWtwajGzDXDa/dW2Tbn54jNaBwuveuAXah3ccXK10YvDR/Fjk6L?= =?us-ascii?q?pIzkOTOVyvoCs2yB4+V8UuKvjmgqoBxyrDi33sogl4bEi40Pxl3E6Cl12pg5KN?= =?us-ascii?q?KmREJhfNKoCIZcuiWZOodsX88vQWFltDw+x7ACo5K2cigHxZI6zBDFcfOHaZKH?= =?us-ascii?q?4hf7WeaUJjd3mWxqdaqkhxa37Uig0ur8VtSo0FpSripKjN3MtncV2hzP8MeHUP?= =?us-ascii?q?p9/lq62TqVywDS6v1LIUAzlabBLZ4u3qUwmYYJvUTGHy/2nF36jK6Qdko65uil?= =?us-ascii?q?8/nrb7rpq5OGN4J4lxvyProhl8ChG+g0LxACX22B9uS90L3j81f5QLJPjvAuia?= =?us-ascii?q?nWrpTaJcUdpq6kDA5Zy50s6xGiDzegzNsXg2IHIUlZeBOHk4fpO1bOLOr+Dfek?= =?us-ascii?q?mVugijhrx/fYPrH5GJXCMmDDkKv9fbZ680NT1hIzwspF55JVEbEMO+rzVVXrtN?= =?us-ascii?q?zZFR85Kwi0zPz7B9pjzI8eXniPAqCBOqPIrVCI/v4vI/WLZIINtjf9Kvwl5/vw?= =?us-ascii?q?gn8jglIdc7em0oYQaHCiBPtmO1+ZYX3ugtgfDWgKohAyTOvwiF2NSTRTfWq9X7?= =?us-ascii?q?og5jEnD4KrFYnDRpq3j7yHwCi7H4ZWa3tDClCUEHfkbp6EWvkXaC6IJc9hiDME?= =?us-ascii?q?X6C7S4A9zRGuqBP6y71/I+rX4CIYtpXj1MVu6u3Qjx4y9jt0D9mH32GKVWF0kX?= =?us-ascii?q?sCRyUq06BnvUx91lCD3LBijPNFD9xT5u1GUh0hOJHG0+N6Dsr+WgXbfteGUFym?= =?us-ascii?q?WMmpASktTtItxN8De1pyFM+mjh/dxCqqH78Ul7uQCZwv7q3c3mb+J8Bhy3bHzq?= =?us-ascii?q?YtlV8mTdVTNWe+nK5w6xDTB5LVk0Wej6uqdboT3CrJ9GeE1meOuFxYUBJ3UaXA?= =?us-ascii?q?R38TfEzWrc725knaVb+hFawnMhddyc6FMqZKcdPpjU9BRPf4JNTTeHmxm2G3BR?= =?us-ascii?q?eGw7ODdozqd38b3CrDFEgOixoT8mqeNQgiGiehpHrTDTJ0GlLrf0Pj7/N+qGig?= =?us-ascii?q?Q08q0Q6KdVZu16ew+hIPgvycUfwT1KoeuCg9szV0AEq939XOBtqcugVuYaRcbs?= =?us-ascii?q?k54FpcyW3ZsAl9MYC6IKB5ml4SaQJ3sF3y1x9vEIVPjdAqrG82zAp1Ma+Y1lJB?= =?us-ascii?q?dzec3Z/uIb3aMXP98w61a67RwF3e18yW+qgX4vQit1rjpB2pFlYl83h/ztZayW?= =?us-ascii?q?ec6Y/UAwocXpP8SVo49xhgqLHAfiky+ZnU2WdqMaaqrj/Iw8gpC/c9yha8Y9df?= =?us-ascii?q?N7uJFBHzE8IGG8iuL/Yql0K1YRIEO+BS8qE0Mtiid/uH3q6kJvxgnDW8gWRA+o?= =?us-ascii?q?B93VqG9zBgRe7Qw5YF3/aY0xODVzf9l1ehrtn7mZtaajEWH2q/zzXkBYFKa61p?= =?us-ascii?q?ZYYLCGGuI8yrydVlnZLtXWBX9EK7DVMcxMCpYQaSb0D63QBIz0QXpninmS+mwD?= =?us-ascii?q?xujz4pqaSe0TfVw+T/aBUHIXRHRG54jVfjOYK0lcwVXFC0bwg1kxuo/V76yLJG?= =?us-ascii?q?pKR7NWXcW11EcDPxL2FmTquwsbyCbtVK6J80tyVXV/izbUqcSrHjvxsQyznjEH?= =?us-ascii?q?dGxDAnazGqvY30nxl+iG6EMnlzqmHUed9uyhfb4NzTW+RR0iAARCZmlTndHkK8?= =?us-ascii?q?MMWx/dWIi5fDtfizV2G/WZ1Vainm1oCAuzW95W1xBx2wgeyzlsfgEQgg3i/xz8?= =?us-ascii?q?NqWjnQrBbgfonr0Ly3Mfp9cUl1AF/z9dJ6FZt4kossmp4Qw2MXhoiO/XUZi2fz?= =?us-ascii?q?Ks9X2bn5bHoQXz4E38Da4Abi2E15IXKG2Zj1VnODzct9f9O6eH8Z2joh78BWD6?= =?us-ascii?q?eZ9KJEnS1orVejswLRZ+VynjcHxfso9nEan/kDuBAxwSWFHrASAU5YMDT0lxuS?= =?us-ascii?q?8tC+qL5aa3qucbis1EtyhN6hA6uEog1GX3b5YJgiFzdq7spjKFLMzGHz6ob8dd?= =?us-ascii?q?nTbdMTsgObngzFj+hSJpIxmOQFhTZ7OWL9un0lzvA0gQZo3Z6koIiNM39t876h?= =?us-ascii?q?Ah5EKj31YNse+j/3gqZYgsaW2IWvE45vGjoVQZToSuioHygKtfT9MAaOEiMzpW?= =?us-ascii?q?uHGbbFGg+f8khmpWrVE5+3L3GXOGUZzdJ6SRmSJExQnBoUXTUinp4lEQCn38rh?= =?us-ascii?q?f1ll5jAK+lH3sANMxfxyOxn5TGjfuB+iai0oR5iHMBpW8gZC6l/IPsyY9O1+BD?= =?us-ascii?q?xX/pu7owCXLWybfQtIB3kTWkOYH1DjIqWu5d7Y/uiCG+WxMuDDYbqLqe1RTfuI?= =?us-ascii?q?w4yg0pd+9TaWKsqPJmViD+E82kdbR3B1AcrYly8KSyMNkyLNaM6aqQym9SJrq8?= =?us-ascii?q?Cz6vPrWBjg5YGXEbtdLc1v+wyqgaeEL+OQgjx5JixA1pMU3nLIxrkf3EQJiyFy?= =?us-ascii?q?eTmtELIAujTLTK3Mm69YFRobZzl0NMtS4KI2xhNNNtLDitPpyr54ieY4BEpeVV?= =?us-ascii?q?P/gM6patYKLHujNF7cH0aELreGJSDRw87te6+8TaBQjONOuB2qoDqbD0jjPjeD?= =?us-ascii?q?ljnuTRyvN/9DjD2DNhxEpI69agptCXTkTN/+cRK7MdB3jTowwbAvm3zFK3UTMT?= =?us-ascii?q?lmfENLtLGQ6jlYgvpnEWxb8nVlNfWEmzqe7+TAMJkWvuFkAjpqmO9B53Q606Va?= =?us-ascii?q?7CdBRPNvmSvSqsVho1apk+WVzTpnShVOoC5RhI2XpUViJbnZ9p5YVHbY+xIN6H?= =?us-ascii?q?+cCw4Np9pkFNLvvbtfysLIlK3tKzdP6M7b/cwZB8fIMs2HK2YhPQDvGDHKEAsP?= =?us-ascii?q?VSSrOn3Hh0xBjPGS8WWYrpgmqpjsn5oOT6VUVEcuG/MfC0RlAMYCL4ltUjMji7?= =?us-ascii?q?6bg9YC5WCioxnJWMVaopfHW+qUAfrxMjmZiaJJZxgPwbPjMYQcLIv721dhall7?= =?us-ascii?q?hojKHVTfXcxVqC17cgA0uFlN8GR5TmArwULqdBit72EJGv6ughE2ihBzbv8s9D?= =?us-ascii?q?f2/lg3IVTKpDMqkEYvmdTpmzaRfyDtLK2oR4FZFzL0t1QtMpP8Wwt6cBe9nVJl?= =?us-ascii?q?NDjZXLJclKFvdXpxiA/bt5pPAuBTQrFZYB8KxPGXe/Up3U5aqiq52U9N/fHFBo?= =?us-ascii?q?d6lAs2bZ6sqGpN2wx5bNErOKPQP7BGzl5MhqKJpS+lzfo+zxMbJ0oX92OSYiEI?= =?us-ascii?q?slQSNrY6Pyqo4vBs6QualjtHf2gMTeQlovRr90M6IOmAwCTg06NZJkC2LeyfIL?= =?us-ascii?q?uTu3Lcms6QXlMwykQImlFe/bdo1ccjckyUV10gzbaKCxsJMs/CJh1PYMpJ6Hjf?= =?us-ascii?q?ZyCOvvvRwZhtJYWyCvjoTfOStKYTmk+rARomH4EL7sQHApmgzVrVLdn5I74fyB?= =?us-ascii?q?Us5QPrJFOfAPRPZh2LjC8No9ujw59vwYldOjYdDH1+MSWt5rfYvAkqgOaDXNot?= =?us-ascii?q?bXcaWZMEOW4sVM28hSFZo2xKDCOr3eIB1AiC8zj8qzzMDDn9atpjY+uUZRNsCd?= =?us-ascii?q?yt5Do/8qi3hkTM/ZnEIWH1K8hisMfV6ewGv5aHF+9UTb5lvkfTgYlXXXqqU3LU?= =?us-ascii?q?HN60IJjxZY8sbcD0CnmkU1y/jS41QNnrPNq3KKiHnx3oT55OsIaHxDAjKdO9Fj?= =?us-ascii?q?YGFhhqo+ED5b5zahMbbJo+YR/osQM+N6qlLwqDydquQnyiKT1PQ/lR0OW2fbpX?= =?us-ascii?q?wDQwbuWi0nsvUok6z/Wr8U4KXJwFlQ/RxfC4aoZETCfzBGJSex/UpSUjjWhgNv?= =?us-ascii?q?w+wuAlwBPHqVMcKSyEdPR1aGxYuNExHUmSIXN3CmUkR1+cio7D4hW00b4L4iVT?= =?us-ascii?q?hcpZ3+pevXfiuZ/fZS6jV7awqZXJqSYga8Ypo7FpO4z5PsSGrI/eniDYTJTIrg?= =?us-ascii?q?KFUjS1GOZBl9dMJyJYRP1ImWA7NswcpYpO91Y+VsckK7xIEqksqaigaSB4Ai4K?= =?us-ascii?q?0S8ZS4SA0SQYguimwbvakQyffY8+MBweqppCnMUSUyp3YiMYq6+jU4TWl2CESm?= =?us-ascii?q?gXLgcc9x5M5Acamo92YO/l/JLCTIVQxD5Ov/J0TizLG4Fo9lThUWGZm134SPSn?= =?us-ascii?q?k+Gy3AJS0Ojj0sIHVxFlE0RdwfhZllcwIrFtN6YQppLKsiOPdU7ismPh0vepJF?= =?us-ascii?q?lQyc3Rdl33FonFuHH9UiIC53IbW5VDyHbFFZQdiwB5crokpE1QIIC6fUbz/yQk?= =?us-ascii?q?x4NtH7aiT8CqyVElrXIIRyqxFtpBDOZmsEnJVzJ5eZCrr47lO45TQm9W952RsV?= =?us-ascii?q?BZkF9iMySh05pTN9lN4iIQXDhIuTiSpsGySNBF2cNsDJ8BOdZ/u3b8GKNYI5ed?= =?us-ascii?q?uXs2taLzynXB4TAzrE+6xCmvG6+/V+9Z42oeGgAyKmSCtkUvCvAj/n3U8l/Trl?= =?us-ascii?q?B+5/1bCaSXjUVtvDZ9GYhDBjZT2nC/NVtzSGRJvv5HJ6vLa8xcW+c9ZRuxNBwk?= =?us-ascii?q?D/Im2FaJ/U5sl3fjfyNyrhda+zzaXwQsVSkVhanimTMApcG9IjIaSoxHYis/YC?= =?us-ascii?q?vfLAKbgy9Xtg5Fa052Q5AZHspF+7YD0ItW+crNV12hJjwbUxx5KA04y+ZfmlBe?= =?us-ascii?q?v0mCfyDSExaof+7VshJrZceRsNKpLPPh8QhchIPorPw0+qceS3CoggCiXdfer4?= =?us-ascii?q?rgudKQrUuOaL30M+uibn/dVDLMlwy/ha84D5nW+CjeKBBbJIdnxnoke5fhFXXG?= =?us-ascii?q?PRBBJ6IFOUVXS7x1adJbre9EfcNkfrgG+bN1DBKdWhzvAJCvrOVBLlvLXTTeND?= =?us-ascii?q?mB/fairoLP9rHdUu/gZtGWx3nbXa13OIt66SPhFLfuy4Ne/VD22vh1/ENgVVfG?= =?us-ascii?q?KzyBrMjmJg4T+MmibFXtsYM0Ej7NHZdwlGbtxltaeMoJQi2q95AYx41F6HrqTu?= =?us-ascii?q?J4yEfzuvVI97Z48Yk3/6xpycCsKKfXM/tatUtnDQaIBgV27JoiGnNyR2ZPbe8N?= =?us-ascii?q?M/feYb4WjdjwpOztEawY9gGV8fRDadTbP0HBhtW/CjaERBxGhggBszkaLhCY1/?= =?us-ascii?q?Gfha95UsOlpfX92kIx4lixMh8Gw6pr5Yef4KaIo/XXbxTJx7geRqfqXt/zrqgr?= =?us-ascii?q?u06K5/0rjrgOemJvYw2gDecSSNUQxnv6wqAs1iIsFNnPH7T+9/5fT3g5hC7vm4?= =?us-ascii?q?hhH1UKHfMZBbWL/Zlfnmc8n+zWKNgWf7tflWmRDhGkE6UNyXix5yuQOmlljQnE?= =?us-ascii?q?0wvsTmOr8F/2sSh4TDPKz9fniUdVV7+3BUJIUyqoP094vimPMxDztNrro6Q18V?= =?us-ascii?q?05MnD5tNKXimStIrRXH9fwJNaEOyk7uEoXjIEtRtyowY0bHN29INEN8HFxcPTT?= =?us-ascii?q?8Garky5brKdBmYXe/s+U+vLNHXmjlK2WsbONyy5EynIgp1Ew9sigNu3S592NW/?= =?us-ascii?q?mo030RTyJ/tgbaUR66tKHUr1cOOUORyEfLgosKPtNH0nYkykHq/u8jQMg89A9G?= =?us-ascii?q?DIbPe+sCpSzvODvz2VufZtY3WTeb0ztQAF31FUJ1GKci12L3p8LJjW3f+0EpRo?= =?us-ascii?q?Zqc0znhBp3D5kmJkIp7FgXwyUDHhYLaR+HEr6kH0LlIpUYVUIbcxSIwKC6ersr?= =?us-ascii?q?3U102r6v//XcbfJmCKoCKPldlRWDnENBFZIIq6IeT6xze0RH+K7RuAfiF5DtX+?= =?us-ascii?q?L6mnooKf21Xsda/Ngbt3sj5wayXB+g5olD7rkFkpCId6hEYZfWsMB68Uhn+SYF?= =?us-ascii?q?djZRjxhnkxO5Teccqfji4tnaqpWn8PqhWb02R+oJ6xg7GXhxg4H3gFA5rtHdz/?= =?us-ascii?q?1cRZHNiYTj7ABNJGaHt53b0xlnJ+sBMYCrfLd893UfPSceOnYOMMGKZPk7/iBi?= =?us-ascii?q?Li/c50FYAsMLf9MXJtDBmQdOik3mQLtT7NbUGkeEC4dvcMAl93L3xyop8ZQgUu?= =?us-ascii?q?bh5ji2JYrc711UJPNMkiFslNPEpOgIzvvfEzAX7mOFaxdpwiODxZ6NC+zz/emW?= =?us-ascii?q?y9HbSUkGHigoXIdZPjaC/hanRuWtnpXzTgyU8tPzgI45dE+IWnyxhroKsqJWHu?= =?us-ascii?q?5GlCr2xSVRFoH6h/KUr9qj8nBXuUddEIZu9xHFHrtQPoljMxTiisarXlR8Bjf4?= =?us-ascii?q?eMzMeRohovCWyfkQ4+V+LEb+YY4bIg4axLL683VVUxBuRKTwvlmHQeIbfMFmR+?= =?us-ascii?q?/crnBJ9YJgLLcCPFeDq5zssjdIr1c2DAgyaLAuqjxad0/OnBBaWqvvvL4PlBEc?= =?us-ascii?q?UN5jtkNWH2K/Jn4+7SLdVatJlKmRFOAV8jKLQ6wIUkVnLiR+Qxev15V1YbepnP?= =?us-ascii?q?dHsmRdniNmu/Uq1jNrRRSmtS3rvaIN1ioq+KukuzUZpXxFUuKenj/HCVpf1/QK?= =?us-ascii?q?lr4QBWvt51K6YXkDapby4bZ8KMTv8Iku+XI/bgs5cy0BR+SgBDn6j7mUDYyXrN?= =?us-ascii?q?JcmBmNtd3Mbb+0LSgSMK4xxg7jR3h5zwjRgRdp8GoNQjW7798kJZ6wOdgkxiq2?= =?us-ascii?q?A2fbcEsD4qJTvMv3q1ELUPM8aUl9z2V7zsiHWioNSdTOG2YrlAckb35JcJZe6R?= =?us-ascii?q?AHFqkohS2IsrNB/gEObzfeCp6l9ZXIncfUxXk9Ss9nxmDIqa2LiJMq1GZomt1u?= =?us-ascii?q?4S6IpnsSa/bUU8lyDXjvzo1f0/DxZ+2xsuAbT4tr0LuhUPsFMsit52S23JFqV1?= =?us-ascii?q?S+xrQZGVq5MfMMyq3dUyi7VW2SQf6LfHSUnzYlLk7y4gGlLl83aMZKt089Ne/C?= =?us-ascii?q?hp9AlwL/Sr50QySQpUPBzGM9K+8acBg2uIi/cQwQUOERf/ScJfQpwPAmFFsMbn?= =?us-ascii?q?rJEDBqC++3rVGtn5Z0O3F67UX8f+vt7hjsMMGOFRkcDY7asplx9OS/RmKAOn9g?= =?us-ascii?q?zxpyMVJ29+jFFFQxselcfIiXndTKgdR0z/IFfe93MSIhot4Thp5j6Y6M3ciRbx?= =?us-ascii?q?7RyIryKMrOovicBP3f01gqen9EXbUEew/14J86PtEhUb3JAbRZpQgcBbQ9QJE5?= =?us-ascii?q?OWf+6qV0LAJrcgHPf7m1g8jqpueOZpRKvX/W6kw/ID3bux0Zxfy+VRZ7YIyyh3?= =?us-ascii?q?XuPJAwQSpMrtN1Cht8HYtAB90PohGiA56VhKG7kcG+91l9u+8Qvqr6EurK28ih?= =?us-ascii?q?34VtQ5ha4lSGPDHVBKZ1mUllluCyje3b0pntCMPtZc8EVPJlTWHbcLPGGJuwKi?= =?us-ascii?q?6WMMLmZ0FG66Kc0K5+UhiJYCD5XqyGtDCrNfl95UU7y5d4fPbIzDE27rHUwt3y?= =?us-ascii?q?Z2ZBqiekt36JO4NV7EbWCuzGQxJUVf2F/X5+HaIJaYv09eEOMcEtwdSb7Adz8D?= =?us-ascii?q?RC39WfI6e/tk/DwFl2dZHFI0vz3SY2R40KLw+iMUsjm2PZrW7dAXtEJMi+NcZt?= =?us-ascii?q?mMqVDgDq50RpnWEtZ3VBGnbzSNaQIGgb3dixaBeM9A1VE9YJh/S3dlIgtq2uVe?= =?us-ascii?q?loPY1ImeCwu7obkdZpKifPRM9BMiHOLb92OCReDuHOpFgufx4FvKI5WoAvZZiB?= =?us-ascii?q?OEkHKluPyTvuzQve1k35b96s27yKICYR6XpK1K/F0T5Qpwm5vvaZn8LjULDFbJ?= =?us-ascii?q?3sWv7dLjYlXCmARTsuCUap5Uuku/0csfWDOmgTpVQUYiOJCA4PvaBjt8PQAXHP?= =?us-ascii?q?luF5Z50FmvSaWyH2SC1lm6s/HTpEtECWQ/oeDgnadXHgj3BAuAy5If9M+2jpb7?= =?us-ascii?q?qCxqpaQ+YWGJdDcuWFQ9vEfvBTPzgomS8CN+amft3TsbI530nWTWsdCabI71ye?= =?us-ascii?q?TFOMTvya2T3rQZ0fv5IotSow5tLQgih3HrzKP7aaoD6u6JS4jCeDueDFUGkieU?= =?us-ascii?q?k1j/wDAGWbxxlAMm4EAckPuE7xWq6Ae1pM1HUxhO1w2R8MfwRzUnt10n1Rmvaw?= =?us-ascii?q?AcJZSUQJjGOwXvIGdkp7DDUu8k+W+gfye8APudjPR29C8bsBUZEdLPct6IbLOa?= =?us-ascii?q?Ydw+0k3Cx4rywgsiWcDlRdjgSf/6rWAq182qVI5XMk8PFuQkGPXzTff3DFyoqh?= =?us-ascii?q?DcJPwTxjoXX62MXJsOBtM6FaqJ1nD1sQByJ5OMzdrnh9VjTv1BCaowewHDPYJi?= =?us-ascii?q?kQpjkMO2hNbetxzulmoD7UZ93B7gWWrKtnp0y1WiiRDb/hx51PDsDg0EOzLzNM?= =?us-ascii?q?ezixC4teq/BRmdJUaqQiNtv2OEzIMgWrVlHQgCsL7hW/5+3zAA=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2HWBABN4S1Y/wHyM5BeHAEBBAEBCgEBFwEBBAEBCgEBgww?= =?us-ascii?q?BAQEBAR+BWKRQkB6GRCaIHlMBAQEBAQEBAQIBAl8ogjMaghwCBAECJBMUIA4DC?= =?us-ascii?q?QEBFwghCAgDAS0VEQcHCwUYBIhLrm09KgKLMgEKAQEBI4hBhnARAYV9BYhRhwy?= =?us-ascii?q?KZpBtAooXhg1JkRJVXUuFP1EBhUuCLQEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 17 Nov 2016 17:01:45 +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 uAHH1E3b015272; Thu, 17 Nov 2016 12:01:23 -0500 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 uAHGuIhE204359 for ; Thu, 17 Nov 2016 11:56:18 -0500 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 uAHGuIQG013962; Thu, 17 Nov 2016 11:56:18 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1C5AwCZ4C1Y/yNjr8ZeGgEBAQECAQEBAQgBAQEBgzcBAQEBAR+BWKRPkB6COIQVhiECghhTAQIBAQEBAQJihRECBCdSECAxVwcSiGyuaz2LXgEBAQEBBQEBAQEjiEGMfwWIUYcMimaQbQKQJEmRElWGZx00AYd4AQEB X-IPAS-Result: A1C5AwCZ4C1Y/yNjr8ZeGgEBAQECAQEBAQgBAQEBgzcBAQEBAR+BWKRPkB6COIQVhiECghhTAQIBAQEBAQJihRECBCdSECAxVwcSiGyuaz2LXgEBAQEBBQEBAQEjiEGMfwWIUYcMimaQbQKQJEmRElWGZx00AYd4AQEB X-IronPort-AV: E=Sophos;i="5.31,506,1473134400"; d="scan'208";a="5830039" 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; 17 Nov 2016 11:56:18 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3AkNsxihFm/6ry1Sfj9765HJ1GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ7zp8qwAkXT6L1XgUPTWs2DsrQf2rGQ6v6rCTBIyK3CmUhKSIZLWR4BhJ?= =?us-ascii?q?detC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+?= =?us-ascii?q?KPjrFY7OlcS30P2594HObwlSijewZb1/IA+roQjQucUbgoRvIbstxxXUpXdFZ/?= =?us-ascii?q?5Yzn5yK1KJmBb86Maw/Jp9/ClVpvks6c1OX7jkcqohVbBXAygoPG4z5M3wqBnM?= =?us-ascii?q?VhCP6WcGUmUXiRVHHQ7I5wznU5jrsyv6su192DSGPcDzULs5Vyiu47ttRRT1ky?= =?us-ascii?q?oMKSI3/3/LhcxxlKJboQyupxpjw47PfYqZMONycr7Bcd8GQGZMWNtaWS5cDYOm?= =?us-ascii?q?d4YBD/QPM/tWoYf+oFUBrxW+CBKwCO/z0DJEmmX70bEm3+knDArI3BYgH9ULsH?= =?us-ascii?q?nMotT1NaMSUeS0zKbSyDXPde9Z1S3n6IjPaR8uv+uMXa5rccfKyEkvER/FgUuU?= =?us-ascii?q?qYD/IzyV0eENvm6G5ORjTeKik3MrpgVyrzS128shiInEipgRx13A7yl0zoY4KN?= =?us-ascii?q?ulQ0Bhe9GkCoFftySCOot2XMwiR2ZotT40yr0Dop67eScKx447yxLDdfCLaomI?= =?us-ascii?q?7Q7/W+qLLzd4gWhpeLO5hxau70egzvfwWdWz0FZPtiZFk9/MuW4R1xHL98SKTv?= =?us-ascii?q?hw8l281TuN1w3f8OVJLEQumafVK5Mt2rswmYASsUTHEC/2gkL2jKqOe0Qq++io?= =?us-ascii?q?7+DnYrT8qZ+ZLYN7lhvyMr4pmsOkH+s4KBQOX3OA9OS90r3j4VP2QLFQgvIqla?= =?us-ascii?q?nZtYjWJd4Hqa6hHw9VzoEj5g6kDzi7y9QVhmUHLVJZdxKHiIjlIVfOIOviAvul?= =?us-ascii?q?jFSslylrzejcPrL9GpXNMmTDkLD5cLZm9UFczAszzdZC55NbEbwBPPLyVVPxtN?= =?us-ascii?q?zfFBM5NRe0zPz9BNVy0YMeRzHHPqjMK6/JmUOZ7eIoZe+Xbckavyi5Y+Mo4//o?= =?us-ascii?q?kG8RhU4Wfa7v24AeLn+/AKdIOUKcNGXthtMAGGJMtUwkS+bnkkGZeT9Ve3u2Ga?= =?us-ascii?q?k742JoQLm6BJvOE9j+yIeK2z22S9gPPjhL?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0FMBAA54C1Y/yNjr8ZeGwEBAQMBAQEJA?= =?us-ascii?q?QEBFQEBAQECAQEBAQgBAQEBgwwBAQEBAR+BWKRPkB6COIQVhiECghhTAQEBAQE?= =?us-ascii?q?BAQECAQJfKIIzGgGCGwIEJ1IQIDFXBxKIbK5qPYteAQEBAQEFAQEBAQEiiEGMf?= =?us-ascii?q?wWIUYcMimaQbQKQJEmRElWGZx00AYd4AQEB?= X-IPAS-Result: =?us-ascii?q?A0FMBAA54C1Y/yNjr8ZeGwEBAQMBAQEJAQEBFQEBAQECAQE?= =?us-ascii?q?BAQgBAQEBgwwBAQEBAR+BWKRPkB6COIQVhiECghhTAQEBAQEBAQECAQJfKIIzG?= =?us-ascii?q?gGCGwIEJ1IQIDFXBxKIbK5qPYteAQEBAQEFAQEBAQEiiEGMfwWIUYcMimaQbQK?= =?us-ascii?q?QJEmRElWGZx00AYd4AQEB?= X-IronPort-AV: E=Sophos;i="5.31,506,1473120000"; d="scan'208";a="860091" Received: from fmsmga002-icc.fm.intel.com ([198.175.99.35]) by emsm-gh1-uea11.nsa.gov with ESMTP; 17 Nov 2016 16:56:17 +0000 Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga002-icc.fm.intel.com with ESMTP; 17 Nov 2016 08:56:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,506,1473145200"; d="scan'208";a="32462504" Received: from rhampste-mobl.amr.corp.intel.com (HELO wcrobert-MOBL1.amr.corp.intel.com) ([10.254.68.24]) by orsmga005.jf.intel.com with ESMTP; 17 Nov 2016 08:56:17 -0800 From: william.c.roberts@intel.com To: sds@tycho.nsa.gov, selinux@tycho.nsa.gov Subject: [PATCH v3 3/3] expand_terule_helper: cleanups Date: Thu, 17 Nov 2016 08:56:08 -0800 Message-Id: <1479401768-19811-3-git-send-email-william.c.roberts@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1479401768-19811-1-git-send-email-william.c.roberts@intel.com> References: <1479401768-19811-1-git-send-email-william.c.roberts@intel.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: William Roberts 1. Use the new helper to convert from AVRULE to AVTAB values. 2. Only check once for invalid AVRULE specified parameter. 3. Drop assert and just return error on invalid specification. Signed-off-by: William Roberts --- libsepol/src/expand.c | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/libsepol/src/expand.c b/libsepol/src/expand.c index 5e2c066..32df6f8 100644 --- a/libsepol/src/expand.c +++ b/libsepol/src/expand.c @@ -1691,26 +1691,22 @@ static int expand_terule_helper(sepol_handle_t * handle, avtab_ptr_t node; class_perm_node_t *cur; int conflict; - uint32_t oldtype = 0, spec = 0; - - if (specified & AVRULE_TRANSITION) { - spec = AVTAB_TRANSITION; - } else if (specified & AVRULE_MEMBER) { - spec = AVTAB_MEMBER; - } else if (specified & AVRULE_CHANGE) { - spec = AVTAB_CHANGE; - } else { - assert(0); /* unreachable */ + uint32_t oldtype = 0; + + if (!(specified & (AVRULE_TRANSITION|AVRULE_MEMBER|AVRULE_CHANGE))) { + ERR(handle, "Invalid specification: %"PRIu32"\n", specified); + return EXPAND_RULE_ERROR; } + avkey.specified = avrule_to_avtab_spec(specified); + avkey.source_type = stype + 1; + avkey.target_type = ttype + 1; + cur = perms; while (cur) { uint32_t remapped_data = typemap ? typemap[cur->data - 1] : cur->data; - avkey.source_type = stype + 1; - avkey.target_type = ttype + 1; avkey.target_class = cur->tclass; - avkey.specified = spec; conflict = 0; /* check to see if the expanded TE already exists -- @@ -1772,15 +1768,7 @@ static int expand_terule_helper(sepol_handle_t * handle, } avdatump = &node->datum; - if (specified & AVRULE_TRANSITION) { - avdatump->data = remapped_data; - } else if (specified & AVRULE_MEMBER) { - avdatump->data = remapped_data; - } else if (specified & AVRULE_CHANGE) { - avdatump->data = remapped_data; - } else { - assert(0); /* should never occur */ - } + avdatump->data = remapped_data; cur = cur->next; }