From patchwork Fri May 11 00:53:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Casey Schaufler X-Patchwork-Id: 10394421 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 EAF0460170 for ; Fri, 11 May 2018 14:40:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DC95628AC1 for ; Fri, 11 May 2018 14:40:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D0FCD28EA4; Fri, 11 May 2018 14:40: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=-4.4 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,NO_RDNS_DOTCOM_HELO,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from ucol19pa09.eemsg.mail.mil (ucol19pa09.eemsg.mail.mil [214.24.24.82]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A80E628AC1 for ; Fri, 11 May 2018 14:40:48 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.49,389,1520899200"; d="scan'208";a="695327733" Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.3]) by ucol19pa09.eemsg.mail.mil with ESMTP; 11 May 2018 14:40:48 +0000 X-IronPort-AV: E=Sophos;i="5.49,389,1520899200"; d="scan'208";a="13190314" IronPort-PHdr: =?us-ascii?q?9a23=3AIajWIBEfS614RDQmQbxV+p1GYnF86YWxBRYc79?= =?us-ascii?q?8ds5kLTJ79p8+8bnLW6fgltlLVR4KTs6sC17KN9fi4EUU7or+5+EgYd5JNUx?= =?us-ascii?q?JXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQ?= =?us-ascii?q?viPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCazbL9oMBm6sRjau9ULj4dlNqs/0A?= =?us-ascii?q?bCrGFSe+RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG?= =?us-ascii?q?81/9HktQPCTQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUj?= =?us-ascii?q?m58axlVAHnhzsGNz4h8WHYlMpwjL5AoBm8oxBz2pPYbJ2JOPZ7eK7Sc8kaRW?= =?us-ascii?q?5cVchPUSJPDJ63Y48WA+YcIepUqo/wqFwMohSkBQmsA+TvxiZRinLq06A30v?= =?us-ascii?q?ktHRja0AA9AtkCtGrYoMnwOKoUTOu7zrTHzS/bYv1I1zfz6IvGfB4vrv6DX7?= =?us-ascii?q?1/bcXfx1Q3Fw7Hk1mdp5LqPyiO2+QRsWWW9fZsWf6hhmMlrQx6vzihxt0rio?= =?us-ascii?q?nMno8Y1ErL9T5nz4c1ONa2VVJ0Yd6+H5tNuSGaM5V5Qtk/SGxvpCk10KYGto?= =?us-ascii?q?C7fSUR05Qo2x7fZOaac4iG5hLsSvyRLS5ki31/Yr6wmxGy8U25x+D6S8K600?= =?us-ascii?q?5KozJYntTDuX0BzRze5tWdRvdj8UqtxyyD2x3L5uxFI004j7fXJp8lz7Iql5?= =?us-ascii?q?cesV7PEjHolEj5iqKda18q9fKy6+v9Z7XrvpqcN4hphQ7gKqkugcm/AfggMg?= =?us-ascii?q?gJQmib5fyw1L398k39R7VHluE2nbPDsJDbOMQbvbS1AxNV04k/6xa/CC2q0N?= =?us-ascii?q?IEknkcMF1JYheHj4ntO13WIfD4C+mwg0i0nTt2yP3LMaftD5XQInTZjrvscq?= =?us-ascii?q?hx51RBxAYryNBQ/ZNUCrUPIPLpXU/xscTVDgQnPAywwubnDsh914wHVW2UBa?= =?us-ascii?q?+ZLaXSvkOW6eI0OOSMeI8Utyr9K/gi/fLui2Q5lkUHcamm2psXdmi0Hu56LE?= =?us-ascii?q?WBfXrsntABHH8Ivgo5SuzlkkGCUT5JaHa0RK885DY7CISjDYjZXYCtnKKO3D?= =?us-ascii?q?2gHpFMYWBGEF+MG2/yd4qYQ/cMdD6SIsh5nzwGV7iuUZMu1RK1tA/9zbpnL/?= =?us-ascii?q?TU9zYWtZLnydh06PbclQw09TxoEsSRyWaNT3t7nmkQXT85wLh/oVBhyleEya?= =?us-ascii?q?V5jf1YFdhW5/xXSAc3LpDcwPJnBND1QALOZM+JSEyhQtWkHz4+Us4xz8UJY0?= =?us-ascii?q?ZnFNWolgrD0DayA78Ji7yLA4Q5/b/A0Hj0IMZ9zWrG2LQ6glk4XMRPL2ymh6?= =?us-ascii?q?949wjVHYLJlVuWl7qyf6QGwCHN7HuDzXaJvExATQFwTb/KXWoEa0TKqtT541?= =?us-ascii?q?/NQKW1CbQ7KAdBz9CNKrdSYN3zkVpGXOvjOMjZY2+pm2axBBGIxrWXYYrvf2?= =?us-ascii?q?URxSTdCE4enwAV53mGLws+Bia/o23AFjBuE0zgY1/0++lktHy7VlM0zx2Nb0?= =?us-ascii?q?B52bq14AQahfqARPMSxbIJoyIhqy11HFqkxNLXBcGAqxBmfKVGbtM3+E1H2n?= =?us-ascii?q?7BtwxhIpygKLhvhl0EfAR0uEPuyg56CoZansgpq3Mq0RB+KaWC0FNObzmYx4?= =?us-ascii?q?z/OqXLKmnu+xCic7TZ1UzE0NaX5KgP8u81pE//swGsDEYi9G9n09ZN2XuG+p?= =?us-ascii?q?rKFBYSUY72Uksv7Rh1uqzVbzIy54PR2nxgK6+0vSHe29gxHusq1g6gf8tDMK?= =?us-ascii?q?ODDALyCMMaB9KpKOwxh1ikdQkEPOZV9K86OsOpbf2G1LStPOl+gDKslX5H75?= =?us-ascii?q?xl0kKQ6yp8TfbF3pgfzPGcwguISS38jEy6v8Dph49EfyodHne6yST+A45RfK?= =?us-ascii?q?Jyd54RCWiyO8232sl+h5n1Vn5e9V6jA1cG19GyeReJdVPywxdQ1UMNrXyggy?= =?us-ascii?q?u4wCR+kys1oaqHwCzO3+PieQIZOm5KWGZikVDsIZKug98GXEioaA4plBS+6E?= =?us-ascii?q?b+xqhbor5wL3PUQUtSeCj2NW5iWLOqtrWee85P9I8osSJPXeS4YFCaUaL9rw?= =?us-ascii?q?IB0yz9G2texTY7dyylu5jihBx6kGOdLHByrHXFYsF83xHf68LARfRJxDoJWD?= =?us-ascii?q?F4iSXLBli7J9Sp59KUl5PHsu+gTWKuSppTcCfwwIObqSu0+XZqDQe4n/Cpld?= =?us-ascii?q?3tCRI63jPj19l2SSXIqw7xYor12KS8KuJqZUpoC0H668phHIFxjJcwiIsX2X?= =?us-ascii?q?gAiZWf5WAHnnvrMdVHxaL+a2IARSYRzN7I5AjqxlVjIWiPx4LlSHqd2NBsZ8?= =?us-ascii?q?ShYmwIwCI99NpGCLyT7LxZhyt6vkS3rQzWYfhnkTcS1+Ei6HgEjOEVoAAt1D?= =?us-ascii?q?mSAqgOHUlEOizhjwqI79ajo6hMemavd6W/1EpkkdCnEr6CvhlWWGzldZc6AS?= =?us-ascii?q?9w8sJ/PUrU0HLp94HkfMLdYs4Sth2IkxbMluZVJ4g3lvYQgipnI239t2U/y+?= =?us-ascii?q?EnlRxuwY26vI+fJmVj5q25BAJYNjrwZ84I9DHik7tRnsGM34+1BpVhADILXJ?= =?us-ascii?q?n2Qv20DDIer/PnNxyBEDcksHeUBaLfHROD6Edht3/PFoqkN3WTJHYH0dViWA?= =?us-ascii?q?OSK1ZEjQASQjo6goU5GRywy8z5bkh1/DYR6UDkqhFU0OJnKwH/UnvDpAevcj?= =?us-ascii?q?o0RoKfIwRL4QFZ/UjVN9Ce7uVoHyxD5JKusAmNJnacZwRSAmEDQlaECEz7Pr?= =?us-ascii?q?my+dnA9PCVBuykL/TUebWOsfdTV/mJxZK1yYtm4ziMNsSJPnZ4Cf00xktDUm?= =?us-ascii?q?p9G8jDnDUPUSMXnTrXb8GHvBe85jF3rsen/fTzRg3g/pWAC71TMdVz/BC7mq?= =?us-ascii?q?aDOPCOiylnMzpY0YkMxXDQwrgFwFESkz1udyWqEbkYriHCV6XcmqtWDx4Ady?= =?us-ascii?q?NzL9FE77ki0QZRI8Lbkc361rp5jv4zFldEWkfsld2pZMwQPmG9L0nLBUiRO7?= =?us-ascii?q?SaPj3LxMf3bbm7Sb1Kg+VerwewtiqDE0//IjSDkCHkWAuuMeFDiyGbOgdTt5?= =?us-ascii?q?yjfRl2CGjsVtTmZge8MN9tgj082ac0iW/SNW4ALTh8dFtAoaef7SxCnPVwBX?= =?us-ascii?q?dM7n19LeaanSaZ6vPXKpcSsfRwBSR1mPhW4HMgy7ta9CtEXuB6mDPOrt5ypF?= =?us-ascii?q?GrivWPyj1iUBZUsDZLg4OKsltkOarC7JlAXmjL/BEW4GqMDBQKosdqBcf0u6?= =?us-ascii?q?BM0NTPkrz8KCta+dLO4cQcH9TUKN6AMHc5MxrpGD7VDBMCTT6vNGHfm1JSne?= =?us-ascii?q?qX9n2Uspg6sIbjlIAJSr9BW1w/DukaBVh9HNwePJd3WSspkb2bjc4M+3Wztx?= =?us-ascii?q?zRRMJUvpDJSP2SHenvKDaejblBeRQE27X4IpoPNofjwUxtdkF6nJjWG0rXRd?= =?us-ascii?q?1CvDVhYRUuoEVM63hzVXUz1Fj/agOs+38TDfq0kQQqhQRge+gt8y3s41gvLF?= =?us-ascii?q?rQuCQwiFUxmcnigT2Jdj7+Mr2/XYVNBir3sEgxKY/7TBxzbQ2pnkxkNS3IR7?= =?us-ascii?q?RPgLt8bWprkhPTuYNTGf5ASq1JeAUQyu+MZ/o2y1tcsDmoxU9c6OTeCJtijh?= =?us-ascii?q?YlcZmir3JYwQJsct40KbbWJKVX0lhanriOsTOw1uAt3A8eIF4A/36VeC4Ovk?= =?us-ascii?q?wHK6cpJy6p/uF38wONhSFDeG8WW/otuPJq+Vs3O/6cwCL4z75DNkexOvSCIK?= =?us-ascii?q?yDpWjAlNOHQkgr20wSjUlF57920Mk4c0WKS08v0aGRFxUVNcvCMw1VadRd9G?= =?us-ascii?q?TLdyaUrerN2Y51P5m6Fu3wSe+Os7wUjVyiHAcoGIQB9csBHp+x0E3CKsfnNr?= =?us-ascii?q?EFww035Av3PFWFEOhJeBWTnTccvc6/yJ533Y9AJjASGmhyLSK35rPLqQAwm/?= =?us-ascii?q?qDQM06YnEEUYsYLng2QtG1mzZFv3RcCzm6yv4ZyAmH7z/7uiTQDDn9YsF+a/?= =?us-ascii?q?eVZRJjEsq59S8586eolV7d6o/eKH3iNdR+pt/P7vsXqIyDC/NVUbZyrV/Tm4?= =?us-ascii?q?xYRnysVG7PF8S6KoPrZIktd9P0DG+2UlKiiz4vScf+IsqtJLCSgQ70XYZUrJ?= =?us-ascii?q?Wb3Dc7OMCmCD4eHQx9qPse66JiewIDeYE7bgTytwU+LaC/Jx2Y0tq2SWa3NT?= =?us-ascii?q?RWV+Vfzfm9Z7FPwCosc+66yH8kTp4kyum66lMCS48RgRHf3/mjYZNSUS/pGn?= =?us-ascii?q?xSYw/PvzY2l3B9NuYuxecy2AnIsV8dMz+XdOxpb2hEv8okC12LPHt4EHY1SV?= =?us-ascii?q?iHgIXf5Q6s2qwd8DFGn9ZIy+FFtmbxvoPHajK2RKOrsYnVszYnbdU+ua1+K5?= =?us-ascii?q?bjIsydu57FgjzfVoPfshObXy6+FvpanNdQICZZQPlHmWElJcIGtpBb6Uo0TM?= =?us-ascii?q?s+IaJACLU0rLCwdTVkFTISzTMeV46Y0j0OmPuz27vblheVcZQtKh8EvY5Dgt?= =?us-ascii?q?QDTSF5fDkSpKi5V4XZj2WEUHQEIB8P7QRQ4wINjopwcfr/4IrLUpBM1z9Wo/?= =?us-ascii?q?R7UibQGJhn7V37RX2SgVj/VfWujvep0RhUzP3yztkRQAR/BlRFx+ZKiksoL6?= =?us-ascii?q?l6JLMKvo7XtD+Eb0D6sXnsyOunJVlR1dbbe0f+DIXbqWr2Sjcc9mEMRY9T1H?= =?us-ascii?q?HfEowfkwt/aKY3ulpMJJ6pekPg6Dw43YRoH6K1Vcezx1k7q3YGQj2lE9tFC+?= =?us-ascii?q?59t1LWVydpY5exqJXqI59SWHNf+IWBq1dFl0VgKzK5yZ1ZK8xW/j4AQD1Pri?= =?us-ascii?q?6HsNu0VsJDxdd8D4UQLddnp3f9BKRENYCRo3IsoLzg0HvZ9C0nvVin2jqzA7?= =?us-ascii?q?e4QPxd/2IAAAUlPWOeqlMgD+E06Gfd7kjNskxo/+dcHrWPj0JxryhmE59TGD?= =?us-ascii?q?lJzm6qL05vTHZYrupWMqLVfNJAQ/Mqfx+gJwQ+FeI630yO5Ux0gWr2bDFztg?= =?us-ascii?q?RA/yDQRBU7VS4QgrjxgzIesd2nNSUcS51WcTUrdz3FJB6DmSBLoBZfbFlnVI?= =?us-ascii?q?sXAtlZ570W35ZY88TZREmwLiEFWQBtORgj0fpDj0JDtluXeTzFBwqyafnPqg?= =?us-ascii?q?F3fduWrMOxNvT24hpIioP9v+Ak7KgDQ3qmmROzTtzAs4D8scCFuVWUeKf+Le?= =?us-ascii?q?K8fWfLTCLQghCombckE57K8jDLMApAN5l102crYYT6BG7QOhRGOrgbKFZFWq?= =?us-ascii?q?B8ddVGuPpVZ8t+dKYO469tCQqNRgnzF4y3sPlGMlHTSCzCLyWb7OOwv5/c4K?= =?us-ascii?q?fASejkesyM3WzIQ7x2Ppd97Tn0Bavq3ZVZ+krs1fdn7ll6RkTeMyCdsNThIR?= =?us-ascii?q?sG5Mu4eUv4uZ0pBjfWD41ukHf2w0FAas4XQzGr8JsEyZNW8nDwSfli3kj0qu?= =?us-ascii?q?1S+KFu6ZMr7LBx1ce0OaDSJOxYsUB9BBiUCB9q9pIwD2dhXG1RfvUeKPHKfa?= =?us-ascii?q?Qel8zurf74F7AP4h2P5+NZccfHJ13GmsSnDDGcTQdJnAYHqT4fNAec1viFm6?= =?us-ascii?q?FuScm/vuj5xlgt40WiIR4a0bBt/5mL9rCPpO/NYBvb1aIEVbTyRsPvsrQsvF?= =?us-ascii?q?uf5fsllLESfWx1ZxeoEPMHWs4cwWfgyrsqzTk3HsPGEL/h9+RPV3UjnjLvg5?= =?us-ascii?q?p9BUkZGusIHbqX+oRThns3lPbdNtIIaaBChmaOFRm/H78Z1XGr6jWYIG95gh?= =?us-ascii?q?HPyR78W2Wz40HqrSVgWyvD08/jklZJVrmwHUpSWzGpOUp4vT6UMgrnqsf4ua?= =?us-ascii?q?Mv7E4sKmzkrtWNlGm/N7xLA83zPtucITM7pFgPlp0+WsSv2ZwHGdq6ONoR8n?= =?us-ascii?q?B+bv7F5mOujSBAo7lIh5Df4sGT9fXbB3+ggLOGq7+V3jBX1mA4vU0j6tCnLv?= =?us-ascii?q?zO5tyLTO6y2GkNVCp/oBXOXwKrpbPHtVwUPlaL0EjTkowQIt5ZxWU41l3h5O?= =?us-ascii?q?U7W90z9R5eF4jaaPMApDDzJCP0zkyCY9IzTSSRzzxXEU/rHlZiBag8wmXwvN?= =?us-ascii?q?jTmnvK/F0oXIZwfVT9hRNrF4U4NV4t6F8PzyobCwcNdQyUDLGmBETiN4sEVl?= =?us-ascii?q?EPaQ+Z07i+e6c321Bzw7y06e/Ld+N8G7YCNvZTjw6JhlhbGYgasa4AT7JmfV?= =?us-ascii?q?9S6qrXqhLlC4j9UPjsjWAwOuGtQsBG7cAZsGMv4gmlSBq695hD87YbhYuMdq?= =?us-ascii?q?5FfZjDosB84F165T4UbCBNhgZwjw+hW+AGuO/j+sTbsIav6uu2W6YiWeMX9w?= =?us-ascii?q?QzB2R5iJfwm04sodXW1+daV43Uhp/y8ARTLH6QuIfVyQNwKewQJIK3ZLxg7W?= =?us-ascii?q?kIJzACJ3ISOtqbc+Uz4y13PzrP/FFNHsQMZdccPMrMhw9UkFHpV69P+crbAF?= =?us-ascii?q?OYDJ1zd88w5Wrt1D816Yc8Uvrn6DKuIJDf6FdNP+9MjCpyj9/CoekVzuDUCC?= =?us-ascii?q?cJ/XmYZR91wjmBy5mWEfrw+/uDyM3MXVMcAiE2S5tdJCaF+QG/Seq6iI7pUh?= =?us-ascii?q?iN5sHuj5wwckOQRnqsnKUKqatMHutAhT/93jdADIz1gOiVs9W04mtNqlJHCJ?= =?us-ascii?q?pz7QHCGKhHPJV7PhT4ls+xSkdgBiv/fNzUeQcvueqXwOcM+OZ+N0rlaI8FIx?= =?us-ascii?q?IE1aj16X5IQQtvUrL2uEiWXf4Jbtt8VPzEtmxV6Z5nK6IXPViduoblrjFTpV?= =?us-ascii?q?AyHQ8mdb4wrjtBdkXUmw1VQan0sqYaigQASd55pVNMGWWoNWI8+TXHW6pVjK?= =?us-ascii?q?2KBf0b6DqTSLIBU1lyPiN4XRy1xI1ke6G1kvBfrmNGgiR9reAl0zxiQxu9tz?= =?us-ascii?q?Pjp6YJ2T8747G4szMBuX1ZQemElSfHF0lDxuwQjagAE3bi9UC8YH4bYYv34b?= =?us-ascii?q?lnJsfg9Y467nQ9exojfCoGXeK+BCH2la+IBJKAsM5Ejh6XpMrOdaOzLTQVNr?= =?us-ascii?q?kl0h3sWX590hTFkRZz9GsLRSmg7MM6JIqjJMkp3C2oGXLUdFwU+KNGrNPxtU?= =?us-ascii?q?IXTOsxcV5h2GJj0sydSS0XSs3PHGI1jgY/ZGVBd5JD7gQaGLc0jTaSualG5R?= =?us-ascii?q?oUYDbSEoSq4IXQmt3I2XYlR9dw2m3WvrGFho8t0HB9ldN78CqOuHUKd+PGSM?= =?us-ascii?q?JtA3nz1oJayePgffWttv4IRJFhyLS7X/8IKtOj9neu2JV2Rk+lwawTHlShMO?= =?us-ascii?q?8Zx7fUTzmqRHadWeSKb2iMhSg2PlT15RmyIV09cN1KoFMlMuvemp5ckBXsUb?= =?us-ascii?q?RwRiqOvlLb1GgjPvkBdwIquYeoZxAKTPQPaOeCP+QuxuMxCEcUZX/TASR2E/?= =?us-ascii?q?O2sUKqnIVjP3Vg4EP6Yfni8wz/NNuSGwIEEZLBrpNq+Py1XGSBOXh6wB11Jk?= =?us-ascii?q?l0+P/VF04tue9Eb5aRgd/Qisx+0eEfa/htMSw9utgUmo9494mU0cGKfg/Vzp?= =?us-ascii?q?bzI9HVv/eZD+fYz0QwdWFQSqAZbh/t54UmIt45XKXeHblDshQfAqg1W4csN3?= =?us-ascii?q?r39KFoLANzdRPRZLu0gsn2vO6LYIVbp2PO5FIqMCjcowEDyuCzTQFjdJCqiX?= =?us-ascii?q?DyL4wxSz9CtNBtFAVpHJFOG8IBqAqnBYSYmKelhN+tqAtGvLouio+4XvTL0s?= =?us-ascii?q?mpmp58VIVA5FCaeTPWCLRvj2x7gemoxPTNyJ/8DYXlY9xSEKBfYUrgIuvCH4?= =?us-ascii?q?OiOneNN9j6dkpu7bGRyvR6Xw+XaSS/WLCJ4mnsDPx55Q0ezYticaKH1DUw65?= =?us-ascii?q?nD0cb2ImRcoT2u63WOMc0bpGfWCPTeUhQccv+M9GJoDOVDdofv3PsfOtwlht?= =?us-ascii?q?6H6k986yoUlIO+DuCFr0nRygovbp/fLU30yw4lSIIKJ1K5KkJqjmjH/DCVS0?= =?us-ascii?q?95B+OHbMVsm92IFQfF40hqhXprPjcHHXDnD5/FAk0y8OH7aAyR/x9QFP4Hnv?= =?us-ascii?q?WrYghg7+u1U+Y+ft1nnuWs/JcAkd9vMCzJDJxYOCHWar1xPjNXFejJjFMhZB?= =?us-ascii?q?kCsrM8XsE+Yp3YZAskPUqbgQj1ygiKhU75esen06GKCC0W6HJCzq/Alz9WqF?= =?us-ascii?q?/98cqUntb+V/j5ZZf6VbaGKCcjWSybQ3ExHFyv9FOMur8Au+SVZ3wWoU0Oa2?= =?us-ascii?q?SUBUgRvvYr5frZC2LI0chkZocLn7jOWSX3Ujd5j4I0DyNGtAaLWfVVRifMaH?= =?us-ascii?q?q0q2NHtR3qHfRM9G/ra7CCjv5eUvcbE6NXef2QXtXcdOobLD5unTIcbrXvN+?= =?us-ascii?q?bApqo0hwqbBVASFLPFoRjPFBTMEPWB2zLmW5kUtIEouy0uv8jdhTJzD7+Xbu?= =?us-ascii?q?SCpDOqq9+ghX7H/+DTU3IiJUk8geZEBWiFk3wiYG0HCtRAoEj2WebAfEdD0n?= =?us-ascii?q?s1lPhjkwEBYgV9U3BikzVWkf+xF9cfSAs8nWquR/pAZ1dyAQ=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2B6BwDMqvVa/wHyM5BcGgEBAQEBAgEBAQEIAQEBAYNAA?= =?us-ascii?q?4FcKINyiGKMEYFYIYEPgUCTZioTAYUHgkMhOBQBAgEBAQEBAQIBaxwMgjUkg?= =?us-ascii?q?k8BAwMBAiAEGQEBOAIDCQEBGwMBAgMCIgQCAgMBQQoIBgEMBgIBAQGDHoFpA?= =?us-ascii?q?xUDoUeKGG2BaTOCbwEBBYECAQFegjQDgTWCQAgXcoR4giSCE4EPIwyCLoghg?= =?us-ascii?q?lSHOoReY4s4CY5LZIcThHiLNYZKMyGBUk0jFYJ+ghQMF4NFihwBVU96AQGQF?= =?us-ascii?q?QEB?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 11 May 2018 14:40:47 +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 w4BEek1C003456; Fri, 11 May 2018 10:40:46 -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 w4B0re2X007141 for ; Thu, 10 May 2018 20:53:40 -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 w4B0rlt2001612 for ; Thu, 10 May 2018 20:53:47 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1B3AwCA6PRalywWGNZcHAEBAQQBAQoBA?= =?us-ascii?q?YNAgV8og3GIYIwQgVghgQ+BQJNrhHcCRYI7ITgUAQIBAQEBAQECFAEBAQEBBhg?= =?us-ascii?q?GS4U0AQMDIwQZAQE4DxwDAQIDAiYCAkUKCAYBDAYCAQGDH4FpAxUDoGiKGG2Ba?= =?us-ascii?q?TOCbwEBBYECAQFegjoDgTWCQAgXcoR4giSCE4EPIwyCLoghglSHOIReY4s2CY5?= =?us-ascii?q?JZIcShHWCK4kHhkkzgXNNIxWCfoIUDA4Jg0WKHAFVT5A7AQE?= X-IPAS-Result: =?us-ascii?q?A1B3AwCA6PRalywWGNZcHAEBAQQBAQoBAYNAgV8og3GIYIw?= =?us-ascii?q?QgVghgQ+BQJNrhHcCRYI7ITgUAQIBAQEBAQECFAEBAQEBBhgGS4U0AQMDIwQZA?= =?us-ascii?q?QE4DxwDAQIDAiYCAkUKCAYBDAYCAQGDH4FpAxUDoGiKGG2BaTOCbwEBBYECAQF?= =?us-ascii?q?egjoDgTWCQAgXcoR4giSCE4EPIwyCLoghglSHOIReY4s2CY5JZIcShHWCK4kHh?= =?us-ascii?q?kkzgXNNIxWCfoIUDA4Jg0WKHAFVT5A7AQE?= X-IronPort-AV: E=Sophos;i="5.49,387,1520913600"; d="scan'208";a="274393" Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.35]) by goalie.tycho.ncsc.mil with ESMTP; 10 May 2018 20:53:47 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AVqaTIBQxCFEmOmRW92FQGsQHc9psv+yvbD5Q0Y?= =?us-ascii?q?Iujvd0So/mwa67ZhWDt8tkgFKBZ4jH8fUM07OQ7/i7HzRYqb+681k6OKRWUB?= =?us-ascii?q?EEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAA?= =?us-ascii?q?jwOhRoLerpBIHSk9631+ev8JHPfglEnjWwba98IRmssQndqtQdjJd/JKo21h?= =?us-ascii?q?bHuGZDdf5MxWNvK1KTnhL86dm18ZV+7SleuO8v+tBZX6nicKs2UbJXDDI9M2?= =?us-ascii?q?Ao/8LrrgXMTRGO5nQHTGoblAdDDhXf4xH7WpfxtTb6tvZ41SKHM8D6Uaw4VD?= =?us-ascii?q?K/5KpwVhTmlDkIOCI48GHPi8x/kqRboA66pxdix4LYeZyZOOZicq/Ye94VQm?= =?us-ascii?q?hOUdxRVyxGBYOwdpIDAvYPMOtZsoXxvkcCoQajDgWoGu/j1jpEi3nr1qM4zu?= =?us-ascii?q?shCxnL0hE+EdIAsHrar9v7O6kdXu+30KbGwi7Ob+9U1Drn9ITEbh4srPOKUL?= =?us-ascii?q?ltccTR004vFwbdg1iOs4PlJC2a1+QQuGaG8+VgVfigi3MpqwF1vDev3Nonh4?= =?us-ascii?q?7ViY0P0VDL6yV4zZ0uJdKkSE50e8OkEJVUty6ELYt6W98tTHtytCkmzb0GvI?= =?us-ascii?q?e2cS4Xw5ok3x7Sc+KLf5WH7x75SuqcLi10iGx7dL6liBu//lCsx+z+W8WuzV?= =?us-ascii?q?pHry5InsPNu30NzRDf9NaLR/R780y8wziAzRrT5ftBIU0slarUNZohwrkom5?= =?us-ascii?q?UdrErOAjH4lUvogaGMakgo5uml5/75bbr4o5+cLIB0hhv7Mqs0m8y/Bf40Mg?= =?us-ascii?q?0PX2if4ei81bvj8lPlQLhSkPE6j6bUvIrEKckUvKK1HRFZ3pws5huwFzum1c?= =?us-ascii?q?4XnXgDLFJLYhKHiI3pNknSL//iFvewnVStnSxwx//aPr3uGIjNLnbHkLj/Z7?= =?us-ascii?q?Zx8lJTxxApwd9D4JJUD6kNIOjvVU/pqNzYEhg5PhSvw+n5DNV914UeWX+AA6?= =?us-ascii?q?KCLKPTsUOH5uIoI+WWYo8VoyzyJ+Iq5/7pk39q0WMaKI2S+NNDbHG+A+QjOE?= =?us-ascii?q?iSfGDtnsZEFGAGow4zZPLlhUfEUjNJYXu2GaUm6Wd/QKaFKaKLEoSshqGRmS?= =?us-ascii?q?S2BJtbYkhYBV2WV3TlbYOJX7ELci3EZodZmyEAHZ2mTJUsnUW2vRL+46JuM+?= =?us-ascii?q?6R/yofr5+l399wsambrg0/7Tx5CYym1miJS2xl1jcTSyQewLF0oUs7zEyKl6?= =?us-ascii?q?d/naocXed+r9dIVBoqfcrHwuh7Dc3ich7QddeODlC9S5OpBi9nCpp7+PonSG?= =?us-ascii?q?U4F9S5hQ3YxAKuAqQJjPrTXdoz6K2WlyzKAu9W6DPK1bIqkkI9as9OLnG9wP?= =?us-ascii?q?YmsQ/JCNiN22eel6DiV6Mc1SjW+WHLmWiJvEceUglwWKPeUHY3bULQqtL47U?= =?us-ascii?q?rGCbSpDOJjeihMxNXKAaxNaZW9jlhLX/zkP9f2aGKrnGKxGBPOwamDOs6iR2?= =?us-ascii?q?gBxzjaQGgNlQwatSKeOA4xGyan5mHTFjpjEXruJkfr7+Q4s3q4U1U9iQeHKU?= =?us-ascii?q?95gf792BcQiOfUbvQJxLMf8HMjrjJuBlem99TfDteB4Q17c/MPT8k65QJs3H?= =?us-ascii?q?nUpkRGNZypMq5mi0RWJw9+pE7//w58Coxdn8wntjYhxUx5LqfOgwAJTC+RwZ?= =?us-ascii?q?2lYu6fEWL15h36Lv6OgAuM2cuK+qoJ9PUzokniuwfsDEc57nF7yIYKgWaf65?= =?us-ascii?q?GTXRIbCc23X0sy7Bc8orjbZm845oeHnXFvMKzhqjbZwJppH+oqzB+8Ys1SeL?= =?us-ascii?q?2JDg78EsAWRoCuJeUmlkLvb0csLelS86lyNMSjeg=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0A1AwC66PRalywWGNZcHAEBAQQBAQo?= =?us-ascii?q?BAYNAgV8og3GIYIwQgVghgQ+BQJNrhHcCRYI7ITgUAQIBAQEBAQECARMBAQE?= =?us-ascii?q?BAQYYBksMgjUkgk8BAwMjBBkBATgPHAMBAgMCJgICRQoIBgEMBgIBAYMfgWk?= =?us-ascii?q?DFQOgaIoYbYFpM4JvAQEFgQIBAV6COgOBNYJACBdyhHiCJIITgQ8jDIIuiCG?= =?us-ascii?q?CVIc4hF5jizYJjklkhxKEdYIriQeGSTOBc00jFYJ+ghQMDgmDRYocAVVPkDs?= =?us-ascii?q?BAQ?= X-IPAS-Result: =?us-ascii?q?A0A1AwC66PRalywWGNZcHAEBAQQBAQoBAYNAgV8og3GIY?= =?us-ascii?q?IwQgVghgQ+BQJNrhHcCRYI7ITgUAQIBAQEBAQECARMBAQEBAQYYBksMgjUkg?= =?us-ascii?q?k8BAwMjBBkBATgPHAMBAgMCJgICRQoIBgEMBgIBAYMfgWkDFQOgaIoYbYFpM?= =?us-ascii?q?4JvAQEFgQIBAV6COgOBNYJACBdyhHiCJIITgQ8jDIIuiCGCVIc4hF5jizYJj?= =?us-ascii?q?klkhxKEdYIriQeGSTOBc00jFYJ+ghQMDgmDRYocAVVPkDsBAQ?= X-IronPort-AV: E=Sophos;i="5.49,387,1520899200"; d="scan'208";a="13170975" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from usat3cpa06.eemsg.mail.mil ([214.24.22.44]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 11 May 2018 00:53:46 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;b716f3f9-0366-48e8-a351-8a83d4421256 Authentication-Results: ukel19pa07.eemsg.mail.mil; dkim=pass (signature verified) header.i=@yahoo.com X-EEMSG-check-008: 317175376|UKEL19PA07_EEMSG_MP4.csd.disa.mil X-EEMSG-SBRS: 3.5 X-EEMSG-ORIG-IP: 66.163.185.40 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BCAgAH6PRahyi5o0JcHAEBAQQBAQoBAYUfKINxiGCNaCGBD4FAk2uEdwJFgjshOBQBAgEBAQEBAQIUAQEBCgsJCCgjDIUoAQMDIwQZAQE4DxwDAQIDAiYCAkUKCAYBDAYCAQGDH4FpAxWgcYoYbYFpM4JvAQEFgQIBAV6COgOBNYJACBdyhHiEN4EPIwyCLoghglSHOIReY4s2CY5JZIcShHWLMoZJM4FzTSMVgn6CFAwOCYNFihwBVR8wkDsBAQ X-IPAS-Result: A0BCAgAH6PRahyi5o0JcHAEBAQQBAQoBAYUfKINxiGCNaCGBD4FAk2uEdwJFgjshOBQBAgEBAQEBAQIUAQEBCgsJCCgjDIUoAQMDIwQZAQE4DxwDAQIDAiYCAkUKCAYBDAYCAQGDH4FpAxWgcYoYbYFpM4JvAQEFgQIBAV6COgOBNYJACBdyhHiEN4EPIwyCLoghglSHOIReY4s2CY5JZIcShHWLMoZJM4FzTSMVgn6CFAwOCYNFihwBVR8wkDsBAQ Received: from sonic313-17.consmr.mail.ne1.yahoo.com ([66.163.185.40]) by ukel19pa07.eemsg.mail.mil with ESMTP; 11 May 2018 00:53:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1526000022; bh=kB2diq3Sd2aLVzxrr2Tb60uPUTQr7oUKtJJhcEECg44=; h=Subject:To:References:From:Date:In-Reply-To:From:Subject; b=mvf5UdrEQCRCfAIhrhJybBcKAiR9kJAuVeoAsWhJi5vT93guUhEksRwV8Ymq4sXdpPjfDf+7gWAaCOFEQ2Aogd6c98ngtDPSu/N7qEws2V13fBPHXICsytzzhPq87M+xfQmelNma0boha6Jyg/rPpY8XUxsG0BvcZP1ew3xmUV3w8zVw6B6ORLfsOvzLiDS7qDcdms+sCzvZm1khBUNXuFtYzLNCet9QlLRfJiJt65l3vDNKEvdYncK12jiC+UIlIo/22XQjzqBPpvqcRB0U/4pPsMCI5nXuwPGBdPW5rupyBwOfm04pyAZZsBX+8BcRIPXmRMtyNufbG9XrrEq9Pw== X-YMail-OSG: DFIH.t0VM1lYwf6hszn3pMajNUzfwxfPFCcMg7OytOdfhdrTVf8O_7yKes.auYA bFA9m7Hrmx9AM5phie9w1pwU7D2_z0oWsgryQM0JMLxWMCKHp_LhMZfcxRmfyaAJ8XFu1K4IZdbr HB80vt_ZRijIx.FsgmFn0fxO3BmTcTtD26kblftx7jQ2MZzujkuAK9Py0whM3hZtNQUNziAZHjJJ f2scNMv5C2mxve8U6dvqqVuubTpmMcO6GO0vAmlYqsLDvoCDtVp.Cs5WbyCTmLFt0dXn6uT2Xflv dJXO.MdrBTsxpmKzgzeNhaO25wRpbZ568_aN7gh6g_dkFkUIUK1BI3N_dhEUHhoC7dc7pRIQEWEA 5K.W5Wua1Z5VsNVnGScDwwapYJMgO.GnGP.mVpqfeu06sqa58R_18603EvPqyEykS2.BqtJcspO6 heK1Wd.fHJXl0plqp2JUd2mIKN01Kwc1NhGL2NRGZ8Yn.aOqXAaBtI6dPUY1rHsARUk44nzcYQCp TCuGzaZoNamaTGfoozDjqCBQtu4Oh.km55KpIJ8OgG551FeQlwPBu5oW2T_DChu0s2vmxscpNQmX tQz8R4iF_BCkMf53mm7bAxLlSwBVPsm_9ckgWhPnZlZRkcEalrssCnD_BF5vifDffm.s6rp6IiUp jzVk- Received: from sonic.gate.mail.ne1.yahoo.com by sonic313.consmr.mail.ne1.yahoo.com with HTTP; Fri, 11 May 2018 00:53:42 +0000 Received: from c-67-169-65-224.hsd1.ca.comcast.net (EHLO [192.168.0.105]) ([67.169.65.224]) by smtp410.mail.ne1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID bb726e9272ab143bd6b11d40bcd54be4; Fri, 11 May 2018 00:53:39 +0000 (UTC) To: LSM , LKLM , Paul Moore , Stephen Smalley , SE Linux , "SMACK-discuss@lists.01.org" , John Johansen , Kees Cook , Tetsuo Handa , James Morris References: <7e8702ce-2598-e0a3-31a2-bc29157fb73d@schaufler-ca.com> X-EEMSG-check-009: 444-444 From: Casey Schaufler Message-ID: <81e6a64e-9040-dc89-5ac4-7984197d5ab1@schaufler-ca.com> Date: Thu, 10 May 2018 17:53:36 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <7e8702ce-2598-e0a3-31a2-bc29157fb73d@schaufler-ca.com> Content-Language: en-US X-Mailman-Approved-At: Fri, 11 May 2018 10:37:08 -0400 Subject: [PATCH 09/23] Smack: Abstract use of inode security blob X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 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 From: Casey Schaufler Date: Thu, 10 May 2018 14:19:09 -0700 Subject: [PATCH 09/23] Smack: Abstract use of inode security blob Don't use the inode->i_security pointer directly. Provide a helper function that provides the security blob pointer. Signed-off-by: Casey Schaufler --- security/smack/smack.h | 9 +++++++-- security/smack/smack_lsm.c | 34 +++++++++++++++++----------------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/security/smack/smack.h b/security/smack/smack.h index 043525a52e94..5da5bd1b9b47 100644 --- a/security/smack/smack.h +++ b/security/smack/smack.h @@ -367,12 +367,17 @@ static inline struct smack_known **smack_file(const struct file *file) return file->f_security; } +static inline struct inode_smack *smack_inode(const struct inode *inode) +{ + return inode->i_security; +} + /* * Is the directory transmuting? */ static inline int smk_inode_transmutable(const struct inode *isp) { - struct inode_smack *sip = isp->i_security; + struct inode_smack *sip = smack_inode(isp); return (sip->smk_flags & SMK_INODE_TRANSMUTE) != 0; } @@ -381,7 +386,7 @@ static inline int smk_inode_transmutable(const struct inode *isp) */ static inline struct smack_known *smk_of_inode(const struct inode *isp) { - struct inode_smack *sip = isp->i_security; + struct inode_smack *sip = smack_inode(isp); return sip->smk_inode; } diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index da22e31312b9..b9db97470e06 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c @@ -165,7 +165,7 @@ static int smk_bu_task(struct task_struct *otp, int mode, int rc) static int smk_bu_inode(struct inode *inode, int mode, int rc) { struct task_smack *tsp = smack_cred(current_cred()); - struct inode_smack *isp = inode->i_security; + struct inode_smack *isp = smack_inode(inode); char acc[SMK_NUM_ACCESS_TYPE + 1]; if (isp->smk_flags & SMK_INODE_IMPURE) @@ -197,7 +197,7 @@ static int smk_bu_file(struct file *file, int mode, int rc) struct task_smack *tsp = smack_cred(current_cred()); struct smack_known *sskp = tsp->smk_task; struct inode *inode = file_inode(file); - struct inode_smack *isp = inode->i_security; + struct inode_smack *isp = smack_inode(inode); char acc[SMK_NUM_ACCESS_TYPE + 1]; if (isp->smk_flags & SMK_INODE_IMPURE) @@ -227,7 +227,7 @@ static int smk_bu_credfile(const struct cred *cred, struct file *file, struct task_smack *tsp = smack_cred(cred); struct smack_known *sskp = tsp->smk_task; struct inode *inode = file_inode(file); - struct inode_smack *isp = inode->i_security; + struct inode_smack *isp = smack_inode(inode); char acc[SMK_NUM_ACCESS_TYPE + 1]; if (isp->smk_flags & SMK_INODE_IMPURE) @@ -823,7 +823,7 @@ static int smack_set_mnt_opts(struct super_block *sb, /* * Initialize the root inode. */ - isp = inode->i_security; + isp = smack_inode(inode); if (isp == NULL) { isp = new_inode_smack(sp->smk_root); if (isp == NULL) @@ -911,7 +911,7 @@ static int smack_bprm_set_creds(struct linux_binprm *bprm) if (bprm->called_set_creds) return 0; - isp = inode->i_security; + isp = smack_inode(inode); if (isp->smk_task == NULL || isp->smk_task == bsp->smk_task) return 0; @@ -991,7 +991,7 @@ static void smack_inode_free_rcu(struct rcu_head *head) */ static void smack_inode_free_security(struct inode *inode) { - struct inode_smack *issp = inode->i_security; + struct inode_smack *issp = smack_inode(inode); /* * The inode may still be referenced in a path walk and @@ -1019,7 +1019,7 @@ static int smack_inode_init_security(struct inode *inode, struct inode *dir, const struct qstr *qstr, const char **name, void **value, size_t *len) { - struct inode_smack *issp = inode->i_security; + struct inode_smack *issp = smack_inode(inode); struct smack_known *skp = smk_of_current(); struct smack_known *isp = smk_of_inode(inode); struct smack_known *dsp = smk_of_inode(dir); @@ -1357,7 +1357,7 @@ static void smack_inode_post_setxattr(struct dentry *dentry, const char *name, const void *value, size_t size, int flags) { struct smack_known *skp; - struct inode_smack *isp = d_backing_inode(dentry)->i_security; + struct inode_smack *isp = smack_inode(d_backing_inode(dentry)); if (strcmp(name, XATTR_NAME_SMACKTRANSMUTE) == 0) { isp->smk_flags |= SMK_INODE_TRANSMUTE; @@ -1438,7 +1438,7 @@ static int smack_inode_removexattr(struct dentry *dentry, const char *name) if (rc != 0) return rc; - isp = d_backing_inode(dentry)->i_security; + isp = smack_inode(d_backing_inode(dentry)); /* * Don't do anything special for these. * XATTR_NAME_SMACKIPIN @@ -1536,7 +1536,7 @@ static int smack_inode_listsecurity(struct inode *inode, char *buffer, */ static void smack_inode_getsecid(struct inode *inode, u32 *secid) { - struct inode_smack *isp = inode->i_security; + struct inode_smack *isp = smack_inode(inode); *secid = isp->smk_inode->smk_secid; } @@ -1713,7 +1713,7 @@ static int smack_mmap_file(struct file *file, if (unlikely(IS_PRIVATE(file_inode(file)))) return 0; - isp = file_inode(file)->i_security; + isp = smack_inode(file_inode(file)); if (isp->smk_mmap == NULL) return 0; sbsp = file_inode(file)->i_sb->s_security; @@ -2055,7 +2055,7 @@ static int smack_kernel_act_as(struct cred *new, u32 secid) static int smack_kernel_create_files_as(struct cred *new, struct inode *inode) { - struct inode_smack *isp = inode->i_security; + struct inode_smack *isp = smack_inode(inode); struct task_smack *tsp = smack_cred(new); tsp->smk_forked = isp->smk_inode; @@ -2255,7 +2255,7 @@ static int smack_task_kill(struct task_struct *p, struct siginfo *info, */ static void smack_task_to_inode(struct task_struct *p, struct inode *inode) { - struct inode_smack *isp = inode->i_security; + struct inode_smack *isp = smack_inode(inode); struct smack_known *skp = smk_of_task_struct(p); isp->smk_inode = skp; @@ -2717,7 +2717,7 @@ static int smack_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags) { struct smack_known *skp; - struct inode_smack *nsp = inode->i_security; + struct inode_smack *nsp = smack_inode(inode); struct socket_smack *ssp; struct socket *sock; int rc = 0; @@ -3304,7 +3304,7 @@ static void smack_d_instantiate(struct dentry *opt_dentry, struct inode *inode) if (inode == NULL) return; - isp = inode->i_security; + isp = smack_inode(inode); mutex_lock(&isp->smk_lock); /* @@ -4529,7 +4529,7 @@ static int smack_inode_copy_up(struct dentry *dentry, struct cred **new) /* * Get label from overlay inode and set it in create_sid */ - isp = d_inode(dentry->d_parent)->i_security; + isp = smack_inode(d_inode(dentry->d_parent)); skp = isp->smk_inode; tsp->smk_task = skp; *new = new_creds; @@ -4566,7 +4566,7 @@ static int smack_dentry_create_files_as(struct dentry *dentry, int mode, /* * the attribute of the containing directory */ - isp = d_inode(dentry->d_parent)->i_security; + isp = smack_inode(d_inode(dentry->d_parent)); if (isp->smk_flags & SMK_INODE_TRANSMUTE) { rcu_read_lock();