From patchwork Fri May 26 15:58:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Moore X-Patchwork-Id: 9750717 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 E158060249 for ; Fri, 26 May 2017 15:59:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D134F2624A for ; Fri, 26 May 2017 15:59:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C411A28408; Fri, 26 May 2017 15:59:56 +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 (smtp.nsa.gov [8.44.101.8]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7CCCF2624A for ; Fri, 26 May 2017 15:59:55 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.38,398,1491264000"; d="scan'208";a="7497752" IronPort-PHdr: =?us-ascii?q?9a23=3ASe2b4Bal7VrdabFBU3AS74j/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZoc2yYB7h7PlgxGXEQZ/co6odzbGH7Oa7BydRu96oizMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCzbL52Lhi6twvcu8gZjYZmNKo61wfErGZPd+?= =?us-ascii?q?lK321jOEidnwz75se+/Z5j9zpftvc8/MNeUqv0Yro1Q6VAADspL2466svrtQLe?= =?us-ascii?q?TQSU/XsTTn8WkhtTDAfb6hzxQ4r8vTH7tup53ymaINH2QLUpUjms86tnVBnlgz?= =?us-ascii?q?oJOD4j9GHcl9J+gqRVrhm8oxBz2pPYbJ2QOPd4eazQYd0XSGhPU8pISyBMDZ63?= =?us-ascii?q?Y48PAuYdOOpVqZT2qVkTohukHQSiGePhxCFGiHH136I63eouHg7a0wIvB9IDsm?= =?us-ascii?q?nYodvrO6cJSu210KvFwC/fY/9Kwzrw6o7FeQ0hr/GWWrJwdNLcx1M1GAPYilWb?= =?us-ascii?q?tIvrPzSS1uQXrWeQ8u1tVfqqi24grAFxuCagy9w2iobXm40VykrL9TljzIkpIt?= =?us-ascii?q?24TVd2bNi5G5VesCGaMpF5QsIkQ2xwtyY6y6EGuZ6mfCcR0pgo2xnfa/mBfoOV?= =?us-ascii?q?4RzjTP6cLSp3iX9qYr6yhwu+/VK+xuDzSMW4yktGojJbntXQsn0BzQHf58aZRv?= =?us-ascii?q?dn40us2jiC2xrN5uxHJ00/iLDVJIQ7wrEqk5oeqUHDHijrl0rolKKWbUAk+vSw?= =?us-ascii?q?6+Tgf7XmuoeQN49qhQH6NaQjgtC/Dv4iMggPQmib4v6w1KHj/ELlQLVKiec6kq?= =?us-ascii?q?/Fv5DBOcsXvKu5Aw5R0oo76ha/CSmp0MgAkHUaI19IdwiLgoj0N13UPvz1Aumz?= =?us-ascii?q?j06xnDtzwvDJJLzhApHDLnjZl7fheK5w61VCxwo3zNBf4Y9UC74YLP3oXU/xqd?= =?us-ascii?q?rYAQMnPAyv2OvnFNV82Z8eWWKIGKOZNrjSvkWS6uIgJOmMepcZuCzhJPg9+/7u?= =?us-ascii?q?kXg5lEcffamu25sYcmy4HvR8LEWfenfsgNABEWEPvgUkV+zqlEONUSRIZ3qoWK?= =?us-ascii?q?I8/D47Apq8DYjfXoCtnKCB3CCjE51UZGBJEEyDEXTzd4WDXfcMaTySL9RvkjwA?= =?us-ascii?q?SLigRJQu1QyotA/m1rprNO3U+jcXtZj7zth6+/XTlQ0u9TxzF8mdy3+CQHpqkW?= =?us-ascii?q?MORj82wKd/rFd8ylidz6d3neZUFdtJ5/NGSg06L4LTz/RmC9DuXQLMZsqGSFGg?= =?us-ascii?q?QtWgHD4+UNYxw94VbklnBdqilBfD0zCtA78PmLyBHIY0/b7E33jtO8Z9zG7L27?= =?us-ascii?q?Q9j1Y8WMtCLnGphql69wfPHYHJiFmZm7ysdasCwC7H7H2DwnaWvEFETA5wVr3I?= =?us-ascii?q?XXEZZkvKs9v54l3NT7qwBrQ7KAtAydWPKqxSatL3i1VGQe3sONXaY22qnGexCg?= =?us-ascii?q?yExrSWbIrlY28dxjnSCFAYkwAP+naLLQg/Byamo2LYFzFuEFbvb1rt8el4sn+7?= =?us-ascii?q?SFU7zxuJb01gybq65AQZhfqCRPMPxrgEojsuqy1oHFah2NLbE8GPqBFmcKVYYN?= =?us-ascii?q?M9+0tH1XnDuwxmIJOvM7puhkUAfARzvkPu0Qh3C4pbnMc2rHIq1hdyKbmC3FJP?= =?us-ascii?q?bTyYwYvwOrrRKmXo+xCvcaHW0EnE0NmK4qcP9Og4q1L7sQ63Dkot6W9n09hO03?= =?us-ascii?q?aH/pXFFhASUZPqUkYv8xh1va3VbTcn64PTz31sPrG+siXe1NIxGOsl1hGgcs9R?= =?us-ascii?q?MaOFEA/yFtMVB9K1JewkhVemcxUEPPpI+64sJcOmcPmG17C3M+Z8hj6min5H4I?= =?us-ascii?q?9l2EKW6yV8UvLI34oCw/yA0AuHTS3zjFG9vcD2goBJfjQSHnK+yST9H45QaLZy?= =?us-ascii?q?cZwMCWe0LM293s9+iIL1W35E6F6jAEsL2MyzdhqRaFz9wBZd1UcNrnykniu40i?= =?us-ascii?q?Z4kzYzrqqQxCbO2fjtdAIbOm5XQ2lvlU3jLpWuj9AbQkeodRMkmwG56kb/3aRb?= =?us-ascii?q?o75/L2bLS0dSYyf2N31iUre3treaf8FA8pcovjtMUOSgYVGaTaXwowAG3CPiAW?= =?us-ascii?q?Rewiw7dzCwtZnjmRx1ln6dJm5prHXFYcFw2Qvf5NvESP5K0DoGXi54iSLLBlWn?= =?us-ascii?q?JNmp+9KUlpnGsu+kUWKtTJtTfjf3zYmYriu0+XVqAQGjn/C0gtDmHxI10Svn19?= =?us-ascii?q?Z0TyXItw3xYpf12KSgKu1nY0xoCEX768pgFYF0ipEwi40I2XgGmpWV+mIKkXvu?= =?us-ascii?q?PtpG2KLxdn4NSCUXzN7S5QjqxFdsLmmVx47jUHWS3NdhbcGgYmwKwiI989xKCK?= =?us-ascii?q?CM4bxanCt6vka4rQXLYfRngjgdyfwu6HgVg+wSvAotzyOdDaoIHUlfJyDskA6I?= =?us-ascii?q?79+mpqVNeGmvaaSw1FZ5nd25CLGCoxpcWGrgdpc5AyBw6sR/MFTR0Hz88YzkY8?= =?us-ascii?q?HQbdMVth2VjxjAlPJZKJQvmfoWnSBnI37yvWU5y+4nihxjxYu6vI+DK2Vp4q25?= =?us-ascii?q?GAJXNjr7Zs4I4THtkLpRnt2M04CoBJVhFS0BXIH0QvKwDDISqfPnOh6WEDImt3?= =?us-ascii?q?ebHaDTEhWF5Eh9qHLPF4yrN3aRJHQCyNVuWB+dJEtDjwwOWjU1gII5HBiwxMP9?= =?us-ascii?q?aEd5+iwR5lngpxtP1O1oMQL/X3zcpAi2bDc0U56fIwRK7g1Y4EfVK8Oe5PppHy?= =?us-ascii?q?5E5p2hsBCNKmuDagRQF24JR0iECE77Pra049nA7/aXBvClIvvTerWBt/ZeV+yS?= =?us-ascii?q?yZK01Ytm4iyMOdmRMXlsCP07wEVDUm5jF8TfhToPVzQdlzjRYM6DuBe85ip3o9?= =?us-ascii?q?ih8PTtRQ3i/pWPC71PPtVv4Ry2h7mMN/KIjiZjNTlYzo8MxWPPyLUHxF4dkTxu?= =?us-ascii?q?dz22HLsctC7NUKLRlrZZDxEBbSN/LsxI77gz3gNVI87Ulsv11qJkjv4yE1pFVl?= =?us-ascii?q?zgmsW3asERJmG9M13HBEiVO7SaOT3Lw8b3YaaiRrFKiuVbqQGwsy6BE0D/JjSD?= =?us-ascii?q?iyXpVxe3POFCli6bOgBeuIa4cht2B2jsUs/pahqhMNBtlT0227o0hnHUOmEALT?= =?us-ascii?q?hwaURNrqef7SlAmPVwB3RB7mZ5LemDgyuZ9fPUK5gMvftuGCt0k+Va4XQhxrRP?= =?us-ascii?q?8C5EQeZ5mCzIrt5hu1umiPWAyiJ7UBpSrTZGnIyLvV98NqrE7ZlPQ3DE/A4K7W?= =?us-ascii?q?WLEBkFvcdqCtj1t6BX0NjPm7r5KC1e/NLM4cscG8/UJdqBMHo7KxXpACbUARAL?= =?us-ascii?q?TT6qL2HfnFBdkP+T9n2TtJc6rITjmJsURb9fTlA1EekaCkt9FtwYPJh3Ri8kka?= =?us-ascii?q?KcjMMQ+HW+twfeS99VvpDdTP2SH+7iKC2DgrlHehsI26n3IZ4XNo3m3UxtcEN6?= =?us-ascii?q?kJ3WG0rXXtBMoiphYhUyoEpT7Hh0Vncz1F79agOx/H8TEua5nhg3igt6ZeQi6i?= =?us-ascii?q?zs7kwtKVXUviswl1M9mdL/gTCeaDTxNru/XZlKCyrosEg8Koj0Qwd6bQ21m0xp?= =?us-ascii?q?LyrLSKxKgLthb29rjhXQuZxVGf5TVadEegMfxemLZ/U01lRRsj+oxUBd6uvbF5?= =?us-ascii?q?RvjwwqcYayoHJG3gJsdt81JajLK6pOwVlcnKWOvjWn1uop2g8RO14N8H+OeC4P?= =?us-ascii?q?oEEIKr4mJy+y8ux27gyDmiVMeG4XWPowpfJl6EA9Nv+cwCLn1r5MNlq+N/eDL6?= =?us-ascii?q?+DvWjPi9KISEsq1kwUj0lF4aR20cA7fkqSSU8g1r+RGg8KNcrFMgFVc9Bd9H7I?= =?us-ascii?q?fSaNsOXB25R1MJuhFurwV++BqL4Ugl64HAYuB4kM9NoOHoKy307CN8foML4FxA?= =?us-ascii?q?426wTqPlWKEfNJeByTkDcdvc6+zIV73Y9DKTEBGW99Kzm45q7Lpg82h/qORMo5?= =?us-ascii?q?bW0EXosFK302Q9a3lDRDv3RaCzm23PkZxxae4D/hvCTQDSX8btp5aPeSexxsFM?= =?us-ascii?q?m8+S8j/KiulV7X7pLeKnn+NdRloN/A9+UappeAC/5PQrl9tVrcl5NfR3ywXG7F?= =?us-ascii?q?CcS1KIToa4kwcdz0DW63UkehhDIxTsfxOsutL6eTjA70QoZUtZWU0yo4Nc+hDD?= =?us-ascii?q?0eHQl/p/0b7qJmeQIDe4Y7YQLvtwkmKqOwPAKY0tKoQ2axNDdbVOdfwvugZ7xW?= =?us-ascii?q?zissaem6xGEmTp4k0+m96VQNS40SjhHC2fajYJFTUSvpGn1dYQrPozY5l2h6O+?= =?us-ascii?q?Y9xec/2A/HvUMaMz+VaOxjcHZEsM0kBVOOPXV2DXI1R0OdjYrG5Q6sw7AS/itG?= =?us-ascii?q?ktlJ0O1EsGLxsYTFbDKqRqOrtY3fszA8Ytg+v61xLYvjL9OJtJPEhDPfSoXQvx?= =?us-ascii?q?aEUC69GftanMRQICJGT/lJn2ElJdIJuZBb5Uo3SMg+O6RFCLMwqbCydTpkESkS?= =?us-ascii?q?wDcDWIOE3TwNnvmz1KPflhaQdpQiNxoEv49Zj9QGUi55eCUeqLatV4XLjWOETH?= =?us-ascii?q?YEIBsL5wRW+A0AjpNwfvzi4IfQV5BD1ThWruluXSTWCJln6UH7SnqMjljiSPSt?= =?us-ascii?q?ieup3RhdzPj0yNkURAZ/CVRBx+ZRjkYoMrd3K6gMsY7KtT+IcVj6snr0xuW7Pl?= =?us-ascii?q?dc1craekbkA4rCsGrzTjcT+WYIRYNVznHQC4gSmRJjaKk3vFVMPJymekHm6jM4?= =?us-ascii?q?xYRmBaW3WNu3yFYiqXYGQyaqHMRbC+F6rl3YRD1lb4qsqJX/NJVYWnVQ94GFq1?= =?us-ascii?q?dFjEVtNDa0yYBGJMFX5T4DRyNCoSmHvNSoVs1Mx8t2D54KItdwv3f9GaxEOJiN?= =?us-ascii?q?o304oLPv0HrZ9yo6sFik2DW5A7W4QP5B/20CBgUpIHyTq0c1A+Qw8mfS81XNsl?= =?us-ascii?q?Fu8OdYHbWPjFt+ryhjEZxUATZJz3+lJUxpTHZaq+VaNLjVc8tETvkqYh+vPwYx?= =?us-ascii?q?FeQo3kyO+UF0k2z0Yyl1tgtd4CDSQRU7VTMSgrf2gj0eq8enOTAAR5JPdzUhYD?= =?us-ascii?q?/PKxiHliBPoBZfd0ZqVogDDdZf5rEb25FY/snZREatKCEFXQBiORki3fpZi0FD?= =?us-ascii?q?rF2SeTrBAgqwafbPrhp3cN+NrM6uKfT05xtHhp/isO8j7akDQWOpmRG1S9DEs4?= =?us-ascii?q?D8rsGKtleJdKrgM+2ze2XBQyLIjR+tnrorEofF/zDLMAVFL5l112AkbYLmCW7R?= =?us-ascii?q?MhRMP7gbKFZDVaBmddVGpfhXZ81jeKkX4qJiGwyIRgjxF4y1sPlJMEvcSS7YLy?= =?us-ascii?q?qf7uy1uZjT4qDFSej8esyMwG7KTLl5Pphm9TX2Garm3IFF90Xq3fdt8191RkLd?= =?us-ascii?q?MyCdttjhIB0E5NW6fEv4opIpBS/WAIt3kHf13EFPadcYQy2w/5QE055Z7HHwSf?= =?us-ascii?q?xm3UTtrOJS8KRr5pct77Bv18i0Ob/YKe5Gvk9/HhiUGgJq+401AGhkW2BeePIe?= =?us-ascii?q?KOvKcKQCisDutvr3GLAJ5x2T5+xZc8HIJ0Xblsm4EDGcRgROnB0dpj4CMgucy/?= =?us-ascii?q?mFlrdoSca/u+f2xF8i7kOjLh4C0LBt/52L+rSJpO/Qaxve06QEVrLtRsPpobQm?= =?us-ascii?q?o1mS6uE8lL4SZmx1ZBWqEO0HWc4Zwmfv07wqzT42HMzZBL/g/uBMV24inj38gZ?= =?us-ascii?q?99B0sZFukSHbWV4YRUhn04lPDBNt0KbqBCnX6CFRy+Hb8Yzn6r8C+XL3N7ghzV?= =?us-ascii?q?1hHwXGez7EP3rSBkQCvD1dHjklFPWrmwH0dSUDKjOVVkvzOXIAroqN33tLw37E?= =?us-ascii?q?4sNGzkusiNlGy8N7xJBMD/OMaTIS8vpFIQlpExQMKg2ZwDE9qnPNgR6G1+bufZ?= =?us-ascii?q?626znC9BvqZHh47a4s6L//XaBmSvgLOBpLWM3j9YzGI0vVYl6tCvLvvO/cGFQ+?= =?us-ascii?q?y012YNSCdyow3BXxqup7zaqVAUPFaH0EbNmIwEJNFWx2I41l385Og+XN0z6Bhe?= =?us-ascii?q?FpzeaP8YojDzIjT0y06FY90rTimezydXHlXtHFl9H6g83n7wvM3XmnrL/l0oR5?= =?us-ascii?q?N/d0r5ihxrAYQ4Llgt6FsMwiYZFwgCdwybBqmyBUv5NYsESVQDaROf0bigZ6g4?= =?us-ascii?q?wFZ+wryq5O7cd+B8AbQCNupFhA6UgFdbAo4WsbEZQL9kf19d76vXqwj5BojpQf?= =?us-ascii?q?fpiH0wNeevTcBC68AZsHki7RijSBq885tD6KwbiJ+QfK5efZfMpNx871tg5TMX?= =?us-ascii?q?bSxCmgZ/gAm2Ue8Cv+Du+cPbv4C26um0W6YiWf4X+wIyB2tgk5v6mEojrs3P1+?= =?us-ascii?q?dAVo3Vjpzy8AJMI36Po4va1gdzKOoQJIKxfbZg8XoHKzIYJ30QIdqcc+M87DN1?= =?us-ascii?q?MDXP+1xCBdsBZdIZPcXXgw9bllbkWKpN+crHBFCXF51/d8cy72r40Do164czUv?= =?us-ascii?q?786D+qIpDS90pCP/JYjCRijt3CpukVwebKCCcN/HmZbwN4zT+Fy5aQFfn/5/iM?= =?us-ascii?q?yMvTV1McBCE6SYBdJCCN+Qa/XOq6iI3pUh+I6s/0mJ8+bFifRmCtk6QFvKdMFv?= =?us-ascii?q?RAiibi0jhFCI/1g/OVs9yx6GpYrVBHCJx87QHZF6VfMJR7Pg74lsqxSkh/GCT/?= =?us-ascii?q?YsfUeQQquOaMwecM+ep+PVPkZYAHOhIE16766X1NQwtyUr75oFKZUvgXZNR4U/?= =?us-ascii?q?7Ls3FV6Y1hK68TJledv4blri1VqFwsBg8mdqMwpCRAdkbShA1VR7r0uLkYhwsT?= =?us-ascii?q?S9F5o1FDGX6wOG8l4zrHVLhVg7eRCPMP7zWTVbYCU0N2PSNiWxm1wolhe6O1nf?= =?us-ascii?q?BbtWNLhix9r+Ys0zx6Qxu8virgp7kT1jIk+bG4sigBuHNeQ+WajSjIE1VCw+4Q?= =?us-ascii?q?gacaFXni9US2YGMfY4vq/LlnOcPg+JEn43Q+fRojeCkGUv67Cy3qjqOIBYuPsM?= =?us-ascii?q?lHhBOWvcXDYrCyITIVNrQnxhLpX2J93RTGnBZ07GsLRS2t7NA4K4WmIsYp3zem?= =?us-ascii?q?F2fdelYN5KNJrcTwuEUETOszc1xhxnts3tKARi0XS8zFA3w1gRQ8aWVYbJJD7g?= =?us-ascii?q?cXF6svgjaIuKlK5B0bYDfQEoS454bRnMbI2X8mTddpx2LbvbOFhpI00HJ/n9N7?= =?us-ascii?q?8y+OtG4Ud+PGT89mGmLz2ZtHyezie/WttfgKSIp4yLu7Vv8PKc2j+Xar15VrXU?= =?us-ascii?q?+l3a4SH12jMO8M3r3bSTuqSXWEWeSXdGiBhzQ5PVD85RmmKl06c8lLoFU7MuTc?= =?us-ascii?q?mp5QjQvhXq1oRi+Iv1/U0HQjMf8GdwIxoIqndAgKTOkfZueCIeguxOYzCEALb3?= =?us-ascii?q?/PHCt5F/W6sVizk4hnI39g+1n1Yfzx8gD6N9ufAhsEEY7ar55p/vy6QmOBOWN+?= =?us-ascii?q?wxBpOUl09vvfF04vueNGdJaRh9fQjcxh0eEZb/dtLTE9utkLl4J/6ImU1dyHcQ?= =?us-ascii?q?3QzpnuJtHavPyYD+fZz0s0ZmFQSqAZbh/t54UmIt45XKXeHb5YvRQfBqg6R4cs?= =?us-ascii?q?N2Xr+6F3KwNzdBDeZLKujsnsuO2LeoNep2XK4VIoMCfcpxoDx+SvQgNlaZCqm2?= =?us-ascii?q?7/IIs0RjJGs91tFgVmE5VSFM8aqAqnGZGUkrmhi9Ct40N6p/MKsa3oB/DEytu5?= =?us-ascii?q?24RxX4BE6kGQPTfRBaxrgkF7geSohvfPzIP9CcT4edMLTOJ7WHLKaqfaHoWjLT?= =?us-ascii?q?KDIsz9e1Zc876dzL12TA6cZCX4X6qari2rKu9o4UIhyox3ZODT1iAi76nH2Nvu?= =?us-ascii?q?YGFWviCjrXqXO5ZE9FzKAfbRXwlISfqE7GllAbcXYpXq++sUN9wt3sSc6RFp7D?= =?us-ascii?q?teyMuFP7ShrkjU10J/dJLbKlbp2ikgVYkOIRS/KlcsgXTCp3TcG3tcKM+kJdNq?= =?us-ascii?q?gNaPARzn/1Nxln01Zm5dBmroQs+cOXMF1MK6ZQ2K8h9LDtkEk+C4ZU44trO9Sf?= =?us-ascii?q?N2NZVdg+qnr7YHnshzKyHJWsdaOzrfLKJ5PjZLCeXPvlcoaAYes7cpQoc1eYSO?= =?us-ascii?q?IEQfPUeF0yz90QvC0Uzyd9yrz6uJPicW8nNZwLLB0DhMoRS5uPmDjs3kSrDZY4?= =?us-ascii?q?n8XOTOPyo9SjGaWTMyHF6r+Vi+uPoEu+GXLHwColASfiKSCAkTpr1grdjQEm/f?= =?us-ascii?q?g+tjc4MWhPqCQSD/VDV4lLYuBiZMrU2MTOAMGhLMb3/gnmVcvBevJuFI/X3/dL?= =?us-ascii?q?2Yx7dVV/YQAoRSbv2TW8HYduxGJzc0ijUZP/6xf9/Zr7Y+yFLIV2oZE7LT+V2Y?= =?us-ascii?q?VkGWR+KTxzPxUYUSpYg0tTIi+sjMkS9vD6TII7Gfqia18o62iSaXpezTW2o2bk?= =?us-ascii?q?wrnu0CGmiBwRhHKGECEd0Vvl/iQrLTL3pLgWkkjeNoxg8kZBV4Unoo1GZf2vm6?= =?us-ascii?q?BJ53U1kR2VunXflOSVdwFj54qVeP5QrobPQatMzTTnMY/bwJH9lOZMI04ZXabf?= =?us-ascii?q?NDiM0i2yhr9XBivg=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2EwDwC3TyhZ/wHyM5BdGgEBAQECAQEBAQgBAQEBFQEBAQE?= =?us-ascii?q?CAQEBAQgBAQEBgwEmA2IDgQqDb4Z/hAyQUSFyjAmKSjwoB4V3A4MOVwEBAQEBA?= =?us-ascii?q?QEBAgECaCiCMwwiBEYpLwEBAQEBAQEBAQEBAQEBARoCDV4GAQIgBFUDCQEBFwg?= =?us-ascii?q?FAiIEAgIDAUMQGQWIU4FSqzuBbDomAos5IQWBC4VUgV42gjKEdoM2gmABBJApj?= =?us-ascii?q?XqHIJcDEBeGVZROWIEKMCEIGxWHZFqGTII9AQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 26 May 2017 15:59:53 +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 v4QFxpnS005703; Fri, 26 May 2017 11:59:52 -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 v4QFwP6r247949 for ; Fri, 26 May 2017 11:58:25 -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 v4QFwOM7005345 for ; Fri, 26 May 2017 11:58:24 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1BmCgAfUChZhxy3hNFdHAEBBAEBCgEBgywmZQOBCoNvhn+EDJBRIXKMCYsNKIV8AoMKVwECAQEBAQECEwEBAQoLCQgohUgDAyMEYiAFAiYCAkcQGYhYgVKrO4FsOotVAQEIAgEgBYELhVSBXjaCMoR2gzaCYAWQKY16hyCXAxCGbJROgWEwIQgbFYVZggskNoZMgj0BAQE X-IPAS-Result: A1BmCgAfUChZhxy3hNFdHAEBBAEBCgEBgywmZQOBCoNvhn+EDJBRIXKMCYsNKIV8AoMKVwECAQEBAQECEwEBAQoLCQgohUgDAyMEYiAFAiYCAkcQGYhYgVKrO4FsOotVAQEIAgEgBYELhVSBXjaCMoR2gzaCYAWQKY16hyCXAxCGbJROgWEwIQgbFYVZggskNoZMgj0BAQE X-IronPort-AV: E=Sophos;i="5.38,398,1491278400"; d="scan'208";a="6068031" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 26 May 2017 11:58:06 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3A3NXxPRKWHhcwkggDBtmcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgRKfrxwZ3uMQTl6Ol3ixeRBMOAuq0C0LSd4vqocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDiwbal8IRi3ogncstcaipZ+J6gszRfEvmFGcP?= =?us-ascii?q?lMy2NyIlKTkRf85sOu85Nm7i9dpfEv+dNeXKvjZ6g3QqBWAzogM2Au+c3krgLD?= =?us-ascii?q?QheV5nsdSWoZjBxFCBXY4R7gX5fxtiz6tvdh2CSfIMb7Q6w4VSik4qx2TxDllC?= =?us-ascii?q?kKOjw3/W3OlsB9g79QrBahqhBjxoLZZpyeOvhjcaPHZd4UWGpPUNhfWSJCAIy8?= =?us-ascii?q?YYUAAOUdMuhXtIT9u1kDoAGiCQWwHu7iyDlFjWL2060g1OQhFBnL0hY6ENITtH?= =?us-ascii?q?TfsdL7NKAVUeCv0qbD0DLOb+tT2Tf674jIaA4urOqWXb1ubMXRyVMgFx/fglqM?= =?us-ascii?q?rozlOiqY2+IQuGaV6OpgUPigi28hqwxprTivx9ssionUho0O0FzL6SJ5wIMzKN?= =?us-ascii?q?alS0B7ecapHIVMuyyeLYd6X80vT39ytConybALt4S3cDYJxZkh2hXRceaIc5KS?= =?us-ascii?q?7RLmTOuRISl3hHZieL+nghaz/lWsxvfmVsaqzVlKrjBKksXWun8R0BzT79CLSv?= =?us-ascii?q?p7/ki/xTaCzx7f5v1ALEwuiKbWJYAtzqQtmpcQv0nPBDH6lUbugK+TbEok++yo?= =?us-ascii?q?6+r9YrXho5+RL5d0igT5MqQpgMywH/81MhIQUGeG+eSzzqHj8VflT7VNi/06ir?= =?us-ascii?q?PZv4zCJcQHuq65BBdY0p095Ba7Djem1skYnHYcIVJZeBOIk4jpO1bULPD+Fvew?= =?us-ascii?q?mU6gkDhsx/DYbfXdBcDWI3zClqrxVaps4E5bjgwoxJZQ4IwHJKsGJafLU1L1/P?= =?us-ascii?q?nfCQU0e1isxuHgEthVzI4SWWuTRKSeNfWB4hez+uszLrzUN8cuszHnJq14v/M?= =?us-ascii?q?=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GhEAC3TyhZhxy3hNFdHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgwEmZQOBCoNvhn+EDJBRIXKMCYpKQyiFfAKDClcBAQEBAQEBAQI?= =?us-ascii?q?BAhABAQEKCwkIKC+CMwwMFgRGKS8BAQEBAQEBAQEBAQEBAQEaAg1eAwMjBGIgB?= =?us-ascii?q?QImAgJHEBmIWIFSqzuBbDqLVQEBCAIBIAWBC4VUgV42gjKEdoM2gmAFkCmNeoc?= =?us-ascii?q?glwMQhmyUToFiMCEIGxWFWYILJDaGTII9AQEB?= X-IPAS-Result: =?us-ascii?q?A0GhEAC3TyhZhxy3hNFdHAEBBAEBCgEBFwEBBAEBCgEBgwE?= =?us-ascii?q?mZQOBCoNvhn+EDJBRIXKMCYpKQyiFfAKDClcBAQEBAQEBAQIBAhABAQEKCwkIK?= =?us-ascii?q?C+CMwwMFgRGKS8BAQEBAQEBAQEBAQEBAQEaAg1eAwMjBGIgBQImAgJHEBmIWIF?= =?us-ascii?q?SqzuBbDqLVQEBCAIBIAWBC4VUgV42gjKEdoM2gmAFkCmNeocglwMQhmyUToFiM?= =?us-ascii?q?CEIGxWFWYILJDaGTII9AQEB?= X-IronPort-AV: E=Sophos;i="5.38,398,1491264000"; d="scan'208";a="6146339" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mx1.redhat.com ([209.132.183.28]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 May 2017 15:58:05 +0000 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8C34680086 for ; Fri, 26 May 2017 15:58:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 8C34680086 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=pmoore@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 8C34680086 Received: from [127.0.0.1] (ovpn-125-205.rdu2.redhat.com [10.10.125.205]) by smtp.corp.redhat.com (Postfix) with ESMTP id 375C45C54F; Fri, 26 May 2017 15:58:04 +0000 (UTC) Subject: [PATCH 1/2] tools: add a syntax checker/fixer From: Paul Moore To: selinux@tycho.nsa.gov Date: Fri, 26 May 2017 11:58:03 -0400 Message-ID: <149581428365.13714.3471273055695808786.stgit@sifl> In-Reply-To: <149581413266.13714.10451742889870299166.stgit@sifl> References: <149581413266.13714.10451742889870299166.stgit@sifl> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 26 May 2017 15:58:04 +0000 (UTC) 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: Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP From: Paul Moore Add a simple script that uses astyle to check, and optionally fix, the syntax of the test sources. At the moment it is limited to C but it can easily be augmented to support Perl in the future. We also add a new make target, 'check-syntax', to make it easier for developers to check their changes. Signed-off-by: Paul Moore --- Makefile | 9 ++- tools/check-syntax | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+), 3 deletions(-) create mode 100755 tools/check-syntax diff --git a/Makefile b/Makefile index e230389..9081406 100644 --- a/Makefile +++ b/Makefile @@ -3,12 +3,15 @@ SUBDIRS = policy tests all: @set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i all ; done -clean: - @set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean ; done - test: make -C policy load make -C tests test make -C policy unload +check-syntax: + @./tools/check-syntax + +clean: + @set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean ; done + diff --git a/tools/check-syntax b/tools/check-syntax new file mode 100755 index 0000000..72cb06b --- /dev/null +++ b/tools/check-syntax @@ -0,0 +1,146 @@ +#!/bin/bash + +# +# code syntax checking tool +# +# Originally taken from the libseccomp project +# -> https://github.com/seccomp +# +# Copyright (c) 2013,2015 Red Hat +# Author: Paul Moore +# + +CHK_C_LIST="$(find tests/ -name "*.c") $(find tests/ -name "*.h")" +CHK_C_EXCLUDE="" + +#### +# functions + +# +# Dependency verification +# +# Arguments: +# 1 Dependency to check for +# +function verify_deps() { + [[ -z "$1" ]] && return + if ! which "$1" >& /dev/null; then + echo "error: install \"$1\" and include it in your \$PATH" + exit 1 + fi +} + +# +# Print out script usage details +# +function usage() { +cat << EOF +usage: check-syntax [-h] + +code syntax checking tool +optional arguments: + -h show this help message and exit + -f fix the file formatting +EOF +} + +# +# Generate a properly formatted C source/header file +# +# Arguments: +# 1 Source file +# +function tool_c_style() { + astyle --options=none --lineend=linux --mode=c \ + --style=linux \ + --indent=force-tab=8 \ + --indent-preprocessor \ + --indent-col1-comments \ + --min-conditional-indent=0 \ + --max-instatement-indent=80 \ + --pad-oper \ + --align-pointer=name \ + --align-reference=name \ + --max-code-length=80 \ + --break-after-logical < "$1" +} + +# +# Check the formatting on a C source/header file +# +# Arguments: +# 1 File to check +# +function tool_c_style_check() { + [[ -z "$1" || ! -r "$1" ]] && return + + tool_c_style "$1" | diff -pu --label="$1.orig" "$1" --label="$1" - +} + +# +# Fix the formatting on a C source/header file +# +# Arguments: +# 1 File to fix +# +function tool_c_style_fix() { + [[ -z "$1" || ! -r "$1" ]] && return + + tmp="$(mktemp --tmpdir=$(dirname "$1"))" + tool_c_style "$1" > "$tmp" + mv "$tmp" "$1" +} + +# +# Perform all known syntax checks for the configured C sources/headers +# +function check_c() { + for i in $CHK_C_LIST; do + echo "$CHK_C_EXCLUDE" | grep -q "$i" && continue + echo "Differences for $i" + tool_c_style_check "$i" + done +} + +# +# Perform all known syntax fixes for the configured C sources/headers +# +function fix_c() { + for i in $CHK_C_LIST; do + echo "$CHK_C_EXCLUDE" | grep -q "$i" && continue + echo "Fixing $i" + tool_c_style_fix "$i" + done +} + +#### +# main + +verify_deps astyle + +opt_fix=0 + +while getopts "fh" opt; do + case $opt in + f) + opt_fix=1 + ;; + h|*) + usage + exit 1 + ;; + esac +done + +# display the results +echo "=============== $(date) ===============" +echo "Code Syntax Check Results (\"check-syntax $*\")" +if [[ $opt_fix -eq 1 ]]; then + fix_c +else + check_c +fi +echo "============================================================" + +# exit +exit 0