From patchwork Fri Nov 18 14:30:38 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Smalley X-Patchwork-Id: 9436611 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 0427860238 for ; Fri, 18 Nov 2016 14:28:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EE522298F9 for ; Fri, 18 Nov 2016 14:28:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E2DF2298FB; Fri, 18 Nov 2016 14:28:00 +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 34011298F9 for ; Fri, 18 Nov 2016 14:27:59 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,509,1473120000"; d="scan'208";a="1096287" IronPort-PHdr: =?us-ascii?q?9a23=3AOUxSuhZGz1N15yYZx2ZVTob/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZoc+5YR7h7PlgxGXEQZ/co6odzbGH6Oa5CSdcuN6oizMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCzbL52Ihi6txjdu8oZjYZtN6o61wfErGZPd+?= =?us-ascii?q?lK321jOEidnwz75se+/Z5j9zpftvc8/MNeUqv0Yro1Q6VAADspL2466svrtQLe?= =?us-ascii?q?TQSU/XsTTn8WkhtTDAfb6hzxQ4r8vTH7tup53ymaINH2QLUpUjms86tnVBnlgz?= =?us-ascii?q?oJOD4j9GHcl9J+gqRVrhm8oxBz2pDYbJ2QOPd4Y6jTf84VRXBZU8hRSSJPH42y?= =?us-ascii?q?YYgIAeoZP+tUsofwqFQSohWxGwasH/jiyiNKi3LswaE3yfgtHR/A0Qc9H9wOqn?= =?us-ascii?q?PUrNDtOakPTeC60rHIzTXdYPNQxDzz9Y3IfQolofGIQ71xcdfaxE40FwzYlVWd?= =?us-ascii?q?spDlPjOJ2eQNtGiX9exgVfm1hGI9pAFxpSavy94qh4LUhYwV0kjJ+Th2zYs6P9?= =?us-ascii?q?G1SFN3bcS6HJZfqS2WLZZ6T8U/SG9yoik60KcJuZujcSgPz5Qo2gDQZuScc4iN?= =?us-ascii?q?/hLjTOGRISpkhH59eLKwmRKy8U+4x+3gTMa0yldKrjdektXWqnAM1wDc6siASv?= =?us-ascii?q?dn+EeuxS2P2BzJ5uFBIEA0kbLXK58nwrEuipoeqVnPEyD5lUnsjKKaa18o9van?= =?us-ascii?q?5uj5eLnqu4eQN4puhQH/NqQulNa/AeM9MgUWRGiU5+C81Lzl/U3kT7RGl+Y5kq?= =?us-ascii?q?7EsJDcOcsUuLW5DhRJ0ocj9xm/DzCm3M4enXkcNl1JYh2Hj4/3O13WOvD3Ee+/?= =?us-ascii?q?g0iwkDds3/3GMKfhDY/LLnffkbfhZq1w60tEyAoy1Nxf/JxVCqobLPL0QE/xu8?= =?us-ascii?q?TSDgUlPAys3+bnFNJ925sdWW2VAa+ZN77SvESL5u01IOmMY5IVtCz6K/g/6P7k?= =?us-ascii?q?lWU5lkMFfam1wZsXb2i1Ee57LEWDYHrjnM0BHHwQsQUiSezmklqCUSRcZ3yqRa?= =?us-ascii?q?Iz+ik7CJ66DYfEXo2tgKKO3CO/Hp1RfW1GDk2MEWvvd4WBQfgAciWSItVukjYc?= =?us-ascii?q?T7iuV5ch1Q2ytA/907dnNeTU+jcftZL4yNh4/PbTlRc19T16CsSSyWeNQ3tynm?= =?us-ascii?q?wWWz88xLp/rlBlylefzah4hORVFNJJ6PNNTgc1K4Tcz/dhBtDsRA3BZMyGSEuj?= =?us-ascii?q?Qtm8BjExVN0xyccUY0lhA9WikgzD3y2yDr8JirOEGZ00/bjY33XqO8l9zHPG27?= =?us-ascii?q?U7gFk9XstDL2umibBj9wLLHY7Gj12Zl7q2daQbxCPN8maDzW6KvE5GSw59Sr/K?= =?us-ascii?q?Um4FZkvRt9j54VnCT7C2A7Q9LgRB0dKCKrdNatDxkFpJXuvjN87AbGK/lGa9Hg?= =?us-ascii?q?qHxrOWY4rwZ2USwj/dBFICkw8N4XaMLRI+CTu5o2LCEDxuEkriY13t8eZitHO7?= =?us-ascii?q?SVU0wxuWYE1h0Lq1/BEViOeYS/MS2LILoj0hqzJuEFa6xdLWBMKKpxB9c6VEfd?= =?us-ascii?q?M9/FBH2Hrdtwx8JZygM7luhkUAfARzvkPu0Qh3C4pbnMgxtHMqzQxyKaOE31Na?= =?us-ascii?q?bT+Y247/OqHPIGno4B+vc7LW2k3Z0NuO4KcP7/A4q1H9swGzCkUi9Htm3sJO03?= =?us-ascii?q?uB+prKFxAeUZXrUkY47xJ6va3VYjEh54PI0n1hKbG0vSXf29ItHucq0AyscMxY?= =?us-ascii?q?MKOACA/yFMsaCtOrKOA2nVipaQ4LMPpU9KEqI8Osb+GG17KzPOZ8gDKminxK4I?= =?us-ascii?q?V50k6V6SV8TPXF34gbzPGc2guISS38gE2nss/phYBOfSsSEXanySj4GI5RYbV/?= =?us-ascii?q?fYUVBmeoOM263dZ+iIDrW35D8l6sGU8G1NWueRqIYFz3xRdQ2lgPoXy7hSu4yC?= =?us-ascii?q?R5ky8vrqWCxyHO3eLiewcHOmJRQmltk0vsK5Cuj98GREiocxQplBy96Ebi3adb?= =?us-ascii?q?uaB/InLPTkdJYyj3L3huUqWqubqEecJP74kosSpPWuSmfV+aUqL9owcd0y77B2?= =?us-ascii?q?tR3i07dzW0tZXhhRN6jn6dI2hprHfCZMFw3gnQ5MbHRfJLxToGQzR4iSPLCVei?= =?us-ascii?q?Mdmp+s+Ul5jdveykUWKuSIFTezHxzYycrCu7+XFqARqnkvC9gNLnFxQ60Sj+19?= =?us-ascii?q?RxWyXHsgvzYo7x16ugKeJnZE5oBF3i5MVmBoFyiIwwhIsf2XICnJWa4WIHkXvv?= =?us-ascii?q?MdVcwa/+Y3oNSiIRw9/V+AjlxEpjI2mPx43nSnWd2dduaMOiYmwIwC496d5FCL?= =?us-ascii?q?uM5rxegSR1uka4rR7WYfVlmzcS0/8u6HoEjOEVpAoi1D+SD6sUHUZGISzsjAiH?= =?us-ascii?q?4MqmrKpJfmqvd6a/1FZml9C7EL6Cuh1cWGr+epo6By989Mt+PEjJ0HLp7oHkf9?= =?us-ascii?q?nRYMkJuRKIlhfMle9VKIg+lvASnypoJXr9vWE5y+48lRFu24u6s5KfK2V156+5?= =?us-ascii?q?DB9YNifuZ8MP9DHtjKBekdyQ34+zH5VuADELUIHvTfKyHzIYre7nOBqWED0gtn?= =?us-ascii?q?ebHqLSHReB50h9sX3PFZGrN22QJHQCzNVtWgeSK1JFjAATRjU6kYYzFhq2y8z5?= =?us-ascii?q?bEd5+jcR60blpRtX1O1nLRb/Un3Fqwe2cTo0U4KQLBlL7gFY/UjZK8ie7v91Hy?= =?us-ascii?q?5C5J2ttRCNKmuYZwVICmEFQEqECE7/PrO2/9nP7/CYBvaiL/vJebiOsvZRV+mS?= =?us-ascii?q?ypKgzIRm5C2BNt6VMXl8FfI71VRMXWtjF8TfhToPVzQdlzjRYM6DuBe85ip3o9?= =?us-ascii?q?ik//TqVwLv4o2PBqBPPtpx4B+2gL2MN+iKiCZ+MzZY2YsGxWXUx7gHwF4SlyZu?= =?us-ascii?q?eiG3HrQPryHNUrzfl7RQDx4DdSxzMs5I4Lg93glJIsHbjdz02qR/jv4vBFdPTU?= =?us-ascii?q?bhld2xZcwWP2G9M0vKBFqMNLSDPzHL2cb3YKKiRr1Wl+pUrRqwtiiYE0L4IjuD?= =?us-ascii?q?kDzpWAy1PuFXkCGXJhpet5+hchx1E2jsUMrmagGnMN9wlTA2wr01hnfUOmMHND?= =?us-ascii?q?h8dE1NrrOO4iNEnvV/G2tB7n97IuWenSaW8fXYII4MsfR3GiR0i/5a4HMixrtU?= =?us-ascii?q?6iFEWOJ6mC/Mod5rvV6mjvOPyzp8XRpJsjZEmoSLvUB4NqXY8plPQnHE/R0X4W?= =?us-ascii?q?WXERQKqMNvCsfztKBI1tjPiKXzJS9E893K58QcA9PZKMGAMHo6LRrmAjjUDBAG?= =?us-ascii?q?TT6qL23fgVJSkO2K/H2Pspc6soTsmIYJSrJDTlw6COgaBVp/E9wYPJh3Xigpnq?= =?us-ascii?q?WajM4S+HW+qxfRRN1Avp/ZVvOeG/PvJyiFjbNcfRsH3av4LZgPNo38w0Ftd156?= =?us-ascii?q?nILMG0XNQ99NpixhYxQur0pT6nh+SXc/20X/agOi+HUTD+K7ngYqigtiZuQg7C?= =?us-ascii?q?rj7E0pJlrLuSQwi1I8ls//gTCLdz7wIrywUp9KBCrprUgxM4/7QgZvYQ20g0Nk?= =?us-ascii?q?KC/OR6hNgLt4aWBrlAjctINBGf5GU6JLfQQQyuuRZ/U01lRcsT6qylVb6uvAE5?= =?us-ascii?q?dikxEqcZG0pXJaxw1jdMI1JbDXJKdRylhQgbiOsTGu1uEwxw8TPEkN8GWPeCIS?= =?us-ascii?q?v0wILLYmLTKy/uNw8QyChydDeG8UWvoxvP1q8kI9O+KdzyPvyLNMNkexN+mDIK?= =?us-ascii?q?yDoGjAidSEQlUu2UMUj0NF56R50d8/c0qIUEAi1LiRFw4JNMXYLwFVc8pS+WPc?= =?us-ascii?q?fSaJqeXC3Yh5P4OjGeD0VeWOrrobglq4HAY1GIQB9tgBHpip0EHfMcfnLL4ExA?= =?us-ascii?q?4w6wTqJFSKFu9GdAiNkDgZv8G11IV30pVFJjEBHWV9Nj265rbQpgA0jvqMQs02?= =?us-ascii?q?b2wbXoQaKH05Rte2mylDv3RPFDO3yP4WyBCe7z/goSTdFCPzb95iZPiIexxjEN?= =?us-ascii?q?S2+DU586ixj17Y6I7TKHr7Ndt4vN/D8O0ap4udB/NSU7Z9r1/Wm5NESHyyT27P?= =?us-ascii?q?Ddm1KoDrZIYya9z5EWy1XUGhiz0rVcfxJ8yiLrKIgA3yQoZUqoab1ig5NcChDj?= =?us-ascii?q?EeBwtwp+Yb6aJzeA0DYp47YRr2uAQ7LKGwPRmX3c6vQ2m3LztaVf5fzf+1Z7ZP?= =?us-ascii?q?1Sojcve6yGc8TpE91+S360gNRJAWgRHewvajY5JeXzDqFHJAYQvCuS03mnN9Oe?= =?us-ascii?q?Y1x+cw3AnHsUIAMzyRcuxmdnBEtckmBVyOOXV2FnY4R1iEgIrZ/wGjwqsf/yRY?= =?us-ascii?q?n9dby+FFtmbxvoPHajK2RKOrsYnVszYnbdU+v6JxM5bsLdeduZzCmTzfSJ3Qsg?= =?us-ascii?q?ybXy6gC/pVhMRfICJCTPlPg2ElNtQMuZBd5kopSsc+O7tPBbE2pr+wczpkCjUd?= =?us-ascii?q?wDQFV4OaxjMCnPmz27/blheWf5QiNB0EsJpCgtsBXS55eDkepKq5W4XQiWCEVn?= =?us-ascii?q?ABIB0P4gRU+AIAiohwc/jl4YXSV59D0TtWo/NyUibQF5lo60H0SnqKjlfiUvmh?= =?us-ascii?q?lfKm3R5KxvL2ztYbQAJ/CVRax+tOmEokMq14K6kRvo7Psz+Hb0D6sXnsyOS4Ol?= =?us-ascii?q?Ze19fYd1riDIrKrWD8SDET+WUIRY9Tz3HSDY4dkxBkaKYtvllMI5urekf/5zwl?= =?us-ascii?q?24RmBKO0Vca1yFY5tXwGXTulE8JdC+F6t1LaQDJlY4qxp5XjJ5VfWW5Q+JqTql?= =?us-ascii?q?dfjEVtMzC2yZtaK8FR/DEMRiJDoTODs9uuUMdDw9N5D4cQItdjvHfwAL9EOJ+U?= =?us-ascii?q?o3Atprzj1nrZ9CsmvFe82jqzB7eyT/hF8G0GBgUpO2Oep1EvD+Q26Gfd6FTNvU?= =?us-ascii?q?1v8uhGGLePlV1xryh5Hp9QHDZFz3elL058THNeqeVVNLzVc9BAQ/k1fRKvORs+?= =?us-ascii?q?GuA90kOU4050hmn2YzZutgRE5i/RRQ80WjcJgr31gz0RttmnOSMGS5JPdTgudC?= =?us-ascii?q?nFJB6HlS1VoRpSZVpnVIweAtZA574Ux5BU/tbYRUaqNy4FQARoNhgk3vpHiU5D?= =?us-ascii?q?rEKYdDjHDQW2aPnPsgd4fduKoc6tK/T54hlIhp37v+A/6qoMWWeqmQuzTtDCt4?= =?us-ascii?q?X8rMGFtlOSdKfkNO2xeWfBTCPQjR+qmLgkE4LH/zPUMApGMZl11WQrYZ79CW7R?= =?us-ascii?q?JxtGI7gXJ01BVaB1cd9GuPxVZ9d4eKYV/q9gHg6HRgnxF4OxsfZLNUvTRTDCLy?= =?us-ascii?q?Wb6OO/v4PT7bvZSef+esyA3XHHQ7h4Pp1i8zn0B6/q0ZNC+krxwvpi60V6RkLd?= =?us-ascii?q?Pi+cqtTuPBkH5M64dkvtppcpBy/ZAI9skHrxwUFNb8gXTDew8JQf05NZ7Gz/Sf?= =?us-ascii?q?xj30j2re1S86Vk6Ygr7LBo08i0I7zSJe5dsU99DRieHh9q+Yk1AGhjW2BRZfcc?= =?us-ascii?q?KPXLcqQfg8Dusef3GLEJ5xCO5+xWc93HJ1rGmsWlDDGTVwBElh8bqTEGNgucy+?= =?us-ascii?q?KFm6hsRMajoej0wUMt4167LhIczbBt44mE+rCSq+/McxvR16UEVbT2RsPutLQj?= =?us-ascii?q?pVme5fo+lL4BYmZ1eRGoEPABVs4BwWft1aYqzSMwHMPEG7Lv4uVDW2g4njLnnJ?= =?us-ascii?q?B9BE4WF+gRHbeE8oVShGA4m/bWNtcOaKBNhn6PFQK4Er8F0XOk9zGYIG17jRHV?= =?us-ascii?q?zxHxQWSz4UTtrSBkQCvD0dHjklZUVratH0tSWTSmOVNgujOVIAXorMb3ubgy7E?= =?us-ascii?q?wuNmzkr9eNmWu6NbNZAcLwOducITMuq1IPlp0xQd6v1p4HFtqhOtsR92t+bvTG?= =?us-ascii?q?4WOxjyBBu7tHh5bZ4syN//XXGWevj6idq7qTwDBV0Xc4sk846tC7LvHB/cGKQ/?= =?us-ascii?q?Wy2GYVTid/vRfBUACxqrzfrlAUNlKE0EHXl4MUJN1Z22c31l3+7ug5XN0z7Ble?= =?us-ascii?q?FprHZ/4apzDzOT70zE2aY90pViiRzSFXHlPzEVl3AqQ83nz/vN7Rn3fK51IoXp?= =?us-ascii?q?Vwd1DghRFvDoU5KFgi50ILzScYCggCdwybA6+0Ckj/KosET0cDYwyd3LemYqc3?= =?us-ascii?q?wVFzwrS36eDIbOx8HKQMOexfjg6PgFhbAogZsbAaQL9nZ1Bd87PYqRb4BIj6Rf?= =?us-ascii?q?jmkmAwOuevTsBd68AZuGMo4hyjSBq49ZdD87EbhYiQdqFefZjDoMB87klg5T4V?= =?us-ascii?q?dSxBmQN/gA29UeAdouDj/9favYGw6um0SKYiW+UX9hYzB2RkjJv8mlMjrs/N1+?= =?us-ascii?q?daVILVjZ7z8AdXI36FoIzayQVzKfISK4K3e7Zt72kHJzIAKHIKJ9WWbecz7jRw?= =?us-ascii?q?PzXS6FxCA98MaskDPMXXgwBUl1flWLdN+crHAlWYEZt8d9g072rrzzA46ZQ8Xf?= =?us-ascii?q?z66DCoOZDf70pAP/dCjCVwit3CpPIawefJCCQN53mWdQR1yDuYy5aRE/bw4fmM?= =?us-ascii?q?yNbMWlMJACE2VZtdJD2F+QCgXeq6ipHpUgKS6s/uj5Mzb0aQSWKrnKUFqKlAC+?= =?us-ascii?q?hAhTvn3jJGDID6m+qVs8aw6GtQrlBHFYFz7RvZGKVQIJp2IhH4lsixSUh6GCT/?= =?us-ascii?q?ZM/Vdh00uOqV3ecA+eN+OFXiZYUDOBIL16r66WZJTgtpULP2sUqWXfkKZNd/Vf?= =?us-ascii?q?3KoXZb6YNmK68SM1mQv5PqrjJSp1AwHgAlcrgwriZVdkPWhg1aR770uKIcigsb?= =?us-ascii?q?SdN5u0hMGWK2OG4k+zXHVaBVjLSMB/0U8zWTSLcOU0ZpMi5lXRO12YtudKGtnf?= =?us-ascii?q?9as2NKhCV9r+Y20zZ+XhuzpTXsp74R2TIn4Ly4tSsBtmZDTuiFlyfIFEhMzPUN?= =?us-ascii?q?jacHEXri7ka8YHYbZovo/LZnPdjg9ZUm43knYxUsYSMGXeqkCyzrgaKHGIqPv8?= =?us-ascii?q?xAhBKXvsXBc6OzJzAINrsh0RLjW2R90g/GkRZn9GsLRTuh48EgJIW5Issl3S2o?= =?us-ascii?q?GW7adFkQ+K9JttX+tUITRussdVxh2Hlj0tSARiAVRszPG2Y0jhAjaWVAcZJD9Q?= =?us-ascii?q?EVGrItgjaJoqlG5B8bbC3TEoS/9Ynahd3I1mUlTdd22mLWobWIho8r0H1ggN50?= =?us-ascii?q?8i+Ot2gRd+PGV89gGH7z2ZlDyebmffWirvgHSJd6yLSmSPICN8ij+Wi12JVtQU?= =?us-ascii?q?KlxK4RH1m+MO8F2LjbVT2pSWuGVuSXa2KMhSo2Mlbu5Rm0KV06cNxFoFE7Muve?= =?us-ascii?q?nZNcjAnhUbRoRiWMu1/U0nEsPfkddwIst4etYxYKQ/IJZ+iAOegux+UzCEMLb3?= =?us-ascii?q?/NByR2EeG3sVmpnIh1IHhg5EL6YeP28g/4LNSSAB4EEZXBrp5w//y6SXiNOXh6?= =?us-ascii?q?zB19JEN07fvQF0wttu9AdJachdbQiMp/0e4Eb/diLzYwu98SmoJm7Imbzt2KcR?= =?us-ascii?q?XPwZroItHVuPeYCeXFz0s2YmFaTqYZYQTt6oU6It45W7rTHb5DshQHHqU6RZ0h?= =?us-ascii?q?N3vr9K5qNg9zdRTRZLusiMnwuu2LfodUp2PR7l8oIibcowcDyv2oQgNldJ2qgn?= =?us-ascii?q?TyIIwqRj1ftdFtDQFmHIRXEcMaswWnG4KUmL28i9Kp/EN6v/EFvLHoCvDOztu5?= =?us-ascii?q?xJlxX5lG6kyXJjbeGrdkjl5jjuusnvfKyoPxBt/6edMYSOh7RXbIarvHHoW5Nz?= =?us-ascii?q?KPNdvwe0pH876HzLJ5SQ6cZCHjUKqAsy2oLvJk4V80yoZgZurc0CQt763H2Nv1?= =?us-ascii?q?f2xbvTmsrXqINJtZ8VzLCuvSUR1ISfqF7mllB7MYbZPu++oVMtwt3sKc4w9t4z?= =?us-ascii?q?RGy8SFPqeholXL2kJhepLRNFHp1DohWYkWPBS/NlMhgWvYqnTGHXRRNcmlKdBr?= =?us-ascii?q?gNmPFBDt4Vd+mX01bG5bBmXoXcuROXQc28+mYQ2F7h5ED9YCn+6xfk41rbOySe?= =?us-ascii?q?huOppbneWqtbMHkctmKi3VQ8haJS7QJqdsPjVNFuXPuEQoYhkcvrg3QIg1Zp+O?= =?us-ascii?q?L1gcPUedzyPy0QvC0Urpd9yj1KaJPDwa8nNZwLLZyTJMvRW2ue6Fgs3/V7DUdI?= =?us-ascii?q?r5U+XVPCohVzGaXigyEV2z9Ve/pfULoOCUIXwBrVAQYyKSDhMTp690oNfMDm7T?= =?us-ascii?q?g/BjfIYQiPGUQS/wVDZ4lK00BipRskCMWfUDHxHMb3D9mGpcpBCiJvhU8HLqdb?= =?us-ascii?q?KX3bBVW+0IDYtIafCZXd/YdupFJzcpizUVIuC8cMPAr7whyFLHUXMZE7XU9F2Z?= =?us-ascii?q?VEOWQPmcxzXxXYUPvog0oTEl+tTKkS9yDavIPqyTpzm08o63lCyYo/HRVnExY0?= =?us-ascii?q?wph+IPGHeOwBtHKGEEDdEVo0btQqibakZDznIplPxu1AEWeAhpVH1hzGFWlu6n?= =?us-ascii?q?GsJFUV4UkH+uQPoeYVBsAjMw+FOF7wzxbNEbp8DcWXVe9roNSIoaKvkk8o/XN7?= =?us-ascii?q?UMwPwxxjJpvDQ6szmBD1Nalg+F8a3QHKR4xrBZ4Gk34ex5Xk+IQzPFbmfI1JCq?= =?us-ascii?q?C8RRyidy8jjY0J/Ps+RsMqZKj51oC1cNRyRtL5bS+i4FGXn9xQ+apx+mGHGbJz?= =?us-ascii?q?UD7XAAIilWWPxyyrpArBvQdtvHoXiVvqYlpVrjXR2HEZKoyZdLDYfvzgz+Zi5V?= =?us-ascii?q?J2b4X6tqo+pAwY5BKZgsYpKzVhWbdgU=3D?= X-IPAS-Result: =?us-ascii?q?A2EKBQAjDy9Y/wHyM5BeGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwwBAQEBAR+BWKMsAQaXfyeIEFMBAQEBAQEBAQIBAl8ogjMagiMCNxQgC?= =?us-ascii?q?wMDCQIXKQgIAwEtFRgHCwUYBIhLrjcqAoswASSFcok/EQGFfQWPZYpmkHICihi?= =?us-ascii?q?GCwKRZlVdEQIPDB2FP1SGHYItAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 18 Nov 2016 14:27:56 +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 uAIERgSF009160; Fri, 18 Nov 2016 09:27:43 -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 uAIERedI220582 for ; Fri, 18 Nov 2016 09:27:40 -0500 Received: from moss-pluto.infosec.tycho.ncsc.mil (moss-pluto [192.168.25.131]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id uAIERdYg009154; Fri, 18 Nov 2016 09:27:39 -0500 From: Stephen Smalley To: selinux@tycho.nsa.gov, paul@paul-moore.com Subject: [PATCH] selinux: normalize input to /sys/fs/selinux/enforce Date: Fri, 18 Nov 2016 09:30:38 -0500 Message-Id: <1479479438-7123-1-git-send-email-sds@tycho.nsa.gov> X-Mailer: git-send-email 2.7.4 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: Cc: Stephen Smalley MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP At present, one can write any signed integer value to /sys/fs/selinux/enforce and it will be stored, e.g. echo -1 > /sys/fs/selinux/enforce or echo 2 > /sys/fs/selinux/enforce. This makes no real difference to the kernel, since it only ever cares if it is zero or non-zero, but some userspace code compares it with 1 to decide if SELinux is enforcing, and this could confuse it. Only a process that is already root and is allowed the setenforce permission in SELinux policy can write to /sys/fs/selinux/enforce, so this is not considered to be a security issue, but it should be fixed. Signed-off-by: Stephen Smalley --- security/selinux/selinuxfs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c index 72c145d..4c3e439 100644 --- a/security/selinux/selinuxfs.c +++ b/security/selinux/selinuxfs.c @@ -163,6 +163,8 @@ static ssize_t sel_write_enforce(struct file *file, const char __user *buf, if (sscanf(page, "%d", &new_value) != 1) goto out; + new_value = !!new_value; + if (new_value != selinux_enforcing) { length = task_has_security(current, SECURITY__SETENFORCE); if (length)