From patchwork Mon Jul 16 18:23:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Casey Schaufler X-Patchwork-Id: 10527553 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 0C4076037E for ; Mon, 16 Jul 2018 18:41:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EA11428A93 for ; Mon, 16 Jul 2018 18:41:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DD53528F67; Mon, 16 Jul 2018 18:41: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=-4.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, NO_RDNS_DOTCOM_HELO, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from upbd19pa10.eemsg.mail.mil (upbd19pa10.eemsg.mail.mil [214.24.27.85]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ADC9028A93 for ; Mon, 16 Jul 2018 18:41:48 +0000 (UTC) Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.3]) by upbd19pa10.eemsg.mail.mil with ESMTP; 16 Jul 2018 18:41:42 +0000 X-IronPort-AV: E=Sophos;i="5.51,362,1526342400"; d="scan'208";a="15798656" IronPort-PHdr: =?us-ascii?q?9a23=3A/aTlDhNmBFvS2N/NEvMl6mtUPXoX/o7sNwtQ0K?= =?us-ascii?q?IMzox0L/T9ocbcNUDSrc9gkEXOFd2Cra4c1ayO6+jJYi8p2d65qncMcZhBBV?= =?us-ascii?q?cuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx?= =?us-ascii?q?7xKRR6JvjvGo7Vks+7y/2+94fcbglUhTexe69+IAmrpgjNq8cahpdvJLwswR?= =?us-ascii?q?XTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3?= =?us-ascii?q?sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Qi?= =?us-ascii?q?qp4bt1RxD0iScHLz85/3/Risxsl6JQvRatqwViz4LIfI2ZMfxzca3HfdMeWG?= =?us-ascii?q?FPQMBfWSJcCY+4docDEvYNMeNeoob6pVQBtxu+BQ6rBO/20zNFmnH70Kwn3+?= =?us-ascii?q?g4DQ3KwRErE9YQvHjIqdn4MroZX+Kow6nS1TjNcf1W1zf+5obGfB8urvODU6?= =?us-ascii?q?9occfT1EUiGR/KgFqOpoz+JD6VyuYAvnKH4+Z8W++jlWgqoBxxrDi1wccsj5?= =?us-ascii?q?HEi5wPxVDf6yp4wJs+K8CkR057e9GkDZVQtyWEOItsX8gvRH1ntzwhyrIYuZ?= =?us-ascii?q?+2ZzMKx4gnxxHFdvyHfYyI7Qz5VOqIPTh3nmhpd664hxa36EWtzPD3WMqs0F?= =?us-ascii?q?tSsyZIndbBumoN2hDO8MSLVPRw8lm71TqSzwze6+NJLVopmafaL5Mt2L89m5?= =?us-ascii?q?oJvUjdACP7l0P7h7KMeEo+4Oin8eHnb63jpp+bKoB7lBnzMr8rmsyjGeQ4NR?= =?us-ascii?q?UOX3SD9eS8yrLj+Ur5Ta1WjvIsiKnZsY3aJd8Bqq64BQ9V3IEj6w2hADi6yt?= =?us-ascii?q?gYgXkGI05FeBKAlYTpPU3BIOvkAvulhlSskTNry+jHPr3nHJrNMmDOnKrucL?= =?us-ascii?q?ty8UJRyBc/wcpB659bFL0NOu//Vlf0tNPCDx85NwK0w/zgCNV4zo4eQnyAAq?= =?us-ascii?q?uYMKPUrF+J6fsjLPKLZI8IvjbyN+Yq5+X1gH8lmV4SYamp3ZwNZHC+BfRpOV?= =?us-ascii?q?+VYXXrgtcfCWsKpBYxTPT2iF2eVj5ef3SyX6U65j4hFIKmDZ3MRoa2jbyD2y?= =?us-ascii?q?e7GJhWaXpdClCQD3jobZ6EV+0LaCKILc9riiYEWqS5S489yRGusxf3y7hlLu?= =?us-ascii?q?XO5iIYtonj1N9z5+3SixE/7jJ0D8CA02CCVG50g2UIRyMr3Kxlpkx90FiD27?= =?us-ascii?q?Big/NEDdxT++9JUgAiOJ/c0ux6Ecz9WgLGfteTU1umX9amASsrQtI33dAOf1?= =?us-ascii?q?53G8++gRDbwyqqH7gVmqSTBJMq6a3TwX7xJ8dhy3bBz6QhjkcpTdVROmG8ga?= =?us-ascii?q?5/7QfTDZbTk0qFj6aqabgc3CnV+WieymqOukdYXxNuXqXBXHASfVHZosrj5k?= =?us-ascii?q?PFVbOuDq4nMgRZw86YNqRKcsHpjUlBRPr7Jdvef3i+m32rCBmUwbOMaZbldH?= =?us-ascii?q?8G3CXBEkQElR4c/WqePwgkGiihu37eDCBpFV/3YkPs9/V+p22/TkAqygGFcV?= =?us-ascii?q?Fh16C1+xMOgvycU+0c3rQBuCg7qjV0GE2y39XZCtaaoAphZqpca8sn4FhbzW?= =?us-ascii?q?LZqxB9Ppu4IqFsh14edwF3sF301xhsBIVPj9UlrHQwzAVoMaKYylRBdzGG0p?= =?us-ascii?q?/sJr3bMG7y/Aqga6TOwFHRzM6W+rsT6PQ/s1jjshupGVAk83p70tlVyGCR5p?= =?us-ascii?q?DSDAoTSJ7xSUg29wNgq7HdeCk96Jve1WdwPqmsrj/Cx9UpCfMmyhm6fNdfN7?= =?us-ascii?q?6EGRTxE8IABMiuL/Eql0KubhIeM+BY7LQ0MN++d/uaxK6rO/5tkyi7gmRd4Y?= =?us-ascii?q?ByzFiM+jFmReHU2pYJ2faY3hGIVz3klleurtj3mZxYZTEVBmew1TLrBIpPaa?= =?us-ascii?q?1pYYYKCWCuLtasxtpihp7iRXhY9EKiB1wcwsOpfwSdb0Dl1w1KyUsXuWCnmT?= =?us-ascii?q?e/zzFsiTEms7eQ0TfBw+TnexsLIGhLS3d+jV30O4i7k8gaXFS0bwgujBal/k?= =?us-ascii?q?j6x7JcpKRkM2neWlxIfy7xL2BsV6u/rLyCb9RJ6Jw2rSVdSP68bkyCSr7hvx?= =?us-ascii?q?sa1DvuHmVEyzA/azGlpI/5nwdhhWKDMnlztmHWedx1xRvF49zcX/FR1CIcRC?= =?us-ascii?q?ZkkTnXGkS8P96x8NWSlpfDtuS+WHy6VpBIaybk05mAtCyh6W1tGx2/kOi5ms?= =?us-ascii?q?f7HggizS/7y95qWD3WrBb9fobry6O6Mfh9ckZ0BF/87Mx6Go5ln4s0hZEQ32?= =?us-ascii?q?IVho+S/XYdlmfzK9pb07rkbHURXT4L38LV4A/91U1nL3KJ3J75WmyGwsR/Y9?= =?us-ascii?q?m6Y2UW2j8y7s1RE6eU9L1EnS10olWktgLde/59kSkByfE28n4Vn/kJuBYxzi?= =?us-ascii?q?WaGr0SB05YPSjolxuW9dCxsKJXZWi0fLiryUpxgcuhAKuFogFGV3bzYo0iEj?= =?us-ascii?q?No7sVjLFLM12X+6oL6d9nWdtIerR6UnAnGj+hOLpI+iOYKiTBgOWLnsn0v0/?= =?us-ascii?q?Q7ggB23ZGmoIiHLH1g/LqjDR5FMj36edsT9SvrjaZCgMmWxZuiHoh6GjoVRp?= =?us-ascii?q?voVuikECkVtfT6LQaBDCMzqnmcGbrFEg+Q9l1qr3TRHJC3L3uXPmUWzc1+RB?= =?us-ascii?q?mBI0xSmB4UXDMnkZMiCACqwtHucEdj6jAX+FH4tgNGyvh0OBnnTmffuACoZy?= =?us-ascii?q?8sSJeFMRpW6hpP6FvUMcyC7uN/Bi9Y8YenrACXLWybfQtIB3kTWkOYH1DjIq?= =?us-ascii?q?Wu5d7Y/uibBuu+K+XBbK6LqexZWfeIy4yg0pd6/zaMMcWPO2dtA+c92kVdQX?= =?us-ascii?q?BzA97ZlCkXSywLiyLNaNaWpBmm9S1xssC/9/HrVRnh5YSRFrRSNs9v9Aquga?= =?us-ascii?q?eZMO6Qhjh2JipE1p8Wwn/I0rcf1kYIiy5ybzmtDagAtSnVQaLegK9YEQMUaz?= =?us-ascii?q?hpO8tO86I82RJNNNXBhdzp0750lPk1C01KVVb5gMGmedQKI32hNFPAHEuEL6?= =?us-ascii?q?+JKTrPw8H2eqO8VaZQgP9PtxKupTmXCVTjMSqHlznoURCvLO5NgTqHMx1eoo?= =?us-ascii?q?G9bw1tBXLtTd38dh27K9h3jTsszb0znHPKOnYWMSJgfENVsr2Q8SRYj+1kFG?= =?us-ascii?q?xA4XplKu+Elj2E4ObGMZkWsOFkAiJum+Jd+nQ6xKNf7DtYS/xthCvSstlurk?= =?us-ascii?q?m8nemA0DVnTgRBpy1MhIKTo0piP6DZ+YNBWXbA5x0N6mqRBw4Np9t/Bd3lo7?= =?us-ascii?q?pQxcTXlKLvNDdC9MrZ/dcbB8jRMs6HKn0hMBv3Fz7SFwQFVzmrOn/ch0FGjP?= =?us-ascii?q?6S8XiVoYQgpZj3hJoCULlbW0IpFvkCEERqAMQCIItrXjMjibObjs4I5HqmrB?= =?us-ascii?q?nWQMVav4zHWeyJDPXqKTaZkaNEaAUSzbP/N4QTOZXx21Z+ZVligITKB03QUM?= =?us-ascii?q?hTrS15dAA0ukRN8GNlQ20rwU3lcAKt4GQLFf6whBE5lhVxbf4q9Df27Fc9Pk?= =?us-ascii?q?DKqzcokEkthdXlhiiccDjvI6iqWYFbECn0t08qMpPnWQl1axaynU9lNDveQb?= =?us-ascii?q?Jekadgf3hxiADAoZtPBeJcTapcbR8K2/6XfOsn3k5Gqiq7xU9K/vDKCZp4lA?= =?us-ascii?q?Q3dp6soWpA2xh9Y981P6DQIrRGzkRIjKKUoiCozvwxwBMZJ0sV7WydYjAIuE?= =?us-ascii?q?0VObk9PCen5PZs6RaFmzpNY2gDSeYlou9w9kM8J+SBzzjs07hdJUCtL+afNb?= =?us-ascii?q?+Wu3Dclc6URVM9zkcIl05f/bdo18cick2UWlsgzLuXChQFL83CKRtab8BK7n?= =?us-ascii?q?jcYT6OsfnRwZJyJ4i9Df7nTeuPtKYSn0KlEx0kEJgL7sQEApajylrYLdv9IL?= =?us-ascii?q?4D1xot+BzhJE+ZA/RRZBKLjDAHrtmiw5Br2IldITcdAXlgPSis+LbYuBUqgP?= =?us-ascii?q?uCXdcxZHcWRI0EOWwqWMeigS5Wo2xADCWr0uIe0AWC8z78piHXDDngb9piZO?= =?us-ascii?q?yZag5tCNC24zow6LK6iVjJ/ZXCP2v6L8htusfT6eMGoJaKE+lbTb18s0jAhY?= =?us-ascii?q?ZXX3mqUm7JEd6yIZj/cZIhYsf1CnmgVFyzkjw1T9rrMNarMKeInRniRZxIv4?= =?us-ascii?q?mDwDAjKci9GykFFBhuoeEO/7hzahAdY5Ulex7orB4xN7a/IQuC1dWuWWmtIy?= =?us-ascii?q?NMT/ZD1eW6e6BXzy00Y++gznsgT401z+mw8U4JX5EElgjQy+u5aYRCVib+AW?= =?us-ascii?q?BSewLKpSUljWdhLfoyzv05wBzWrVkWKyqLe/BxaGxYo9E8AkufLml0CmUiW1?= =?us-ascii?q?CRlpbM4gmo37AW/itSgcxU0fFbv3fivp/TejWsWLakqZ/NqSovccAmo7FtMY?= =?us-ascii?q?zkOsaGronRnibYTJbLqQCFTDS6GOBEmtdOJCJYQf9ImW4hOcwHtopB6VYxVs?= =?us-ascii?q?kkKLxVDakgvLaqZiR4DSQK1y8WS5uA3CAegue7w7bbmA2cf4giMBwFtZVCg8?= =?us-ascii?q?ESUy1tbyMfuqCsSZvZm3WDSmgRLwcZ9R5M6x4Ylo9sYuDl55LFTJpWxD5MoP?= =?us-ascii?q?J7TDfLFphu91v0UWyXj0L3SPO9nOyt2gJS0e/j0sIBVB55F0dd2/5cllE0J7?= =?us-ascii?q?FvN6kQoonKvyeQdUP9uGLi0vGmJVdWyc3QeV31F4/FtW37Ui0H53IbWZVPyH?= =?us-ascii?q?bEFZQJkgp5bqkrqE9LIIC8dUb0/yYkyJhxH7mkScCrwE4oomwcRye3FdpNEe?= =?us-ascii?q?JmvUnWWD1kYpCrtI7qN49UQmBO5J2Xs01Zn1l1My6l1ZpcLNlA4iILXDhKuj?= =?us-ascii?q?idoMe+SMhY1sNsCZ8DPMt/sW/nGKxYIJiRv2E2urv3x3/b/DAzrky3yyitFK?= =?us-ascii?q?+jUe1Z5XEeFRs0KGiErEkgEfcs+H/I8l/RqlB04/tbBr+XgEVtvTlyA5FOCS?= =?us-ascii?q?xN1X2+M1tzS3xGvPlAJ6TOb8xQWf8yagGzOxYmD/4pw1SJ/V1onXf+eyFyrh?= =?us-ascii?q?Ba+zzHUAYpSSkYmaztmToDqsG9JTAVVZRIbSk7byjfLwKXgydXvAxQa0tyQZ?= =?us-ascii?q?AWHs5F+60H3YtT5sfNUkisJj0ZUBFgKw413+FSmlJEsEWdZS/SFxGoderVvh?= =?us-ascii?q?1xY8iRsNajLO7l8wdfloPnrOc4+r0ZR3K4hAKtQcrRr5Pnu92OsUuOarn3P/?= =?us-ascii?q?Ogbn/GUTfDkwq8hbE6AJnW5yLTKhZUK4FmyXo4ZpjsEXLLPQ5YKK0FOkVWTr?= =?us-ascii?q?16adFaouBAfcBkZqcJ+ahpBh2ZWhPjAouvrONJLlzLXzTRMz2B8vCjoYLU9b?= =?us-ascii?q?HdTPLvZsiIx3nZX6J3Io115iPgFrfsz4Be5lH21et3+UNiV1fKKSaBo8r9Jg?= =?us-ascii?q?kT/smtalPivoE1HTPRGJpwkmDixltHd8oMRy2l6ooYxYhc6HbtTeJ4zknzv/?= =?us-ascii?q?FT97Z+74k3+KplycCuJafdMf5aq1NoAgCIBgV28ZUgGGp/SHpXYu8fMvfRer?= =?us-ascii?q?kWgt71puDrDaMX7gaV++tDZdvBOU7BhtG1CiuARhxcgAcBtTkaIxOT1/6Ymq?= =?us-ascii?q?90TcKlqvb82k82/lexMAUJzLF36oeC4KaIo/XXbxTJx7geRqfqXt/zrqgru0?= =?us-ascii?q?6K5/0klbsOd3dwYwK5EOkSSNQdxmbmzaAl1y4sFd3MH6748v5ZS305hi7gm4?= =?us-ascii?q?x6H1gOHPMUGaGG/YVYnmc9geDZN9sWcq5YmmmVDh6kDqUCyWO35CuLPWllmA?= =?us-ascii?q?/B3wv3QWOp41/8tTV4TjfUz9f/jkpVUaG6BUJVXyqvJU94vy2AMRHttNr2o6?= =?us-ascii?q?s16l85MnDqtdKKjmuhO6hXE9f5JNOCPSk+vEgXg4EpRtyzxYAbHsKwINMK8H?= =?us-ascii?q?F7bvbT8G2rnDFcrKdAnYrR+NmV+u/QHXmikaKVt6mNyCpfyngislE18sqgOe?= =?us-ascii?q?3W592WX/So0H4cTyZ+ugTbRRG6tqfWr0sKNkyXzkjEhJYGPtZD3Xk3zkvm/v?= =?us-ascii?q?QsQMov9AVCEYbNf+gNpTHoODr621mfYdM3VjWG0zRNA1L1FUJ1F7Q72G3tos?= =?us-ascii?q?3Gj2rQ+0cvRolqbUPrnxt3D583KUg18lgY3jIDERQRaRCcFLyoHV7qLZcYWk?= =?us-ascii?q?gDZxWH26K6eqQu0U1o3Lyv4O7TbephB6sCLftdlhSBnERHFZIWv6weR6h8e1?= =?us-ascii?q?xH+K7UuAfiEY7nUObilXYqMv21WM9a+9gDt3Q++ga/Wwag6ZBb4rYUlp+IcL?= =?us-ascii?q?JEYZ/LvMx79Edo+zoPdi1LgBhigBK0SuQcq/754tnbqpWk8OCuW7gxR+8P7R?= =?us-ascii?q?g7G3x+j4fsgFAkudzX0eZcRZHSiYT76g9NOGSGuIfd0xl7MuoOMJmmfLNv+n?= =?us-ascii?q?QIPSQeIGgOPdWOYfkm/yBtKCnT50BFAs4UatMXINHNmRtNhkP0V79d8MvbGl?= =?us-ascii?q?mFC4Z8bM0o4G/3xyoz8ZQiSOrg7yW2JZ/H5VFXI/xDlDlslM7FpOUNw/rSDy?= =?us-ascii?q?gX4X+DZxdpwiOCz4SNBOvx/OWNztHUTFAGHi8tXodDJTqC5xaoRu6om5XoSA?= =?us-ascii?q?+U7NH8gI4mfkKKWnOxhLgFsrpLEeNYiyX7wCJRFobuivKRrtqj9WpXtlpcEI?= =?us-ascii?q?pp6h3FAqpfNI1hORvkjsmrWlR8BizndcHWaBUutuSWxuMX7uRwLUT+Y5EUIg?= =?us-ascii?q?4ex7L893VVUhNkSKTqsVaBQeIReNxmRevLrnBR7oJhJbEAPFyZpJHxtTdIr1?= =?us-ascii?q?Y2AA41Z7MqqDxVaFXOlhVPW6nooL4AlhccUdlhtE9JGGKwO2E+5z3cWKRXlq?= =?us-ascii?q?aRC/sV8jONQawISUloND1xQw+t0pV0Z7SphexHsn9Bni5lu/clzTpmRAentC?= =?us-ascii?q?33o6IN3i4g+K2mtDofpHNJVOKekz3HCV9b1vQFkb8cC2r+6Vy7eHQDYpX94L?= =?us-ascii?q?1mJcT464Ys+HU+YRQmfy0DQ+ugESXwgL2SDoyIqtJciwaHuN/SYr+rMSgSKr?= =?us-ascii?q?M9xArtRnhlyAjenQpn/3UQTzWl7d8kOJ+9Ntg/yiqvA2jbe04G4rlVv8vpqV?= =?us-ascii?q?4LUOw2ZEtmwGVnzMeKXTUNRMjVFGYukggkaHlLcI5Z6RAECaYkmDCIsbda/g?= =?us-ascii?q?sMejfbDpyl+pXMncfPwXQ9SdZqxmTLpqyKn58q1Hxlm8ho7i6Vo3kSdvbXU8?= =?us-ascii?q?lrAnTp0Ydf0+P+be23su8bUItm1KihUPgaP8mm42S5xJVqWk6jxrQZBFe5Lu?= =?us-ascii?q?4DxrHFXCehSG2YX/mLcmeWkzY+KE7y6gGiLkcrZ8dSs089LuzCi4ZelwL7Ur?= =?us-ascii?q?N0QT6fqETGzGwlLeMadwU2uJqoewwKUO4dfe6cKvYywPcmElsDc2fJHTdqC+?= =?us-ascii?q?+xqVOth4Z7O3B87kj7Yung6R7mP8WIGhkFEI/aqZhx9ea8Rm2fJX8zhCF1aW?= =?us-ascii?q?1P0q+LE1U3q/8ZaJuagMLRm8U+1OkJavNgGTMyt8RVmY9574SQlsCQfkeVhr?= =?us-ascii?q?LRAfSd9vyZBeDPikcnYGdXVpIHbg7voYY3JNg0X/vUB7QP+VwkDLU+CLkmMH?= =?us-ascii?q?38vPVsJR53WhbYebDxh87tvO/NbZxR8Tue1U49NCfRvVU4z/WwSQFqJ8Sxi2?= =?us-ascii?q?7aPIE7RjUHqcZkTBRhAt0LU/gt5y6mBYOE0PWghtuw/V5qk/Mbuqr3TPbR3Z?= =?us-ascii?q?K22JsnG9AQ3mmiFxWUCKhwiVl+lcy2g+zcyd+pUIXlY9xOHLxAZ0fuSfrKH5?= =?us-ascii?q?60NymVEsb9YFJdtebFlrVjXUPVLAL+X6zOliqkPfN/7ENzno5/fOyVzjst5r?= =?us-ascii?q?fA1d3abGhdoSGipneNcpBY6QqOTc/TUgkcYv2C8y4xHqAadoDz8+QmOtw4x9?= =?us-ascii?q?2d/gw16y5Nho/NH6W9tVLLkmJyc57SZB/x1iA2RIgMZReyK00hhUfY73DaH3?= =?us-ascii?q?kaNcGnNNNkxtCYSB71sQ05u2goa3UJP23yX9aKcTwZ3sWkfgyR3ARCCtsC2e?= =?us-ascii?q?mtdhhrmLe1TLxDM45IiK2Rv7UOjNhtJjuHEMNTJCzBBKR9PjNMAOHCvh0ja1?= =?us-ascii?q?gPtL1jCdR9XoSHPE5SaBTI8ij11waXlBysLYb+3buVICsQ7nRMxq7E1j4JvQ?= =?us-ascii?q?SipPKFmZe/C+LEdJv6Ba/KOXJ+EDyXQC89V0Og+FPivvsA75/6aXwHrAUyZS?= =?us-ascii?q?SfQBUWurgptcLZW2TaguByVIYBhPmHVST9Umhznew5ASMY0CLEWOINQC/RaX?= =?us-ascii?q?Kpm29AoEqnL/5I82jiauiTz7FYSsQNCYtFb/OdTsGdcvkYLDAtxVB7cP2kcY?= =?us-ascii?q?j6qLA0mknNUXNfE6TM8wiGS1WKR/WH2z/xdZ4SuYk/4XJ2v4iO2CRwFb/NJf?= =?us-ascii?q?Carj+qtIGh1WCJsO3ZUS8mZElm5YBKDGqAxUxYIXofQ5EOuU7rS7KdfUsEyn?= =?us-ascii?q?8ziOxv1hNNMAR+W3FjyDtXyd6sE81eThgfi2aj?= X-IPAS-Result: =?us-ascii?q?A2DkBQBw5kxb/wHyM5BcGgEBAQICAQEBCQEBAYNHgQlKE?= =?us-ascii?q?iiMX409CIJ4knmBXyoUhQSCQDgUAQIBAQEBAQECAWwcDII1JIJeAwMBAiQTB?= =?us-ascii?q?gEBDCALAQIDCQEBQAgIAwEtFAERBgEHBQYCAQEBGASCf4FoAxUDnj+KG4FpM?= =?us-ascii?q?4JxAQEFgQIBAV+CNQODJwgXh1SDLYERJwyCMIR2ARIBhXWHZ4RyPS6MGgmFW?= =?us-ascii?q?IlJaodVhSyMP4ctIWFxTSMVO4JpgiUXg0WKHAFVT3yKYII5AQE?= Received: from tarius.tycho.ncsc.mil (HELO tarius.infosec.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 16 Jul 2018 18:41:31 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus.infosec.tycho.ncsc.mil [192.168.25.40]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w6GIfSIl023618; Mon, 16 Jul 2018 14:41:30 -0400 Received: from tarius.infosec.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 w6GINKGF024356 for ; Mon, 16 Jul 2018 14:23:20 -0400 Received: from goalie.tycho.ncsc.mil (goalie.infosec.tycho.ncsc.mil [144.51.242.250]) by tarius.infosec.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w6GINUvM020789 for ; Mon, 16 Jul 2018 14:23:30 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1CpBgCx4UxblywbGNZcHAEBAQQBAQoBA?= =?us-ascii?q?YNGgWUog3yIY4tdgWAIgniUX4R3AkKCHyE4FAECAQEBAQEBAhQBAQEBAQYYBky?= =?us-ascii?q?FQwMDIwQZAQE3AQ8lAiYCAkUSBgEMBgIBAYMcgWgDFQOePYobbnszgnEBAQWBA?= =?us-ascii?q?gEBX4I0A4MnCBd0hmCBF4IWgREnDIIwiCqCVYdnhHI9LowaCYVYiUlqh1WFLIw?= =?us-ascii?q?/hy2Bc00jFYMkghkMDgmDRYocAVVPjhUBAQ?= X-IPAS-Result: =?us-ascii?q?A1CpBgCx4UxblywbGNZcHAEBAQQBAQoBAYNGgWUog3yIY4t?= =?us-ascii?q?dgWAIgniUX4R3AkKCHyE4FAECAQEBAQEBAhQBAQEBAQYYBkyFQwMDIwQZAQE3A?= =?us-ascii?q?Q8lAiYCAkUSBgEMBgIBAYMcgWgDFQOePYobbnszgnEBAQWBAgEBX4I0A4MnCBd?= =?us-ascii?q?0hmCBF4IWgREnDIIwiCqCVYdnhHI9LowaCYVYiUlqh1WFLIw/hy2Bc00jFYMkg?= =?us-ascii?q?hkMDgmDRYocAVVPjhUBAQ?= X-IronPort-AV: E=Sophos;i="5.51,362,1526356800"; d="scan'208";a="324713" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 16 Jul 2018 14:23:29 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3ApyZfaxIFmfYszkCVbtmcpTZWNBhigK39O0sv0r?= =?us-ascii?q?FitYgXKP3/rarrMEGX3/hxlliBBdydt6oazbKO+4nbGkU4qa6bt34DdJEeHz?= =?us-ascii?q?Qksu4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPER?= =?us-ascii?q?vjKwV1Ov71GonPhMiryuy+4ZLebxlJiTanfb9+MAi9oBnMuMURnYZsMLs6xA?= =?us-ascii?q?HTontPdeRWxGdoKkyWkh3h+Mq+/4Nt/jpJtf45+MFOTav1f6IjTbxFFzsmKH?= =?us-ascii?q?w65NfqtRbYUwSC4GYXX3gMnRpJBwjF6wz6Xov0vyDnuOdxxDWWMMvrRr0vRz?= =?us-ascii?q?+s87lkRwPpiCcfNj427mfXitBrjKlGpB6tvgFzz5LIbI2QMvdxeaHScskaRW?= =?us-ascii?q?pGWcZdTjVND5+yYoYOEuYNJPpUo5TgrFcKsxeyGQygCeXywTFKm3D2x7U33f?= =?us-ascii?q?k/HwHI3AIuHNwAv3rbo9r3KKgcXvu4zLXKwDjZc/9axTnw5YrOfxs8of+MR7?= =?us-ascii?q?Vwcc/JxEQxDQzFlUufqIz4ND2IyusNs3KU7/duVeKrlWEnsRx6rz+zycg2kY?= =?us-ascii?q?nGmIIUx0vf9SplwIY6P8C4SEB/YdG6Cptcrj2VOJFsTsw+RGFovT83x7sbsp?= =?us-ascii?q?C4ZCgH0IorywPQZvCdbYSF7QjvWPiTLDtii39od6qzihew/ES61+HxV8253E?= =?us-ascii?q?xLoydFiNXAqG4B2hPV58OaUPVy5F2h1iyK1w3L6uFLP0Q0la3DJpEv2LA+mI?= =?us-ascii?q?QevErdEyHshEj6kK+bel869ee27uTnebrmqoWZN4BuiwH+Nr4imsm+AeQ8Kg?= =?us-ascii?q?QOXm6b9vqg1LD740H1XbpHguconqTWqpzWO8YWqrS2DgJayooj7gywDzai0N?= =?us-ascii?q?QWh3kHK1dFdQqbgIfzIFHBPvD5AOykg1uwkDdk3e3GPrPlAprTNHjPiavucq?= =?us-ascii?q?xn50FAzwozyMhT54hIBbEZPPLzRkjxucTDDhAnNwy0wuDnCMhy144FRWKOAr?= =?us-ascii?q?OWMKPVsVOS4OIvOPODaJUauDb6Nfh2r8Lp2FsCvBdJeaivwItSc32zA+5nP1?= =?us-ascii?q?TcZH3gn9MMOXkFsxB4T+HwjlCGFzlJaCD2F4YfwhRzXIanC5rTA4OgmrqM2A?= =?us-ascii?q?+lEZBMIGNLEFaBFTHvbYrSH780YT+WaupmlSYJHey5QpIl/QmnqQu/zr1gNO?= =?us-ascii?q?eS8Sod49ar78R4/+3ek1kJ8DVwC8mMmzWWQ3pcgnIDRzhw2rt250N61AHHmZ?= =?us-ascii?q?NVy9hZE8FDr6dSXwM7M4PM5/BrAND1HATad5GGT0jwBp3sOhQYZfF0z94VaF?= =?us-ascii?q?tmAP2mjwvfxGzyWvkSjbPBTMgP14v3/D39Jt121m3d/K0glEU9BJMWc2q8if?= =?us-ascii?q?g7vyrUB4iBsUKZnqCxeKJUiCzK9GHFz22OtUdDXQhYWqzDWnYebULS69/+4x?= =?us-ascii?q?WGB5yjBK9vGQxGyobWKaZHcdbuilZuT/f5P9Hffmf3nH2/U1LA+r6Qd5ftM0?= =?us-ascii?q?UU2inUQBwcngYc4HeAcAszHCGsp0rfSThpC1+peErv7PN37nW2CE0smUXCTU?= =?us-ascii?q?Rk2qH93xkPn/2HA6cR27UeoiY6gzN9GVu8mdXMBIzTiRBmefB3aMgw8R983m?= =?us-ascii?q?LQqgJ5M4boe6trnVMPWx98v0rz2RF6EMBLmI4hq3Z8n1k6Er6RzF4UL2DQ5p?= =?us-ascii?q?v3ILCCbzmqpkr9YrPK2lzYzNed87sO7/J9sVj4oQW1DRB5rid6y9NZiiqE78?= =?us-ascii?q?2RSgcfVIn+FEM+9hw8orDeMWEm/42B83pqPOGvtyPancozDb4uww2tbv9EO6?= =?us-ascii?q?ONCQH2HtdfDMHoI+svyBCydhxRGudU+eYvOt++Mf6P2aqlJuFlyTmvlmlWyJ?= =?us-ascii?q?t20kuR+S5xUKvD1tAOxPTLlhCfWWLai1Gs+tvyhZgCZTwWGT+nzjP4AYdKeq?= =?us-ascii?q?BoVZ0MD2aleJXpg48gwZXqXWVd7himDlICnsCwIFyDZlz62ktb0kFE6XCkmC?= =?us-ascii?q?7t1zVviHlptauQ2iXS3v7vPAQKIG9FRWRuzB/sLIG4gspcXR2AfgEpkxzj7k?= =?us-ascii?q?H/yg=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AqBgBz4UxblywbGNZcHAEBAQQBAQo?= =?us-ascii?q?BAYNGgWUog3yIY4tdgWAIgniUX4R3AkKCHyE4FAECAQEBAQEBAgETAQEBAQE?= =?us-ascii?q?GGAZMDII1JIJeAwMjBBkBATcBDyUCJgICRRIGAQwGAgEBgxyBaAMVA549iht?= =?us-ascii?q?uezOCcQEBBYECAQFfgjQDgycIF3SGYIEXghaBEScMgjCIKoJVh2eEcj0ujBo?= =?us-ascii?q?JhViJSWqHVYUsjD+HLYFzTSMVgySCGQwOCYNFihwBVU+OFQEB?= X-IPAS-Result: =?us-ascii?q?A0AqBgBz4UxblywbGNZcHAEBAQQBAQoBAYNGgWUog3yIY?= =?us-ascii?q?4tdgWAIgniUX4R3AkKCHyE4FAECAQEBAQEBAgETAQEBAQEGGAZMDII1JIJeA?= =?us-ascii?q?wMjBBkBATcBDyUCJgICRRIGAQwGAgEBgxyBaAMVA549ihtuezOCcQEBBYECA?= =?us-ascii?q?QFfgjQDgycIF3SGYIEXghaBEScMgjCIKoJVh2eEcj0ujBoJhViJSWqHVYUsj?= =?us-ascii?q?D+HLYFzTSMVgySCGQwOCYNFihwBVU+OFQEB?= X-IronPort-AV: E=Sophos;i="5.51,362,1526342400"; d="scan'208";a="13850886" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from updc3cpa05.eemsg.mail.mil ([214.24.27.44]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 16 Jul 2018 18:23:29 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;46743cdb-b17c-4520-a58d-394a678926d4 Received: from localhost.localdomain (localhost [127.0.0.1]) by UPDCF3IC03.oob.disa.mil (Postfix) with SMTP id 41TsH434dRzJmrj for ; Mon, 16 Jul 2018 18:23:28 +0000 (UTC) Received: from UPBD19PA03.eemsg.mil (unknown [192.168.18.4]) by UPDCF3IC03.oob.disa.mil (Postfix) with ESMTP id 41TsH33BhCzJmrc for ; Mon, 16 Jul 2018 18:23:27 +0000 (UTC) Authentication-Results: upbd19pa03.eemsg.mail.mil; spf=None smtp.pra=casey@schaufler-ca.com; spf=None smtp.mailfrom=casey@schaufler-ca.com; spf=None smtp.helo=postmaster@sonic306-26.consmr.mail.gq1.yahoo.com; dkim=pass (signature verified) header.i=@yahoo.com X-EEMSG-check-008: 311327997|UPBD19PA03_EEMSG_MP3.csd.disa.mil X-EEMSG-SBRS: 3.5 X-EEMSG-ORIG-IP: 98.137.68.89 X-EEMSG-check-002: true IronPort-PHdr: =?us-ascii?q?9a23=3AFUshexyqHqM/KgDXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?0ugVIvad9pjvdHbS+e9qxAeQG9mDtbQc06L/iOPJYSQ4+5GPsXQPItRndiQuro?= =?us-ascii?q?EopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZv?= =?us-ascii?q?JuTyB4Xek9m72/q99pHPYghEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+?= =?us-ascii?q?VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfM?= =?us-ascii?q?QA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7Vq4/Vyi84Kh3SR/okC?= =?us-ascii?q?YHOCA/8GHLkcx7kaZXrAu8qxBj34LYZYeYO/18cazHfdMaQm1BUt9IWyFdDI6x?= =?us-ascii?q?bpYDA/MdMepFsoLxo0UCoQe7CQSqGejhyCJHhmXu0KMnzeohHwHI0g8uEd0Av3?= =?us-ascii?q?vbrsn6OqgJXOCpzqTF1ynPY+9Y1Dr/7oXDbxAvoeuLXbJ1acfc11MgFxjbgVSQ?= =?us-ascii?q?tIfrIi+a1uQXvGiG4epgUfygi3Q6oAx2vjeg3NwshZfJh48O0VDL6SV5z5woJd?= =?us-ascii?q?22TE50f8SkHIJMuC6ALYd5XsQiQ2RxtSs817YIuoa7cTAOxZkk3RLTdvKKfoqS?= =?us-ascii?q?7h/iV+udOzR1iXZ9dL++hRu+61Wsx+z4W8Wu0VtHrjBJnsfSun0C0RHY99KJRe?= =?us-ascii?q?Fn/ki73DaCzwDT5f9AIUAzjafbMJkhwrgxlpUPv0nPAi77lFzogKKXbEkr5u+o?= =?us-ascii?q?6+L8YrXjvJ+QLYp0hRv/MqQqgMC/Dv04PhUUU2mb4+u81Lrj/UrjTLpWif02l7?= =?us-ascii?q?HVsJHcJcsFuq60GwtY34U55xqiATqr0s4UkHgEIV5fex+Ki5DlO1TUL/D5Cfe/?= =?us-ascii?q?jU6skDBux/3eIrLuGI7NIWbDkbr6ZrZy905cxxAuzdBR45JbFKsBLOvvVUDrrt?= =?us-ascii?q?DXEhg5Mwmsz+b9FNp9zp8eWX6IAqKBK6Pdr1uI5uMpI+mRa44Yoyr9Kvg56P7u?= =?us-ascii?q?in81g1kdfbKz0pcNZ3C4GepmcA2lZi/IufJJRWMLuBcuCffng0CYUCJCInO1U7?= =?us-ascii?q?846xklB4+8S4TOXIaghPqGxijtWtVyRURjQgSIEHH1Z8CHVu0KZSa6PMBsiHoH?= =?us-ascii?q?WKKnRotn0guh4kuy87N6KqLx/SoCuNq3zNFo48XLnAw2sDlzCN6QlWqKSjcw1l?= =?us-ascii?q?gUSic20aY3mkl0zlOOwOAsmPBDPcBC7PNOFAEhPNjTyPIsT5jJd0rlf9GUWB7y?= =?us-ascii?q?WdiiADcsXvot0tQOZAB7ANzkgRfdiW7iSYQwvpeoQZA16anBxGPZI8dm122AjP?= =?us-ascii?q?BniEMpCIMbDkiPrY06+wnIDJPSiG2dlr22buJEhWjK7mjViSKsu0FeGCx3UazD?= =?us-ascii?q?Rn0ZLh/UqtT/oEHFT7aoErkhGgBIz8mEK6BDbpviilAQAL/ANdnFK0m2nGT4UR?= =?us-ascii?q?WFy6iHa43pU24dxiLYCVUB1QcJ8iDCfTQzGjy8pCr+BTpiHBq7e07q/vR/rja4?= =?us-ascii?q?Q1UywgWibghl0KS4vAUchuGGQrUV0/QGoHFl4xd9GVuml/fREcCBvEI1fqBbe8?= =?us-ascii?q?k8+39B3GfUtkp6JJP2fI54gVtLWA1sslKm7B53A5hOlcUw5CchxRF/OIqD21NI?= =?us-ascii?q?aj2c0Iq1MbSRIW73qkP8I5XK003ThY7FspwE7+41/hCz5Fj4RHpnyG1u1pxu61?= =?us-ascii?q?XZ45zLCAQIVpeoAhQs/Bhzur/ebzN47IqS3nppY/Ht7m3ynukxDe5g8S6OOs9F?= =?us-ascii?q?OfrURhT5E8QHCcyjMqkhkh6iaRdWZLkPpp5xBNuvcr694IDuPOtkm2n3339A5o?= =?us-ascii?q?F2iRrSsnAiDOXP2Y0A2bed1wqDETjl1RGwu8DwnsZPYjRARmc=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0C/BAD44Uxbh1lEiWJcHAEBAQQBAQoBA?= =?us-ascii?q?YUrKIN8iGONPQiCeJRfhHcCQoIfGQYGNBQBAgEBAQEBAQEBARMBAQEIDQkIKSM?= =?us-ascii?q?MgjUkgl4DAyMEGQEBNwEPJQImAgJFEgYBDAYCAQGDHIFoAxWeQIobbnszgnEBA?= =?us-ascii?q?QWBAgEBX4I0A4MnCBd0hmCDLYERJwyCMIgqglWHZ4RyPS6MGgmPIWqHVYUsjD+?= =?us-ascii?q?HLYFzTSMVgySCGQwOCYNFihwBVR8wjhUBAQ?= X-IPAS-Result: =?us-ascii?q?A0C/BAD44Uxbh1lEiWJcHAEBAQQBAQoBAYUrKIN8iGONPQi?= =?us-ascii?q?CeJRfhHcCQoIfGQYGNBQBAgEBAQEBAQEBARMBAQEIDQkIKSMMgjUkgl4DAyMEG?= =?us-ascii?q?QEBNwEPJQImAgJFEgYBDAYCAQGDHIFoAxWeQIobbnszgnEBAQWBAgEBX4I0A4M?= =?us-ascii?q?nCBd0hmCDLYERJwyCMIgqglWHZ4RyPS6MGgmPIWqHVYUsjD+HLYFzTSMVgySCG?= =?us-ascii?q?QwOCYNFihwBVR8wjhUBAQ?= Received: from sonic306-26.consmr.mail.gq1.yahoo.com ([98.137.68.89]) by upbd19pa03.eemsg.mail.mil with ESMTP; 16 Jul 2018 18:23:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1531765405; bh=BeeHq5jaAogts83+U5Xk4+mKYeNaDPtBt0OGA8fRFh4=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From:Subject; b=SZU48PTxTeAbN1mAoAg5NQvotaTLe1OC9rOL5Yt1q0aD0jtsPNuU+8M0lHULoA0dWzgliBEFOMrs3VCvKR5kUtMiA/1sIpcO7woqoFq1BvuVjYRbFxFZSUrAGzxd2XYHyfv3doqEMWGu1m8bji7XWB9bPSphTqcbY0ws9SS8OxkmxGO/Gm+78F6q7jZbOqlBcj2iazimeu267ady0i7bSxACgS9gnLpY+dpw3S5UbHxCP8pZBjtk1/YcuD70pbX2ahF+naUqWsC8fkBLlhPHX5u+cQEb0NDYjYtkc2osQ01mJpo5fFwpgK/MZmwouqhF+hGmN8FodAaP41P1e7NkyQ== X-YMail-OSG: n4UAEZEVM1k3pTdjBY28bD_Tt7zGaL7eaWkt23nZg__z84YY0sqppySx7.rZmSb gUBDONwtFKpsMtB3ITBlStHujkW3HqAo_wH4QcwfAILU_o9sGlaNiMGax.eW6ASYnNujuo9Rm3Rb cl5JXAHfEYnPHyyc96nT3htX2WNXtqcjmcs5yydg9_S01cBx02FbRlS801YCySYz1kFIkHLWSnOJ xAsWzcxVsnUqg7_FDPGNRufaxmH.ExubsTH.p88xad.ty0gM6iqHYQymN5gmelZVlAQ.VwL9PgJD knThq20d_eEpiJjxzt8shiteLGKmchyEZdq3b_BPHHgYAF5d2ud_mpgcI0H0pqbGtRwd4kbXU048 EQZXXzYnAFaOBPqfbbLWQxdcne79mRysPpTFvzFizxbqJh4Vf2JMJa2kqE4gdi4e29j.m4b4eBUn zMJCXeNgbpuAhrUjAyMpIV0bE2dR8CWvhGdLhd0BPcMLJ1HvHqlJ.pbEh3iVe3T_hqx8brOu65xh 8vN7GkIlAmv.Iu5Eu6gFKZ1UniYHc_6XoYFzohuFcjJ0gPFZBxmG2BBnPp7RLl.YrnBNr5lbQnwK SBxkeWFweTBKe2.0EnUuKfajr0XonXSCFywOaQ7.3xxXiDdiNxuSrqnJ8.aptwOVNnHZ_kHIl0Fs SUa19n7d88VuM.D6lkgzjLdCPs6gWCBI_3a2fqOivU5EaPx56zPpdXfiNQPqKxhSDzphKRkSEjI9 hW2EQaRRTZ9iCEYR3DzpZt.k57ZjDEcSUx230kKUq5VUAf6mgyM_8B7REGSq7nitYsObSMw5w5ba xWNbuD2sfkfWmZucY63iEI2oqFf_27TpYTe3vAlQtLGIrwezJs1NpgVmwkVYFUprnjR34ElmavTS murC98E8L3405CC099Q5dRhGLigtfbTqM0XE4u27.m_BHptwhaPCJ27jGmu6NS9Z9DWN3kxikgD6 bn1aq5Ck06cKobknUWQXp29Lw9PgYu39Lzyzi1c7cqWsUCB7ww8BBH2Zmkrnh4nMzqmgNNZ4beGK SXVJ5LqGKkaisb.TSUycEmnw05QoA Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.gq1.yahoo.com with HTTP; Mon, 16 Jul 2018 18:23:25 +0000 Received: from c-67-169-65-224.hsd1.ca.comcast.net (EHLO [192.168.0.100]) ([67.169.65.224]) by smtp422.mail.gq1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 041d5204f900f90dbb6d04b9826d704d; Mon, 16 Jul 2018 18:23:23 +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: <8a325db8-e7eb-9581-2b77-fc987a165df7@schaufler-ca.com> X-EEMSG-check-009: 444-444 From: Casey Schaufler Message-ID: <079573f6-9edc-8821-736b-d398fb529638@schaufler-ca.com> Date: Mon, 16 Jul 2018 11:23:20 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <8a325db8-e7eb-9581-2b77-fc987a165df7@schaufler-ca.com> Content-Language: en-US X-Mailman-Approved-At: Mon, 16 Jul 2018 14:38:37 -0400 Subject: [PATCH v1 09/22] 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: Cc: "Schaufler, Casey" Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP 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 | 32 ++++++++++++++++---------------- 2 files changed, 23 insertions(+), 18 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 d5c99ed8047d..23f1e62544bd 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 @@ -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; @@ -3325,7 +3325,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); /* @@ -4548,7 +4548,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; @@ -4585,7 +4585,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();