From patchwork Sun Feb 5 14:14:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9556087 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 56736602B5 for ; Sun, 5 Feb 2017 14:15:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 489DF2522B for ; Sun, 5 Feb 2017 14:15:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3D2A826785; Sun, 5 Feb 2017 14:15:18 +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]) (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 3B6C22522B for ; Sun, 5 Feb 2017 14:15:16 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.33,338,1477958400"; d="scan'208";a="3543047" IronPort-PHdr: =?us-ascii?q?9a23=3AZW9A0BI7nVs+EBSbjdmcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgQKPv7rarrMEGX3/hxlliBBdydsKMYzbWL+P64EUU7or+5+EgYd5JNUxJXwe?= =?us-ascii?q?43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRp?= =?us-ascii?q?OOv1BpTSj8Oq3Oyu5pHfeQtFiT6ybL9oLhi7rQrdu8gKjYB/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?b5MNAuYcM+tXoJXyqVQQohulHgSsGOHixyVUinLswaE2zeIsGhzG0gw6GNIOtW?= =?us-ascii?q?zZos30NKgOVuC1yLPHzS7eZP1V3jf975PIcgs8qvyLW7JwcNbeyU4rFwzflVWc?= =?us-ascii?q?s43lPzSS1uQWqGiW9O9gWO2gimI9rAFxuDevy94qh4LUhYwV0kjJ+Th2zYs6P9?= =?us-ascii?q?G1SFN3bcS6HJZfqS2WLZZ6TtsgTmxqoio217MLtJChcCQU1JgqxgTTZvKZf4WO?= =?us-ascii?q?/xntTvyeIS1ii3JgYL+/ghGy/lW+xeDkTcm01UpKrjJCktnRqnABzxzT5daDSv?= =?us-ascii?q?t65kqhxSyA1xrS6uFZOkA4j7bbKp49zb4wkZofq0LDETPtmErqlqOWc0Qk+uyw?= =?us-ascii?q?5+TmZLXpuIOcOpdphgzxPakigMyyDfkiPgQQUGWX5/6w2KD78U38WrpKj/k2kq?= =?us-ascii?q?fDsJDdIMQWvrW5DBFR0oYi7Ra/Ejin3M0DknkAMVJFfg6IgJbyO1zVPPD5Deuw?= =?us-ascii?q?g1SrkDtxwfDGJafuDo/CLnjEjrftZax95FJEyAov0dBf4IpZCrMGIPL1QEDxqN?= =?us-ascii?q?zYAQU/MwGvwebnD9N91oYEVmKUHq+WLrnSsUSS6uIoOemMa5cfuCzhJPg9+/7u?= =?us-ascii?q?kXg5lEcffamrx5QYdHO4Hu9hI0WfYHrsnMwMEWkOvgojQ+3lk0CCUThPZ3avRa?= =?us-ascii?q?484Ss7CI2+B4fZWo+tmKCB3Du8HpBOfmBJFEuDHmnud4WFR/cMbzmfIs5/nTMa?= =?us-ascii?q?S7etUYgh1QuhtAXi0bpoMvLU+jEEtZLkzNV6+urTlRc09TNpEcud12CNQnpukW?= =?us-ascii?q?wWXT8227pzoUtnyleMyaJ4meBXFcRP5/NVVQc3LYPTz/BgBNDoQQ/OYtCJSFO6?= =?us-ascii?q?Tdq8GjExUsg9w9kQbEZhA9+ilAzM3zK2A78JkLyGHJ008qTA33fvI8Zy1XPG27?= =?us-ascii?q?c9j1k8QspCLmqmhrZh+AjVAo7GiUSZl6KxeqQb0y/B7mCDzXCBvEtASg5/Tb3F?= =?us-ascii?q?XWwDZkvRtdn45kLDT7ioCbk8NwtBzdeOKqpMatHzi1VJXu3jONffY2KvhWi8Hx?= =?us-ascii?q?CIya2QbIDyYWUSwD3dCFQYkwAU5XuJLhMxCiClo2LfFzxuCUnvb1n38eZgtHy3?= =?us-ascii?q?VFQ0wB+Ob01g0bq15xEUiOeARPITxLIEpTwhpy96HVmnw9LWEN2Apwx7cKVbe9?= =?us-ascii?q?M9709N1XjFuAxlIpygM6dii0YAfARvpUzuzRR3Cp5bnMgytnwq1gtyKbmA0FNF?= =?us-ascii?q?bTyXwY7/NqfQKmno8xClc7TW1U3G0NaK5qcP7+w1qlvivAGtE0ot7W9n3sJb03?= =?us-ascii?q?SC+5rKCxASXojpUkYt8Bh6pa/VbTUh54/O0n1sK6a0uCfY2901HOsl1gqgf9BH?= =?us-ascii?q?PaOKDg/9CcsaCNSvKOwxgFWpawoEPOFL+K4vMcKmbOGK2KmxPOZvhDiml3hI4J?= =?us-ascii?q?hh0kKQ8CpxUu3I0IwGw/GfwwuKTDT8g02issDwhIBIfzYSHnCwySL8Ho5eerVy?= =?us-ascii?q?fZoXCWepO8C43Mhxh4TsW3FG7l6uHEkJ19OseRaIaFz9xwJQ31wNoXO7gSu40y?= =?us-ascii?q?B0kzYxo6WDxiPOx/rtdAEbOm9LQ2lvlkzsLpS1j98EWkiocwkpmwG/6Ub82adb?= =?us-ascii?q?uLx1L3PPTkdQYyj2M2ZiX7OwtrWcZ85P7JQovD5TUOShfVCaTbv9rAEA3yPkBW?= =?us-ascii?q?teyygxdyu2tZXhgxx6lGWdIW5orHrXY8Fwwgzf5MDHSP5K2DoGQyd5iTzNCVi6?= =?us-ascii?q?JdWp+8ubl4vbuOCkS22hToFTcTXszY6Yuiq0/2lqAQGhkPCpgd3qChY63jHh19?= =?us-ascii?q?ZxSCXIqQzwYo7x16S1KehnZFVnBEfg68pmHYFzipcwi4wN1ngbnJqV+WEKnnv0?= =?us-ascii?q?MdVexa3xdmENRSIRz97T/gflxFVpLmiVyILhSnWd3sxhasG8YmMX3iI9695FCL?= =?us-ascii?q?yP4bNegyR1uF24oRjWYfhnkTcX0eEu52ICg+EVpAotyT2QAq4THUZEISzskA6I?= =?us-ascii?q?48qio6VXY2avd7ew2VF6ndCgCrGNuBtcWHHjdpclBy9w4d11MEjQ333r9oHkZN?= =?us-ascii?q?7QYMoXth2ViBfAk/FZKIkvmfoOhCpnP3/9vHI+xu4glRxu3Je6vImbJGV25q65?= =?us-ascii?q?BABXNiHtbcMJ5j7tlbpentqR3423BJVhHTELXJ/2QvKyDD0SsvrmOh2VED0htn?= =?us-ascii?q?ibAqDTHQiF6Edpt3jPCYykN2mLJHkFytVvXAGdK1ZCgAAQRjk1hIQ1GRutxMzl?= =?us-ascii?q?bEd54TYR60X9qhdQzOJoMAXwXn3ZpAi2djc+UIKfIwZO7gFe+0fVNtST7uFtEC?= =?us-ascii?q?Fe5Z2stw+NJXKdZwRTC2EGRFCEC0rkPrm06tnK6/KYCfamL/vSfbWOrvRTV++S?= =?us-ascii?q?ypKy1otp4S6MOd+JPnl+EfI7wFFOXW1iG8vHgTUPUDYblznKb86Gvhez5jN4rs?= =?us-ascii?q?648PTxVwLg+5GDC71MPtVz4xq2m7uMN/aMhCZlLjZVzo0MxXnVx7UEwl4SjTxh?= =?us-ascii?q?dzm3HbQGqyHNULramrVLAB4DdyNzKMxI4rok3gZXJM7bjsj42aJ5jv4pC1ZJTF?= =?us-ascii?q?LhlduvZcAQJGG9LlzHDl6RNLuaPT3L3933YaSkRL1TjORUswO/tC2eE0/kMDSD?= =?us-ascii?q?mSfmVwyzMeFMiyGbOQJRtJu7chlzFWjpVMjmZQGjMN9rkT02xqU5hn3QOm4aLT?= =?us-ascii?q?h8dEZNo6ae7SxGn/p/HHZB4WB9LemenCaZ7ffXJYoKsfdxBSR0je1a6mwgy7RJ?= =?us-ascii?q?9CFEWOB1mCzKo9FzpVGpiPKCxSdhUBVUsDpLg5iLvUp6M6XD6pZAQWrE/A4K7W?= =?us-ascii?q?iIERQFusZqB8bgu6BVxdnDjqTzJyle89jM58sTG9DUKN6bMHomKRfpAiTYDQUf?= =?us-ascii?q?QT6uL27fg0tdkfGJ+3KPspc6r4LgmJ0USr9UTFY1DO8VClx5HNweJ5d6Rj0kka?= =?us-ascii?q?SFg8EV/nqxth/RRNldvpDcTf+dG+ngKDODgblDfRsIzqvyLZ4POY3jx0xidl56?= =?us-ascii?q?kZzMG0rKR99NujVhYxQ6oEVM6nh+VXEz20zkagOr+nATE+K7nh8shQt6e+gt8y?= =?us-ascii?q?3s41gvLFrQuCQwiFUxmcnigT2JbTHxN7m/UptZCyrurUcxLIj2Qx1vYg2xgExk?= =?us-ascii?q?Li3LS6hVj7t9c2BkkhXctYJTGf5bTq1FYBgQyeuRZ/o2zVRWsj+nylNf5evZFZ?= =?us-ascii?q?tikxMnfoWtr3JP3AJjasU4KrHOK6VSz1hfnKSOsjWv1uArzw8UP1wN/3+KeC4U?= =?us-ascii?q?pEwIMaErKDCn/uN29wyNhSBOeG8UV/U0pPJq81kyO+WEzy371L5CJVq9N+uFL6?= =?us-ascii?q?OWo2LAj9KHQkss1kMUkElI5aR20cAmc0aOTUAvy7qQGAoPNcXZMwFVaNRd9HvI?= =?us-ascii?q?cCmStuXNxI56MJ+mFuD0V+OOsrgbgl68FgYzA4sM9tgBHoWr0EzAK8foMqQKyR?= =?us-ascii?q?E26QToI1WFF+hJdwiNkDccoMG/zYV73Y9DKTEBGW99Kzm45q7Lpg82h/qORM02?= =?us-ascii?q?bWkBXoQaLH02QtG1my5CsntbDTm3yP8WyA+M7z/kvCTfEjn9Y8BlZPiKeRNmEM?= =?us-ascii?q?u29ikn86iqlV7X9Y3TKHzgOtR8u9/A9Pgaqo2dBPNOV7l9tEndm5JGSHO2Tm7P?= =?us-ascii?q?C9+1J4TwaoU2a9z7FGq6WESliz0pV8fxIMqtLq+QjAHsQoZUqpeU3DYiNM+6DT?= =?us-ascii?q?weFBFwp/wZ6KJ7fw0DbIIxYQT0uAQmK6y/PACY3821Q2mzLTtWTv9fzfi1ZrFM?= =?us-ascii?q?0yUsaeq6x2c6QZEh0+m760gNS48WjhvG3/ase5FeUTTvGnxaYwjAuDY2l21mNu?= =?us-ascii?q?Y03ucz3QjFsUcCPDCRdexoaWtEv9cmCVOUP3p2FnIyR0WAgorb/g6sw7cS8jNe?= =?us-ascii?q?n9ZO0exKqn7+voPfYD+3V6yrro3VvDY6YdggvaJxLZTpItGau5PGgjzfUJ7Qvx?= =?us-ascii?q?WZUC67EvpancRQICJYQfRThG4lOMwHtpBa5kYrUMcxOaBPArE2pr+2cTpkETIS?= =?us-ascii?q?zSgBWoOPxjwNmOG826fBmxeRd5QjPhoEsIlCgtQDUi52ZD8eq7G5V4nMkW+LVH?= =?us-ascii?q?QLKh8J7QtQ/AIAipNwfuf97YXSSJ9MyiJZrOxsXSvOFpho8Vz7SmeMjlXjU/qh?= =?us-ascii?q?kvam3QRLwPLiz9kXQhh/BlZBx+xOjEsnNKl3K7UMvo7NqjKHbl31vGT2xeS8OV?= =?us-ascii?q?ZR19Pbd0fjDIXfr2r9UjcQ+XoORY9A0HvfD4gdkxJlaKY3o1VBOJqmekD/5zM4?= =?us-ascii?q?x4RpGL24VduzyVg8sHgIXTunHd1aBu56t1LXXSFqbIqwqJX5IZlSRHFf+IGFoV?= =?us-ascii?q?dDjEptKzK5yYZbK8xV/jEMXiJArimGsdSuT81D3ct2D54SLddlp3fyBr9LOJiL?= =?us-ascii?q?r30xoLzvxWfT+yogv1ei2DWzB6i4QvpD/2IEAAUpIH+Rp1IzD+s26GjS7E7Csl?= =?us-ascii?q?R1/+ddCbiPiURxoDl9HpBSCDZGz2qlL1FpQHlArepaNLzfc9ZATPkqeR+vJxs+?= =?us-ascii?q?GOYo3kCT4U50nXb5YylztgRA+CDQRAg0WjcLjbjzgzEerdunOTACQZJScTohdz?= =?us-ascii?q?vFKx6cmS1PpBZfbEVqVIoDAtdL/LEb2YVU89HHSUarLiEFRwJtOR4i0fpYjk5D?= =?us-ascii?q?q0SYeSbSDQaycvbPqBJ3d9+LrMG1NPT54BtHioT/ve8i7aUDWnumlReuQd3Fro?= =?us-ascii?q?/8t9yKtleVe6viNe2zf2PBRiDWjR+snbckE4XK/y/LPQpHLJl6zGEpYYT9BW7O?= =?us-ascii?q?JhtKPaQbKFRHVapic9VJvvhaZ9N4eKYO4aJtBgiIRgn1F4yrsfZLNUvcSirGLy?= =?us-ascii?q?WZ7OO/pZzc7abHRejnfMyMyG7NQ7hrMZdi9Tn7B7Dq3Jdc+krxxPhg7V51Rkbd?= =?us-ascii?q?My+fttThOh0E69S4ekvkoJIpASvcAI1sn3r12kFAa80XTjWx/5QW1JxV9HT9Rf?= =?us-ascii?q?9230XorOJS8Lxk5pUt7LBy1ce4P6HSJupGsUV/GBibGh1q9okxAGh4X21RePEe?= =?us-ascii?q?J+rRfasDkcDjsOT3F6sJ6BKL5eBWddzHKFzflcWlDDGTVwBElh8bqTEGNgucy+?= =?us-ascii?q?KFm6hsRMa9vuj5xlgi7EWiLhMd17Bt4pqE+rCUq+DJaRvR0aIEVbLuRs/pqbQs?= =?us-ascii?q?oUyS7+U+lLESYmx1fxGnEO8FW84B3Gfv074lwj83HsPeG7Lg5ORDWGgnnjLhnJ?= =?us-ascii?q?B9G0sZGu8OEbqM54RekX8ym/bFOd0ObqBChmGPGAahErAYzX6r7zWYIHV5gh7U?= =?us-ascii?q?yR79WmWz40HqrS9jXSTD1c/jnVRPWrmxG0hSQzKjOVVkvzOXIAroqN33tLw37E?= =?us-ascii?q?4sKGzks8mNlG+7N7NJBMD/IcGcIS0opFIWkJIxR8ag2YYAGdanJ9cR6n5+ZOPE?= =?us-ascii?q?62y3iy9Bv7tHh43G78GX4PrXG3egj7edq7qQ2j9V0WQ4sks56tC7MfHC/duKTO?= =?us-ascii?q?q012wJVSdwpxPBXwKpqrzct10UNlGL0EbPmIwOIN5Z2GI12Vz46+c4QdI87gNe?= =?us-ascii?q?GpzHZ/MYqjD5ICH0zkqHY9IrSime1CNaHlTxEVRjGag83mfwsNjIlXfW9V0oXJ?= =?us-ascii?q?N/d1f7hRxtEoU3NV4t6EUNwiUdCwQNbgqbDL6wD0T/MYQETVQDaQiA3LWif6c3?= =?us-ascii?q?2ktzwq+g5ODNduF8AqsNOexbjgGQgFhaFJUWsbcdQLJnYVNd8rDYphT6AYj9Q/?= =?us-ascii?q?fmjWYwNeGyQs1C9cAZrH4i7wakShqu95hM8rEbiIqSea5ce5jMu8J84Fl76j4T?= =?us-ascii?q?bCBNhwJ/jxyhW+AGuO/j+sTbsIav6uu2T6YiXfsX+AI7B2tglJv9m0sjrsvJ1+?= =?us-ascii?q?hGRY3al5///BpLI3GUpIbQywN8JvYWK4K3YLZg8G0KJyofJ3ILJteWbucz4i9z?= =?us-ascii?q?PzXJ5lxCBMwMackePMXThQBeklfpV61L9srHBl+YDJ9+d8Ep7mXt0j867YAxUv?= =?us-ascii?q?3+5z+qO5/Q80tBP/RZjCVjjNjCvvQaweLOCCgL5nmUcwN6wiKZy5iDEfnw/+SM?= =?us-ascii?q?yM3MV1wcAy42V5xQKyaF+QO6WOW6jojpUhmT6s/pmp0ybkWQRma+nK4dqKZDDf?= =?us-ascii?q?ZAijnn3jhZDo31n+ias8aw52tXuFxHF5xz7R7cFKVEIJp7PRX4ls+2RklzHSb/?= =?us-ascii?q?YNvbdgYyt+qWyOYM5P9+N0jkaY8YPB0E0bT65mRRTgd0T772pFmZV/oLZNR6UP?= =?us-ascii?q?PEsmxV6YV4Jq8TJliSupjqoS1OqF8oGwImdb4wrjNbdknShgJVQLz7uKQdigcG?= =?us-ascii?q?V952p1NME3qqOG0i/zrHSbhVjK6JBfwa6DqTVLIBU1loMi5lRxO12YludKWpnf?= =?us-ascii?q?9dr2NGhTlxoP403Dx6XBG8ozHjp7oR2TI8/7G1rDoBtmJDTuWClCfIDlJPzO8U?= =?us-ascii?q?gqcYCnbi70G8YXYYYYv2/rZnP8Th+pM773Q5fxojYzUMXf68BCHok6OIHouPvc?= =?us-ascii?q?pahB6MpMrOaruzIjIJNrgnyBLjQH990hPFnBtz9WsGTTqh4MUjJIWnNsYv3jCo?= =?us-ascii?q?FnTDdFYQ/qNJt9P8tVEXQ+stclNt2Xht3MeBSC0MQszPBmk0gxMraWVBap1D7w?= =?us-ascii?q?EVG7MvgjaSsalM5hsUbyvMEoS55onQmt/F2Xs6TddqwGLavLGKhpMu0H14htx1?= =?us-ascii?q?7y+OuHIJd+zbUs9hGWbz1oZByePkY/Wir+EHRJFgyLu/TP8IKtOj9neu2JV2Rk?= =?us-ascii?q?+lwawTH1unMOAZwLfWSCOlSXCFVuSKdGiMhCw1Mkno5RmnNlc3cttFr1chMuve?= =?us-ascii?q?gZ5Rjw/hXq16RiWeoV/W12IiPvkcdw0opIerYQoKQ/ANZ+KEP+gh3OU+CEcQb3?= =?us-ascii?q?/OBSZ2BOu2sVmjnYdlP3Vg5V73Yf/q8gDgMdudBgMIEYjEoZ5t4fa6XH6OOWd8?= =?us-ascii?q?zB1uO0l57+XfF1Qxt+9EdJaRmdnQh8hl3uMecvdtMDE9usQNlY557omUysiKew?= =?us-ascii?q?nLzpnuPdHVvuSYA/rHwkQ2e2FaV6EUYR/054omPd42RbnTEaFfvRsCGagwWIYh?= =?us-ascii?q?OHvp9KFoMANzdRbcZLG1gsnppeKLYYBZp33M4VIzKyfcvQMMyvquQQx9cZ+qm2?= =?us-ascii?q?34IIosSTJZs91tFhxmEZNUFMweqQqnH4WZmLq/i9+250N6p/EKvrTtBfzQ09S5?= =?us-ascii?q?xYpxVYBA5UOXJDbRGLVrgkN9g+S8nPjA1pjxCdv8dt4fVel7Q2vFarrYEYWlLj?= =?us-ascii?q?KBJNjwe0lc876TyLh5SAmeZDjlX6qasy2pLPtl4V0hyox5YOXc0icg77Ta2Nvu?= =?us-ascii?q?fWFUuD2vrXmTNJtQ9FbKH/DRXwpISfqZ92ZoBaoXbY/q++oVKdwixMKT4xJv7D?= =?us-ascii?q?RDzMSFP7KhoVHS1U5hc5LUMlfp0T4jWYYWOBS/LVcsgWjBp3TZAHRcKNWkKMZ0?= =?us-ascii?q?jNaRDxzt/FVxmXo2a25AAGXoQ9CRNXIc28Kkaw2A7BhLAMobn+6rZU44sbW/Sf?= =?us-ascii?q?J2NZVBmOWqsqgHkNluJy/AWMhaPz/fLKVoMTpJFOrCv1sobQAes7gzRIg1YYOB?= =?us-ascii?q?IF4IMEuaziPy1wTC21Xud9OwzKaJPDoW8nJfwrLAyzdDuwm5ufefgs3kS73Zcp?= =?us-ascii?q?D2XPjMPyohVzGaQykyEEmz9VejofoEs+KSIX0DrVAMfiKSFAkTq7htrdfKDW/T?= =?us-ascii?q?nvZscYYXhPCcRyDwSCp4lLc9BiZLqUCAWfwDGhfKb3X5mmpTpBSiJuNQ/XLid7?= =?us-ascii?q?CYybBaVPcMAotNbPKZR8DVee5aJzgyjTUZOfu8c8far7knzlLCVXEZHLXQ9F2C?= =?us-ascii?q?UE6WReSRxzDuXYUSpYg0oCso+snLky9xCavIOqiQpz+0/o6/liaYtvXUVnMxbE?= =?us-ascii?q?wtnOICHG6BzQFbKGEKDtEapEDgT62bakZSyn0pk+Nu2h4LeAR1SHFu1GNZnOql?= =?us-ascii?q?EM1DVVEUlH+uQOEBbF1vDjMw+kmK4gnpbNwFp8/cWmFe9rwWSYUBMvYk8o/XN7?= =?us-ascii?q?UMwKVh4DUzuyE+siOAH3tBnwmF9OzWB6s6ybpctkci+PQjeECERDfWaSDmzY29?= =?us-ascii?q?EIobwyZlpnTtzIzVued2L5Nf+5E/B00FV3ElbuvB9CxMBDmnkDC5uAy2SXHHeD?= =?us-ascii?q?8=3D?= X-IPAS-Result: =?us-ascii?q?A2ENBQCLMpdY/wHyM5BdHgYMGAEFAQsBgyiBao5SqFUmiGV?= =?us-ascii?q?XAQEBAQEBAQECAQJfKIIzG4IjAiQTFCAOAwkCFykICAMBLRUfCwUYBIlSBAGwc?= =?us-ascii?q?DomAoNoh1KGTIkVEQGGAQWJAIY9gUaKY4F9j3+KYIYvSJJEWHYIHxMqRIZDdIZ?= =?us-ascii?q?Ygi0BAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 05 Feb 2017 14:15:15 +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 v15EEnsF020149; Sun, 5 Feb 2017 09:14:54 -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 v15EEmqg111628 for ; Sun, 5 Feb 2017 09:14:48 -0500 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 v15EEkwU020146 for ; Sun, 5 Feb 2017 09:14:48 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1AxAABDMpdYmCIeaIFdhW2OUqRBjR9XAQIBAQEBAQITAQEBAQEICwsIHYVGgiOJcwQBnwKRbDqEEIdShkyPKAWJAIY9gUaKY4F9j3+RD0iSRIFVHxMqhDgBCwGCQnSJBQEBAQ X-IPAS-Result: A1AxAABDMpdYmCIeaIFdhW2OUqRBjR9XAQIBAQEBAQITAQEBAQEICwsIHYVGgiOJcwQBnwKRbDqEEIdShkyPKAWJAIY9gUaKY4F9j3+RD0iSRIFVHxMqhDgBCwGCQnSJBQEBAQ X-IronPort-AV: E=Sophos;i="5.33,338,1477972800"; d="scan'208";a="5932730" 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; 05 Feb 2017 09:14:42 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3A2nLAPREfDdVZS55bYKXzqp1GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ78r8qwAkXT6L1XgUPTWs2DsrQf2raQ7P2rBzRIyK3CmUhKSIZLWR4BhJ?= =?us-ascii?q?detC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+?= =?us-ascii?q?KPjrFY7OlcS30P2594HObwlSijewZbx/IA+0oAjRucUbgJduIbstxxXUpXdFZ/?= =?us-ascii?q?5Yzn5yK1KJmBb86Maw/Jp9/ClVpvks6c1OX7jkcqohVbBXAygoPG4z5M3wqBnM?= =?us-ascii?q?VhCP6WcGUmUXiRVHHQ7I5wznU5jrsyv6su192DSGPcDzULs5Vyiu47ttRRT1ji?= =?us-ascii?q?oMKjw3/3zNisFojKxVvg+vqRJ8zYDTe4yZKOZyc7nBcd4AWWZNQsBcXDFBDIOm?= =?us-ascii?q?aIsPCvIMM/5Zr4bhoFsOqQGxBRKxD+3szT9IgWT23bYn2OkmFwHG3RAvH9UKsH?= =?us-ascii?q?vOt9X5LqYSUeeyzKnT1jXOdPZW1Djy6YTSdRAhu/6MUKt2fMHMykcvDxvIgkiO?= =?us-ascii?q?pYHhJT+Zy/gBvmeB4+duSe6jkWAqpg5prjWtxMogkJTFi4wbx1ze6yl13Ic4Kc?= =?us-ascii?q?e2RUJlZ9OvDYFeuDuAN4RsR8MvW2Fotzg+yr0BoZO7eScLxIk9yx7HbPyHd4iJ?= =?us-ascii?q?4g79W+mNITd4gnNleKuihxms60Sgzff8Vsas3FZLqCpKjMXMu2gQ2xDN7sWLUO?= =?us-ascii?q?Zx8luu1DqV2Q3f9vtILE47mKbDLp4u2L8wlp4dsUTZGS/2nV37grKKeEs55uSl?= =?us-ascii?q?8//rbLX6q5+AL4J7iRzwP7wrmsGwDuU0KA8OX3KU+emk0r3j/FH2QLJOjvIsia?= =?us-ascii?q?nVqpHaJcMcpq6iGA9YyZ0s6xGiDzegzNsXg2IHIEhAeB+IgInlIVbOIOr3Dfun?= =?us-ascii?q?mVSjjC9rx+zaPr3mGpjNNWbMkLPgfbZ79k5dxxE+zcxf5p1ICrEBJ+j/WknqtN?= =?us-ascii?q?PCFBM5PAu0w/i0QOl6g5gTXWOJH7+xLLLZsVjO4PkmZeaLetw7ojH4ft4k7Pnq?= =?us-ascii?q?hGRxuFgaZrLhiZ0WY3e8F+8gIkKeemHEh4sRV2AQsVxtH6TRlFSeXGsLND6JVK?= =?us-ascii?q?Um62RjBQ=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GhAAAFM5dYmCIeaIFdHgYMGQYMhRKOU?= =?us-ascii?q?qRBjR9XAQEBAQEBAQECAQIQAQEBAQEICwsIHS+CMxmCS4IjiXMEAZ8FkWw6hBC?= =?us-ascii?q?HUoZMjygFiQCGPYFGimOBfY9/kQ9IkkSBVh8TKoQ4AQsBgkJ0iQUBAQE?= X-IPAS-Result: =?us-ascii?q?A0GhAAAFM5dYmCIeaIFdHgYMGQYMhRKOUqRBjR9XAQEBAQE?= =?us-ascii?q?BAQECAQIQAQEBAQEICwsIHS+CMxmCS4IjiXMEAZ8FkWw6hBCHUoZMjygFiQCGP?= =?us-ascii?q?YFGimOBfY9/kQ9IkkSBVh8TKoQ4AQsBgkJ0iQUBAQE?= X-IronPort-AV: E=Sophos;i="5.33,338,1477958400"; d="scan'208";a="2899062" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mx1.polytechnique.org ([129.104.30.34]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Feb 2017 14:14:40 +0000 Received: from localhost.localdomain (32.206.133.77.rev.sfr.net [77.133.206.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id 4DDB05613C5 for ; Sun, 5 Feb 2017 15:14:38 +0100 (CET) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 1/1] libsepol/cil: fix type confusion in cil_copy_ast Date: Sun, 5 Feb 2017 15:14:01 +0100 Message-Id: <20170205141401.18021-1-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.11.0 X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Sun Feb 5 15:14:38 2017 +0100 (CET)) X-Org-Mail: nicolas.iooss.2010@polytechnique.org 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: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP When running secilc on the following CIL file, the program tries to free the data associated with type X using cil_destroy_typeattribute(): (macro sys_obj_type ((user ARG1)) (typeattribute X)) (block B (type X) (call sys_obj_type (Y)) ) By adding some printf statements to cil_typeattribute_init(), cil_type_init() and cil_destroy_typeattribute(), the error message I get when using gcc's address sanitizer is: $ secilc -o /dev/null -f /dev/null test.cil -vvvvvv creating TYPE 0x60400000dfd0 Parsing 2017-02-02_crashing_nulptrderef_cil.cil Building AST from Parse Tree creating TYPEATTR 0x60600000e420 creating TYPE 0x60400000df50 Destroying Parse Tree Resolving AST Failed to resolve call statement at 2017-02-02_crashing_nulptrderef_cil.cil:5 Problem at 2017-02-02_crashing_nulptrderef_cil.cil:5 Pass 8 of resolution failed Failed to resolve ast Failed to compile cildb: -2 Destroying TYPEATTR 0x60600000e420, types (nil) name X Destroying TYPEATTR 0x60400000df50, types 0xbebebebe00000000 name X ASAN:DEADLYSIGNAL ================================================================= ==30684==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7fc0539d114a bp 0x7ffc1fbcb300 sp 0x7ffc1fbcb2f0 T0) #0 0x7fc0539d1149 in ebitmap_destroy /usr/src/selinux/libsepol/src/ebitmap.c:356 #1 0x7fc053b96201 in cil_destroy_typeattribute ../cil/src/cil_build_ast.c:2370 #2 0x7fc053b42ea4 in cil_destroy_data ../cil/src/cil.c:616 #3 0x7fc053c595bf in cil_tree_node_destroy ../cil/src/cil_tree.c:235 #4 0x7fc053c59819 in cil_tree_children_destroy ../cil/src/cil_tree.c:201 #5 0x7fc053c59958 in cil_tree_subtree_destroy ../cil/src/cil_tree.c:172 #6 0x7fc053c59a27 in cil_tree_destroy ../cil/src/cil_tree.c:165 #7 0x7fc053b44fd7 in cil_db_destroy ../cil/src/cil.c:299 #8 0x4026a1 in main /usr/src/selinux/secilc/secilc.c:335 #9 0x7fc0535e5290 in __libc_start_main (/usr/lib/libc.so.6+0x20290) #10 0x403af9 in _start (/usr/src/selinux/DESTDIR/usr/bin/secilc+0x403af9) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /usr/src/selinux/libsepol/src/ebitmap.c:356 in ebitmap_destroy ==30684==ABORTING When copying the AST tree in cil_resolve_call1(), __cil_copy_node_helper() calls cil_copy_typeattribute() to grab type X in the symbol table of block B, and creates a node with the data of X but with CIL_TYPEATTRIBUTE flavor. This example is a "type confusion" bug between cil_type and cil_typeattribute structures. It can be generalized to any couple of structures sharing the same symbol table (an easy way of finding other couples is by reading the code of cil_flavor_to_symtab_index()). Fix this issue in a "generic" way in __cil_copy_node_helper(), by verifying that the flavor of the found data is the same as expected and triggering an error when it is not. Signed-off-by: Nicolas Iooss --- libsepol/cil/src/cil_copy_ast.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libsepol/cil/src/cil_copy_ast.c b/libsepol/cil/src/cil_copy_ast.c index 5debd0d5359c..17a8c991c66d 100644 --- a/libsepol/cil/src/cil_copy_ast.c +++ b/libsepol/cil/src/cil_copy_ast.c @@ -1987,6 +1987,13 @@ int __cil_copy_node_helper(struct cil_tree_node *orig, __attribute__((unused)) u new->data = data; if (orig->flavor >= CIL_MIN_DECLARATIVE) { + /* Check the flavor of data if was found in the destination symtab */ + if (DATUM(data)->nodes->head && FLAVOR(data) != orig->flavor) { + cil_tree_log(orig, CIL_ERR, "Incompatible flavor when trying to copy %s", DATUM(data)->name); + cil_tree_log(NODE(data), CIL_ERR, "Note: conflicting declaration"); + rc = SEPOL_ERR; + goto exit; + } rc = cil_symtab_insert(symtab, ((struct cil_symtab_datum*)orig->data)->name, ((struct cil_symtab_datum*)data), new); namespace = new;