From patchwork Thu May 4 17:01:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Jenkins X-Patchwork-Id: 9712377 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 5820F60362 for ; Thu, 4 May 2017 17:25:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4452720223 for ; Thu, 4 May 2017 17:25:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 38B5A28557; Thu, 4 May 2017 17:25:47 +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=-3.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.1 Received: from emsm-gh1-uea11.nsa.gov (emsm-gh1-uea11.nsa.gov [8.44.101.9]) (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 50E8220223 for ; Thu, 4 May 2017 17:25:46 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.38,287,1491264000"; d="scan'208";a="5490379" IronPort-PHdr: =?us-ascii?q?9a23=3ADikj8hKm/2xmJAoXp9mcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgQKPr7rarrMEGX3/hxlliBBdydsKMazbSM+PC4EUU7or+5+EgYd5JNUxJXwe?= =?us-ascii?q?43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRp?= =?us-ascii?q?OOv1BpTSj8Oq3Oyu5pHfeQtFiT68bL9oLRi6swrdu8oKjYB/Nqs/1xzFr2dSde?= =?us-ascii?q?9L321oP1WTnxj95se04pFu9jlbtuwi+cBdT6j0Zrw0QrNEAjsoNWA1/9DrugLY?= =?us-ascii?q?TQST/HscU34ZnQRODgPY8Rz1RJbxsi/9tupgxCmXOND9QL4oVTi+6apgVRHniD?= =?us-ascii?q?0DNzUk7m/ZjMJ+h79frB64uhBz34vYbYeIP/R8Y6zdZ8sXS2pfUMhMWSJPAYSy?= =?us-ascii?q?YIkBD+oZP+tUsofwqEUVrRalGQWgGPnixiNSi3PqwaE31fkqHwHc3AwnGtIDqG?= =?us-ascii?q?jZrNHvO6cUTOu7yLfHzTPAb/NX3zf985XDfxc7rvGIR71wd9DdxlUvFwPfj1WQ?= =?us-ascii?q?spDlPzSN1uQNrWeb9fBsVeCxhG4hqAFxoz6vxtw3h4nGg4Ia0FHE9SFjzIkpIt?= =?us-ascii?q?24TVd2bNi5G5VesCGaMpF5QsIkQ2xwoiY11KAJuZ6hcygW0pgo2xnfa/mBfoOV?= =?us-ascii?q?4RzjTP6cLSp3iX9qYr6yhwu+/VK+xuDzSMW4yktGojJBn9XSrHwA2QHf5tKJR/?= =?us-ascii?q?dn40us2DCC3B3J5O5eO0A7j6/bJoYkwr43i5Ucr1zOHjTzmEXqlK+WcVgk+vSw?= =?us-ascii?q?5+TnfLrmopicOpdoig7kKKQum9G/Af8iPggSX2mU5eS81Lr58U3/XLpKleE5nr?= =?us-ascii?q?PcsJDbIcQXvq+5AwlL3YY/8xuzEjir3dsCkXQHMV5JYgyLgof3N13UPfz0FfK/?= =?us-ascii?q?jE6tkDdvyfDGJLrhApDVI3jYjrjhebd960hByAs81NxQ/JVUCqwHIP3vREDxr8?= =?us-ascii?q?fVDgM5MgOow+bnD89x1oUFWW2VGKOZP6TSsUGQ6uI1P+aMfJMVuCr6K/U95f7u?= =?us-ascii?q?ink5lkUBfampx5QXbmu1HvZhI0WfZHrjmMwBEXsUsQokV+zmklqCUSRcZ3yqRa?= =?us-ascii?q?Iz+ik7CJ66DYfEXo2tgr6B0z2nEZ1VfWBGDVaMEXb2d4ifVfcMbD+SI8B6nTwZ?= =?us-ascii?q?U7ihV5Ih2QuptA/gxLptNvDU9TEAtZL/yNh14PXelQks+jNvEcud1WCNT31znm?= =?us-ascii?q?4TRj85wr5wrlJnxleEy6h4jORSFcZP6PNRTgc6KZncwvRnBND1XALBeMqGR0ii?= =?us-ascii?q?QtWnGjw+VMw+w8UJY0pnHNWilB/D1TKwA7AJj7yLGIA08qXE0nfsO8Zy0WzG2b?= =?us-ascii?q?I9gFkhR8tAKXephrVj9wTJAY7GjVmZnb6wdasAxC7N6HuDzW2WsUFZVg5wTbvK?= =?us-ascii?q?XXQBaUvTs9v5+lnCTr+1BLQgKgtO18iCKq5QZd3oiVVJX/DjOdvEb2K2gWewCg?= =?us-ascii?q?6CxqmQY4ryZ2UdwCLdBVAEkgES+naGMxMzBiKlo27HDTxuE0jjY0X2/ulkq3O7?= =?us-ascii?q?T1E0wB+QY01nybW15gYfheaARPMLwrIEpCAhpi1qE1alxd3WEduApxF6caVEe9?= =?us-ascii?q?w9+lZH1XnBtwx5JJOvM75tikQZcwRtsEPkzw93BZlYkcg2sHMqyxJ/KKyZ0FNF?= =?us-ascii?q?cjOXw4rwN6bZKmbs4R+vbLTW1UvG0NaM/acP6uo3pEn/vA2zEUoi6Xpn2cFP03?= =?us-ascii?q?SA/pXKEBYSUZXpX0Y57Rh1vbfabTU854PPznBsNLG0sj7b19IyCuol0Qysf9BF?= =?us-ascii?q?MKOLDAXyCdEVB9CyKOw2nFikdhEEM/pR9K4zIsOrbPiG17SoPOZngTKql2NH4J?= =?us-ascii?q?py0kiU7SpzVvbI34oZw/GfxgaITSrzjE2gss/pg4BJfisdEXa6yST+A45RfKJy?= =?us-ascii?q?d54RCWiyO8232sl+h5n1VnFE7lGjA00J2NS1eRuSaFzwxhZQ2lgWoXO5nyu40z?= =?us-ascii?q?10nCszoqqZwiPO3/zodAAbNW5TWGlikVDsLJCvj9AURkioaBMplAe+6Ebhwahb?= =?us-ascii?q?o6p+L2zJTkdOZST2KX9tUreovLqYf8FP8I8osTlQUOmkb1GVULr9owcE3CP5BG?= =?us-ascii?q?tT3y47eC+wuprighx6jXiRLHFprHrWYctw3wvQ5MTARf5N2ToLXDV4hiTKCVi9?= =?us-ascii?q?Jdap+c6ZmIvEsuC7S22uTIZTcTXxwYOGqiS7+XVgAQejkPCrht3nDQ863Dfl19?= =?us-ascii?q?lrSSrIsBH8YpPx26umMeJneU9oBFDn5sp+G4F+lJE/hIsX2XQAgZWV53UHm3/p?= =?us-ascii?q?MdpHwaL+cGYNRTkTzt7R4Qjlw1FjImuSx43nUnWdw81hZ8S1Y24NwSI998FKCK?= =?us-ascii?q?GV7LNYhit5uFy4ohzNYfJlhDcS1eMu6GIGg+EOoAct1CKdArQWHUZGJyzjixOI?= =?us-ascii?q?7t6loaVMeWagbaOw2FB5ndC7A7GIuhtcV2rhepc+AS9w6d1yMErW333u7oHoYs?= =?us-ascii?q?PfYcgIuR2TlxfAk+9VKJQqm/oPmSZnP2X9smE/x+49kxNuwYmwvJKbJGV14KK5?= =?us-ascii?q?HhlYOyX2Z8wN/DHtlr1TnsWI0ICpBZVhHCsEXIfyQfKvCjISuuztNxySHz0ktn?= =?us-ascii?q?ebBb3fEBeH6Eh8snLPF46kN2mNK3kf0dVtWgOdKVdCgAAPQjo6hIU5GhqxxMzm?= =?us-ascii?q?bUd5/Cwe6UD2qhtL0OJoOAfwXn3ZpAi2djc+UIKfIwZO7gFe+0fVNtST7vx1Hy?= =?us-ascii?q?5F5ZChsgqNJXGbZwhSC2EGRFCEDUj5Pray/dnA7/SYBu2mIvvWe7qOtOheWuyU?= =?us-ascii?q?ypKuzotn/y+ANsuVMXlkFfE73VBDXX9hEcTDhzoPUzAXlz7Kb8ODpxe9+il3od?= =?us-ascii?q?6k/fTuXwLv64WPBKVOMdVz+xC2hqKDOPCKiCZ/NzlYyosGxWXUx7gHwF4SlyZu?= =?us-ascii?q?eiGjEbsasy7NUKXQmqpMAh4VdSx8KcxI77gm0QlVI87bjdH12aBkgf4pEVtFUk?= =?us-ascii?q?bhms6xb8wQP269LE/HBFqMNLmePz3H2c/2bbm5SbJKiOVUsB2xtC2BHED/OzSP?= =?us-ascii?q?jT7pVwqgMetUliGUIAReuJ2hchZqEWXjQsjmZQOmP99slzI2x6E0hnTRNWMHKz?= =?us-ascii?q?dzb0ZNoqeX7SNCjfV1A3ZB4WZ9LemYhyaZ6PHVKpAMsfRxGiR0j/lX4Ho7y7tP?= =?us-ascii?q?9yFEWPJ1mCrUrtF0pVGpjuiPxSBjUBZUrTZLno2Lt114OarF7plARWrE/BUV4G?= =?us-ascii?q?qNEBQFucFqCtL1u69K1NjCj7nzJy1B89LJ58sTHdLYKMaaMHonKxXpAifYDBcC?= =?us-ascii?q?TT6oNWDfgFZRkPeM+X2JtpI6sITjmIISSr9HU1w4DvUaCkVhHNwGPph3RSgpnq?= =?us-ascii?q?SFg84S4nqyth7RRN9VvprfTPKdHe3vKCqFjblDfxYH2rL4LYsUNo39wEFtd0d1?= =?us-ascii?q?k5/LG0XKW9BBuCphbhU7oE9V6nhxUnUz2175agOq+HIcD/G0kQQoigRgeukt8y?= =?us-ascii?q?/s7EkxJlrPviQwkU0xls7igTGeajLxK72wXY5OASruq0cxKo/7QxpybQCqgUxk?= =?us-ascii?q?MzLES6hLj7tndGFklgnctoBVGf5bU6JEYwQdyu2QZ/UtzVtTsD6nxVNd6evDF5?= =?us-ascii?q?RiiBMgcYSwoHJYxwJjcNk1KLTWJKVX1FdQgrmDviyv1uAq3A8RPUAN8HiReC4J?= =?us-ascii?q?okAIMKcpJzaw9Ox29QOCgydDeHQLV/cyuPJl6Fg9NPqawCL6z7FDKlu8OPeeL6?= =?us-ascii?q?ODpmfAksCIQksq1kwWl0hJ57523tk/c0CMTUAg0KORFwgVNcrFMQxactBd9GbS?= =?us-ascii?q?fSmTquXA2oh6P5+nFuDvQ+6Or7gbjV65HAYzHoQM8sQAEoOq0E7GMcftNKQFxg?= =?us-ascii?q?k15AT3OFWFC+xEeBaMkDcdvc6/yp523Y5GKzESB2V9LD+75rHNpg8lmPCDRss5?= =?us-ascii?q?Ym8GXosYMXI7QNa6lDBdv3RBCjm3z+0YxROe4D/7oyTfECPzb8F/ZPuOYxNjFs?= =?us-ascii?q?228y0l86eqkV7X7oneJ2biONt/ptDP7OQap5CbC/9JVrR9rVnTm5NZR32rVG7P?= =?us-ascii?q?F8S5J57uZIkwddb0EGq1UkSjizIpSMf8JNWtLrKIgA7yQ4ZUrImb0SssNc+6Dj?= =?us-ascii?q?ERBw18p+cd66JgfQcDeYY0YQb0twQiMKyyOBuY0tSrQ2aqNTtWT/lewP6naLxW?= =?us-ascii?q?zysjdPS1xGEmTp4k0+m96VQNS40SjhHC2fajYJFTUSfpGnNHfQXPuTE0l2lmNu?= =?us-ascii?q?c8xOc/3BPIvkcdMzCNaOxmdnZEs8s6BVyMPXV8EnA4SEOEjYrf/g6s2Kgf8DFZ?= =?us-ascii?q?n9ZVzeJKrmDxvprfYTKqX6yrr4/avjE7YtgnuaJxN5XvIsWbtJ/EmDzQUoXQuB?= =?us-ascii?q?WfUCGmD/pahsRQICVATfZTh24lP9cLtpBc5kovSMg+PadPB7M2prGqczZkCjQS?= =?us-ascii?q?zSABXYOawDMCmvu826fdlhqIapQiNh0Ev4lCgtsaVy52eTsQqra+WYvMi2KKTX?= =?us-ascii?q?MGLxsU7QRJ+A0PjJRwfvz/7IrOUpBM1yZco+hoXSvTCplo61z7R3mKjlj6Uvqu?= =?us-ascii?q?j/ek0h5VzPLo1tkbWQBwCVJBx+lIikQoKKt7K64Kvo7FqjWIb1/1vHrxyOu6I1?= =?us-ascii?q?lc0dfUeEfiDIrCrmXxSTEc+WcOSo9R1n7fEZUSkwx2aKYvpVVML4Cmelrw5zM+?= =?us-ascii?q?3YRpGqO0Vca1yFY5tXwGXTulE8JdC+F6t1LaQDNkb4q3p5XlOpVSR25Q94eeq1?= =?us-ascii?q?pCkUViLTC2xoRGJ8FK+D4MUyBFoS+Bs9uqVM1Dxch2AocUItd4v3fyArlEOZaW?= =?us-ascii?q?o30ytLzi0XrZ+zc7sFeh2jq8B7W4T+VC/20FGwUpIWueplMoD+s2/WfY6krNvU?= =?us-ascii?q?xs/+dHGriPil18ryxnHpBTADZFz3OlIk9yTHlHsuVaNL/af9ZaQ/YseR+lIwY+?= =?us-ascii?q?GuI+30yV4UF0mm/0YzB1tgtf4C3dQxU4VSwOjbv3nz0RtN2nMycAS51UdTUhcz?= =?us-ascii?q?vFKwWDlCBXphlfcVtlW5QEDdte5r4Uw5NU/tLcRkaoNy4FRgZuNgUi0fpQjURD?= =?us-ascii?q?qlmXeTjBDQq0cvbCqh93fcCPo8OyMfv24hxHhZ39sOAk6aoMWmeqmQuzTtDCt4?= =?us-ascii?q?X8rMGFtlOSdKfkNO2xeWTOTDbQghysh7ooEpfH8jPPPwpcLpl11WArYYP9CWLR?= =?us-ascii?q?OxRJOb4bLVJBVa9mcdVGvvxaZ8h8daYT56BiGxKHSQnzGIG0qPlGKUjTSirAIy?= =?us-ascii?q?qd9eywvJzc4abbSef+esyG32zHTL5vPpdm9Tn7HK/n0ZdF+krqwPhi6196REPd?= =?us-ascii?q?MyCGsdThPB8E69ekdkv+pJ0mBzfWDI13kHr3yUFKb9AXTDGy8JQE1JNZ7279Sf?= =?us-ascii?q?5i0kftruJd6qJp6ZQz47B108e7P7nSKfVdsU9jHBeUGh9m9pI3AGhwX2pRePMe?= =?us-ascii?q?KO/NfaQFisDjs+X3GLYT6B2R5eNZdcfHKFvblcSkDDGTVwBEnBwdpjEANguTye?= =?us-ascii?q?SJm6lqRsa5veL5wF4i40CiLh4ay7Bg/YWE9bCSpO/QdBvRyaILWrbxS8P2s7Qs?= =?us-ascii?q?v1+S5fw4m74PYGN1ZRanHPIaVs4HyWfq1boqwj40E8PfA7Lg/+ZOV3AjkTLmlZ?= =?us-ascii?q?B9BVIWFe4KEreQ4YRRhGE4m/feNtEMdKBNhHqPHwa+ErAe0X6r9zeXIG59jxHB?= =?us-ascii?q?zhHwQGez7Fvooi99WibD0snsnVFUVratA0deRS2pOVV3sDmXJgrnqML3ubgp7E?= =?us-ascii?q?ExKmHkstaNmXCgOLNRGs3zPt2cIS86pFINlpIxXcCv2ZoGGdWhPNcR7Wt+YeXE?= =?us-ascii?q?52OsiS9BrL9Nh5DC7cGN5vXXAX6ggrWfq7WKwjBY1nc4sk8k59ClN/HB/duKTO?= =?us-ascii?q?q012cfSCd/oQjBXwWvprzdsV8UJVSB0F3Xl4wSItFZwX4421n85Oc+Xd0+7wpe?= =?us-ascii?q?FoPPZv8YozD8Jif0y06FY90rTimezydXHlXtHFl8A6g83WL9sdnHlXjO5lIoQZ?= =?us-ascii?q?NweFb/hRxtCIU4K1wi50QLwiYZFggNcx+bBqmyBUv5NYsESVQDaROf0bihYKg3?= =?us-ascii?q?w1d8wryx6+/IduF8HLACNuhHgQ6BgldbAYgasasAT7JgY1Vd7rLYphD+C4j7WP?= =?us-ascii?q?jrjXgwNfywQs1B9MAWqXsj7RilRxqh75dD4KwXiJaWea5YeZLMptxz71975T4T?= =?us-ascii?q?cSxAmBl/jhKjXu8GuO/u+cPbv4S06umwSKkhXeIX9wI7B25mlZv/nEgjoc3L1+?= =?us-ascii?q?dbUoDakoX/8BtDInGQuoba0gV8KfIUJIK2eLZt7GkIJy8DKH0QJ9WWduM84yh3?= =?us-ascii?q?MDrJ/VBCBdkMZdwANsrXhQ9UklHpWK1U9sfDAl+XEZtzeNwo72v5zzA165g8Xv?= =?us-ascii?q?/76DCoIZDf7ldNP+5MjSh3jNLNvvQVzubSCCkZ5nmZcRt1zjmBy5aTEfbw+/uD?= =?us-ascii?q?yNXOW1MBBC42XJ9XJCCe9gy/Wuq1iJLpXxuI6s/pnp0+cFifRnqvk6ker6lMEO?= =?us-ascii?q?FAiiTn3jdEDYD6neiVs8e25GtRqFJHDJ557QfZF6VHIpV7JRP4m9GkRkdmHCvw?= =?us-ascii?q?Zt3Udho1teqSx+cM//txN0vkao8GORII0bT65mRJTgF2Ur75ok6ZXf4NZNthUP?= =?us-ascii?q?7EoW5a6YR8K68IO1iRo4fqoSlMqFA3Bg8pdbAxoydedkbQhg1UW7z7tKQGigQC?= =?us-ascii?q?Td5zoVVMFn6oOGIi+zrHUrxYjK+QCPMJ9TWTSrYBU15yPiN/RBO1345ue6CykP?= =?us-ascii?q?BCvW5HkTlxoP8w0zxpXBG8ozHjp7oR2TI8/7G1rDoBtmBeTuWFiivGFFpNwvIL?= =?us-ascii?q?jacaFnbj5kexYHYGbITo5rloO97s9Y4743QweR8jZTEJXfy8CyHsiKOFGo6PsN?= =?us-ascii?q?VchB6LosnBcb+zLSwPNrsgyBPjRn590hPdnBZp62YLXDSg7ME+K4W5JMklxzCk?= =?us-ascii?q?GW7Fe1YQ+qlJqtf+tUYXTOsqblNs2GRj0tadSS0LX8HPH3s1gRUlaWVDa5JP8x?= =?us-ascii?q?gaF7MngjyQpKlJ4hkUYCvIEoSi4oTQn9nH2XczTddu3W/XqLeKhpU03315gd90?= =?us-ascii?q?6DCBuGgKfezCT8BsGmTz1ptYyeHmaPWttucHSYV4x7SlVP8PKdKj+Wyw2JVrRk?= =?us-ascii?q?Cp3LIeEESlMOUb3LfUTz+lSXGEWeSMa2WMnTY5M07q5RmvKl03adtKoFEmP+vH?= =?us-ascii?q?h55cixfhXq1uSiWXv1/bw3QpMfkGeAIupIenZwsKQfYeZ+iBJOgh3fo+BUAQb3?= =?us-ascii?q?/TAyR2DfO2vkSpnIdhPXVv/UT6bv73/gDgLtSSBgEOEZTGoZ5p5fy6WmWBNGd8?= =?us-ascii?q?zB1zOUl57PvfF1Utue9fbZmRmcLch9Jl3u4Zb/1tKzEyusYPmoJ/7omZyMKKcR?= =?us-ascii?q?DSzpbxItHYufqYDOfcz0QtfGFVTLwZbRnz54okIt4zQ6fTEqdBvRQAGag6R4Qs?= =?us-ascii?q?OHzv+6FyMAN+aRXRZLCzgsn2uuKLeIVbqGLM4lI3NifctAUJyuaoQgxjc5Cqm3?= =?us-ascii?q?LyLYg+Rj1fq91tCwNmE5VUFsIBrgqnBpuUl7+hi9+15Ux2oegKsbD/CvrSztS2?= =?us-ascii?q?w51xX4RG5UyMJDvQCrFrgl5kjuuunPjNyZzxCcL+edMeSud3WGnFaqXJHo+nMD?= =?us-ascii?q?KBJtr8e1Ja876byL95VRGRaz7iUqqesC2rLu5k4Vk6yoNkYOrT1iIi4K/B1Nv0?= =?us-ascii?q?eW5buj+prWSVO5tH8FzKGeveUgpQSfqE9mZlAKIWYZLw9OcPKtwi3MOc7hJy7D?= =?us-ascii?q?tY1suFJLKtrkjW2kJ0bZjbNlfm2z4lWYkWJxSyKVAsjnHdqnTcB3RcM8elJc5i?= =?us-ascii?q?jtaJDhzi+VNxln81ZmFbAWfoRsmeOXId282gYA2F7x9LD9kZk+6wY044ubW4Sf?= =?us-ascii?q?N0NZVdheWqqLIHnM5sKy7VWMdaPyDQLLlxPjdKEOXPpV4obQAAs7g0XIc1eJeP?= =?us-ascii?q?LFkAMEeaxiP41RHC3lHsd9ywyKaJJz4b8nddwLLG1jhDvBK0ueufgs3/ULDZa4?= =?us-ascii?q?z2XPHSMCo5TD2aQyo9EVqx81e+p/UEpOaYIXsYol0MeS2dEwkfpqRurdjLEm/T?= =?us-ascii?q?gvdvfIYUi/+GQSzwUzN3lK4zBiZNqECNTOEOGhXWbn/7nWpcoxauJ/FW8nL5dL?= =?us-ascii?q?2YwaxVV/YRAotWff2TW8HYduxGJzc0ijUZP/6xf9LGoLkiyFLITHUWE63T+V2A?= =?us-ascii?q?SE6ZWOecxzP2XYkPuYg7pDYo8MrKniBrC6TII6qfpzm2/466iSaYvvfeVnMsY0?= =?us-ascii?q?wum+8CBnOOwBxeJ2EFEd0Vv1vtQqGYbUZWyH0pkf5u2wMLeAlrSX1u3HhWk+q8?= =?us-ascii?q?F8BaUlMUkn2hQOcHbFF2CzMw+1WG4gvsbtwc6ojvQDpF+78NT5cNBOU544nQfq?= =?us-ascii?q?0LybAm2yw1jjY9tnC0C1pbxiCI9anRGrk0krRG7G9+9PFsX1qTRCvff3KByIeg?= =?us-ascii?q?CMNJ3g9hpHnl04zfueU7Z+gSnJ1wHFpfWXE+Hdva5z0UFDis1Q=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2GrBAA3YwtZ/wHyM5BcGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwEpKDqBDI5zjzEBAQEBAQEFAYEFHYkVjio8KAuKR1cBAQEBAQEBAQIBA?= =?us-ascii?q?mgogjMiDUYpLwEBAQEBAQEBAQEfAg0eJQEBGQYBAj0BGx0BAgECCQEBBRACMQg?= =?us-ascii?q?DAR8RAQUBHB4WiDqBMgEDCA0ECqQ5P44MBQEcJgKCYgWDUwoZJw1WglgBAQgCH?= =?us-ascii?q?gIBBRKEPYFKgiQ2hgaHCB8FiUKUI4cbgzOIOg2CBIhsJwyGRJJtM4EVWIEKLiA?= =?us-ascii?q?hdIRLgg91AYkAAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 04 May 2017 17:25:44 +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 v44HPb2G030104; Thu, 4 May 2017 13:25:43 -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 v44H2jfN034895 for ; Thu, 4 May 2017 13:02:45 -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 v44H2iik022714 for ; Thu, 4 May 2017 13:02:44 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1BSDQDqXQtZ/7CAVdFdHAEBBAEBCgEBgywpKDqBDI5zjzcFAYEFHYkVjm0OHoV4AoRMVwECAQEBAQECa4U+BkABGx0BAwwGEDsjEQEFARw0iDqBMgEDCA0ECqQ/P44MBQEcgwoFg1MKGScNVoJYAQEBAQEBAQECAQEBARwCAQUJAQiEPYFKgiQ2hgaHCB8FiUKUI4cbgzOIOg2CBIhsM4ZEkm0zgRVXgQouICF0hEuCD3UBiQABAQE X-IPAS-Result: A1BSDQDqXQtZ/7CAVdFdHAEBBAEBCgEBgywpKDqBDI5zjzcFAYEFHYkVjm0OHoV4AoRMVwECAQEBAQECa4U+BkABGx0BAwwGEDsjEQEFARw0iDqBMgEDCA0ECqQ/P44MBQEcgwoFg1MKGScNVoJYAQEBAQEBAQECAQEBARwCAQUJAQiEPYFKgiQ2hgaHCB8FiUKUI4cbgzOIOg2CBIhsM4ZEkm0zgRVXgQouICF0hEuCD3UBiQABAQE X-IronPort-AV: E=Sophos;i="5.38,287,1491278400"; d="scan'208";a="6040816" Received: from emsm-gh1-uea10.corp.nsa.gov (HELO emsm-gh1-uea10.nsa.gov) ([10.208.41.36]) by goalie.tycho.ncsc.mil with ESMTP; 04 May 2017 13:02:21 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3A3SYSVx2kqdr1VynWsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?seIVLPad9pjvdHbS+e9qxAeQG96KtbQa0aGJ7+jJYi8p2d65qncMcZhBBVcuqP?= =?us-ascii?q?49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6?= =?us-ascii?q?JvjvGo7Vks+7y/2+94fdbghMhTexe7J/IAu5oQjTucQdnJdvJLs2xhbVuHVDZv?= =?us-ascii?q?5YxXlvJVKdnhb84tm/8Zt++ClOuPwv6tBNX7zic6s3UbJXAjImM3so5MLwrhnM?= =?us-ascii?q?URGP5noHXWoIlBdDHhXI4wv7Xpf1tSv6q/Z91SyHNsD4Ubw4RTKv5LptRRT1ii?= =?us-ascii?q?kIKiQ5/XnXhMJukaxVrhGvqRt9zI7ae4yZKOZyc7nBcd4AWWZNQsBcXDFBDIOm?= =?us-ascii?q?aIsPCvIMMPpcr4bnoVsFsB+wCheqBOPsyz9IgGT21rA93us7FQHJxgogE8gSv3?= =?us-ascii?q?TUttX1NbwSUfyyzKnQzTXMcelW1S3/6IfWdBAhovCMXbRrccfKxkkvEhnKjlSU?= =?us-ascii?q?qYD/IzyV0eENvnGd4uF9W+yvjGsnpBtwojip3soskJfGiZ8Vyl/e6SV12po6Jd?= =?us-ascii?q?q9SEN9fNWqE4NQujmEO4dqRs4uWWJltSYgxrEbp5K2fzIGxIklyhPec/CKd5aE?= =?us-ascii?q?7gjtWeqMOzt1imhpdK++ihu07EOu0PfzVtOu31ZPtidFksfDtnQK1xHL78iIUP?= =?us-ascii?q?p9/kO41TeBzQDf9vhIIU4pmafZKpMt2LEwlp0UsUTMGi/5hl/6g7ORdkUh4uSo?= =?us-ascii?q?6uLnbav6ppKEKYN4lgXzPr4tl8G/G+g0LxYCUmuB9eih1rDu/FX1QLBQgf03lq?= =?us-ascii?q?nZvoraJcMepqOhGQBV1pws6xClAzi60NQYh3gHLElZeBKAl4jpO0/BIOriAfe9?= =?us-ascii?q?nVusljRrx/HAPr36GZjNIX3Dn63gfbZ58UJT1A0zzdVH65JOFr4BOO7zWlP2tN?= =?us-ascii?q?HAFR82LQi0w+fhCNVg2YITQn6PA6+FP6PStl+E/OQvI/KWa4MPtzb9LOYltLbS?= =?us-ascii?q?iioilFsce7S59YcGY3C/WPJ9KgOWZmS/rM0GFDIjugM4BM7njl6DVyUbM3+2Vq?= =?us-ascii?q?R67TEhCZm6Cp/DS5rrgrGH3ya9BbVZY2lHDhaHFnK+JNbMYOsFdC/HepwpqTcD?= =?us-ascii?q?T7X0E4I=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0H3AwCCXQtZhrCAVdFdHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgwGBC4EMjnOPNQEBBoEFiTKObSyFeAKETFcBAQEBAQEBAQIBAhA?= =?us-ascii?q?BAQEICwsIKC+CMyCCQwMDQAEbHQEDDAYQOyMRAQUBHDSIOoEyAQMIDQQKpD8/j?= =?us-ascii?q?gwFARyDCgWDUwoZJw1WglgBAQEBAQEBAQIBAQEBAQEaAgEFCQEIhD2BSoIkNoY?= =?us-ascii?q?GhA4Mgm4fBYlClCOHG4MziDoNggSIbDOGRJJtM4EVgWIuICF0hEsfgXB1AYkAA?= =?us-ascii?q?QEB?= X-IPAS-Result: =?us-ascii?q?A0H3AwCCXQtZhrCAVdFdHAEBBAEBCgEBFwEBBAEBCgEBgwG?= =?us-ascii?q?BC4EMjnOPNQEBBoEFiTKObSyFeAKETFcBAQEBAQEBAQIBAhABAQEICwsIKC+CM?= =?us-ascii?q?yCCQwMDQAEbHQEDDAYQOyMRAQUBHDSIOoEyAQMIDQQKpD8/jgwFARyDCgWDUwo?= =?us-ascii?q?ZJw1WglgBAQEBAQEBAQIBAQEBAQEaAgEFCQEIhD2BSoIkNoYGhA4Mgm4fBYlCl?= =?us-ascii?q?COHG4MziDoNggSIbDOGRJJtM4EVgWIuICF0hEsfgXB1AYkAAQEB?= X-IronPort-AV: E=Sophos;i="5.38,287,1491264000"; d="scan'208";a="6663723" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mail-wr0-f176.google.com ([209.85.128.176]) by emsm-gh1-uea10.nsa.gov with ESMTP/TLS/AES128-GCM-SHA256; 04 May 2017 17:02:11 +0000 Received: by mail-wr0-f176.google.com with SMTP id w50so11301269wrc.0 for ; Thu, 04 May 2017 10:02:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=4C7AR0vxZwN7+ukxQ2amw6gTWqPoaoRUg3JkeZw6J7g=; b=BOHCpOLkf83zxXl4BlbUeGNq7pheyUCCdjIM6xJ0GTzRN30SUQVX4/gihn6za/8Flf +RTGn5hzUbuQ+JMogdqLdRTXTrwg+O6Og+94Xb1H08ipkG+xMHYr85G/o2cmzEwInI1p BZsPddkwFnAMHc0XBC1byyBFiaP+8Ippd18tqFpGxLvWD+TMtlIZNWCBh+NlmwNRxTYQ w4g45FX2TTsQ573FG67M2fdxsFYvm2X5pyFnauKR2KeXi/81lrC9NsUmB2TlhtWLkfpN NcIvGKIdiHnCzTO+pOkRA7fiJhA0Oca7RxBVkGOqQLGhCkM1afzocG+CbHfr3TxIJ2rN UNzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4C7AR0vxZwN7+ukxQ2amw6gTWqPoaoRUg3JkeZw6J7g=; b=S54Hpl4LJu7D+eIkW+G/mkwEeeHviRrXlC8NnUDJVOb6TYlyMWj/j+pTGbEFKu/sIR iKorpv8cq0BMLLHLQdr4GGyBwqiBC5BQIsJs6FjHwOpsq9X7yvqyapWSrVz7BG4nxvdM 1WgPkGCQr02S9licczORfV3A0G4njsYKH+4GplkRNm4xQ0iIgdGuJStayhrgAFrxH3KD wpeL+85qt0bwMC0a358ij7AB34HB+aQzAXJThix5BGDSJHAL9C7DnepZQ/436m94u58f qzKAD32e1ivlaLmjd1KqDksULyCdTM/FHwsdn5pKciT2Ccr8IbWChbJoY8dEAyIyyvM5 pSTg== X-Gm-Message-State: AN3rC/4T5vESF3O59pLFdbRfXB4yDOWwoX8Y9ik0YUrUKgL0//ZIsGme fmbna/v+U2zaXw== X-Received: by 10.223.160.240 with SMTP id n45mr27660550wrn.198.1493917329057; Thu, 04 May 2017 10:02:09 -0700 (PDT) Received: from alan-laptop.carrier.duckdns.org (host-92-31-3-16.as13285.net. [92.31.3.16]) by smtp.gmail.com with ESMTPSA id w136sm1808149wmd.0.2017.05.04.10.02.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 May 2017 10:02:07 -0700 (PDT) From: Alan Jenkins To: selinux@tycho.nsa.gov Subject: [PATCH 6/6] policycoreutils: fixfiles: deprecate -l option Date: Thu, 4 May 2017 18:01:22 +0100 Message-Id: <20170504170122.26882-6-alan.christopher.jenkins@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170504170122.26882-1-alan.christopher.jenkins@gmail.com> References: <20170504170122.26882-1-alan.christopher.jenkins@gmail.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: Cc: Alan Jenkins Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP ...and write log messages to standard output. Some versions of fixfiles in 2004 created a logfile by default. Apparently they also used `tee` to log to standard output at the same time. We're also told that the logfile was implemented because there was too much output generated for use on a tty, and it scrolled out of reach. https://bugzilla.redhat.com/show_bug.cgi?id=131707 In the current version, none of these original reasons for `-l` remain. The logfile is not created by default. If no log file is specified, messages are written to stdin [sic]... if and only stdin is a tty. If stdin is not a tty, the log defaults to /dev/null. When a user runs fixfiles on a tty and finds there is too much output, she is likely to try redirecting standard output and/or standard error using the shell. She will find this doesn't help, because fixfiles is writing the verbose log messages to standard input. I tried to fix the problem non-intrusively, by changing the default log file to `/dev/stdout`. Sadly, this breaks down where you have `echo >>$LOGFILE "Log message"` inside a specific function, which is run with output redirected in order to "return" a string value (captured into a variable). exclude_dirs_from_relabelling() was such a function. I was trying to abstract over writing to both normal files and stdout, but my abstraction "leaks" in a non-obvious way. There is a simple solution. We can write the log messages to standard output. When we are passed `-l` by a legacy script, we can redirect standard output to the logfile. This removes any distinctions between the logfile and "non-log" messages. Some calls to restorecon were missing redirections to the log file. "Cleaning out /tmp" was written to the log file, but "Cleaning out labels on /tmp" was not. There were no comments to explain these distinctions. --- policycoreutils/scripts/fixfiles | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/policycoreutils/scripts/fixfiles b/policycoreutils/scripts/fixfiles index 183efe9..c876432 100755 --- a/policycoreutils/scripts/fixfiles +++ b/policycoreutils/scripts/fixfiles @@ -109,11 +109,6 @@ VERBOSE="-p" FORCEFLAG="" DIRS="" RPMILES="" -LOGFILE=`tty` -if [ $? != 0 ]; then - LOGFILE="/dev/null" -fi -LOGGER=/usr/sbin/logger SETFILES=/sbin/setfiles RESTORECON=/sbin/restorecon FILESYSTEMSRW=`get_rw_labeled_mounts` @@ -128,21 +123,12 @@ else fi # -# Log to either syslog or a LOGFILE -# -logit () { -if [ -n $LOGFILE ]; then - echo $1 >> $LOGFILE -fi -} - -# # Log all Read Only file systems # LogReadOnly() { if [ ! -z "$FILESYSTEMSRO" ]; then - logit "Warning: Skipping the following R/O filesystems:" - logit "$FILESYSTEMSRO" + echo "Warning: Skipping the following R/O filesystems:" + echo "$FILESYSTEMSRO" fi } @@ -151,7 +137,7 @@ fi # LogExcluded() { for i in ${EXCLUDEDIRS//-e / }; do - logit "skipping the directory $i" + echo "skipping the directory $i" done } @@ -240,18 +226,18 @@ LogExcluded if [ ! -z "$RPMFILES" ]; then for i in `echo "$RPMFILES" | sed 's/,/ /g'`; do - rpmlist $i | ${RESTORECON} ${EXCLUDEDIRS} ${FORCEFLAG} ${VERBOSE} $* -R -i -f - >>$LOGFILE 2>&1 + rpmlist $i | ${RESTORECON} ${EXCLUDEDIRS} ${FORCEFLAG} ${VERBOSE} $* -R -i -f - done exit $? fi if [ ! -z "$FILEPATH" ]; then - ${RESTORECON} ${EXCLUDEDIRS} ${FORCEFLAG} ${VERBOSE} -R $* -- "$FILEPATH" >>$LOGFILE 2>&1 + ${RESTORECON} ${EXCLUDEDIRS} ${FORCEFLAG} ${VERBOSE} -R $* -- "$FILEPATH" return fi if [ -n "${FILESYSTEMSRW}" ]; then LogReadOnly echo "${OPTION}ing `echo ${FILESYSTEMSRW}`" - ${SETFILES} ${VERBOSE} ${EXCLUDEDIRS} -q ${FORCEFLAG} $* ${FC} ${FILESYSTEMSRW} >>$LOGFILE 2>&1 + ${SETFILES} ${VERBOSE} ${EXCLUDEDIRS} -q ${FORCEFLAG} $* ${FC} ${FILESYSTEMSRW} else echo >&2 "fixfiles: No suitable file systems found" fi @@ -272,7 +258,7 @@ exit 0 } fullrelabel() { - logit "Cleaning out /tmp" + echo "Cleaning out /tmp" find /tmp/ -mindepth 1 -delete LogReadOnly restore Relabel @@ -325,9 +311,9 @@ esac } usage() { echo $""" -Usage: $0 [-v] [-F] [-N time ] [-l logfile ] { check | restore| [-f] relabel | verify } [[dir/file] ... ] +Usage: $0 [-v] [-F] [-N time ] { check | restore| [-f] relabel | verify } [[dir/file] ... ] or -Usage: $0 [-v] [-F] -R rpmpackage[,rpmpackage...] [-l logfile ] { check | restore | verify } +Usage: $0 [-v] [-F] -R rpmpackage[,rpmpackage...] { check | restore | verify } or Usage: $0 [-v] [-F] -C PREVIOUS_FILECONTEXT { check | restore | verify } or @@ -356,7 +342,9 @@ while getopts "N:BC:FfR:l:v" i; do RPMFILES=$OPTARG ;; l) - LOGFILE=$OPTARG + # Old scripts use obsolete option `-l logfile` + echo "Redirecting output to $OPTARG" + exec >>"$OPTARG" 2>&1 ;; C) PREFC=$OPTARG