From patchwork Wed May 17 20:51:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9731887 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 07724600CC for ; Wed, 17 May 2017 20:53:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C110C287D6 for ; Wed, 17 May 2017 20:53:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B48A1287ED; Wed, 17 May 2017 20:53:12 +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.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED 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 B3E24287D6 for ; Wed, 17 May 2017 20:53:11 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.38,355,1491264000"; d="scan'208";a="5882026" IronPort-PHdr: =?us-ascii?q?9a23=3ACVkd2x+UFifAgf9uRHKM819IXTAuvvDOBiVQ1KB5?= =?us-ascii?q?0ukTIJqq85mqBkHD//Il1AaPBtSErasbwLOL6ujJYi8p2d65qncMcZhBBVcuqP?= =?us-ascii?q?49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6?= =?us-ascii?q?JvjvGo7Vks+7y/2+94fdbghMhjexe65+IRe5oQnMtsQanJZpJ7osxBfOvnZGYf?= =?us-ascii?q?ldy3lyJVKUkRb858Ow84Bm/i9Npf8v9NNOXLvjcaggQrNWEDopM2Yu5M32rhbD?= =?us-ascii?q?VheA5mEdUmoNjBVFBRXO4QzgUZfwtiv6sfd92DWfMMbrQ704RSiu4qF2QxDmki?= =?us-ascii?q?cHMyMy/n/RhMJ+kalXpAutqwFjz4LRZoyeKfhwcb7Hfd4CRWRPQNtfWSJCDI27?= =?us-ascii?q?bYQPAfIBMORFo4TzuVQOtgCzCRWwCO711jNFnGP60bE83u88EQ/GxgsgH9cWvX?= =?us-ascii?q?rMrdX6KKASUeSvw6nT0D7NbPRW2TDm6IjTbxsspveMXbNsfsrWzUkgDRjFgk+R?= =?us-ascii?q?qYziODOVzf8NvnOe7+dvWuOjkWknqxt+ojW2wMonl4rHhpoNx1zZ+ih0z5w5KN?= =?us-ascii?q?2lREJhf9KpH4VcuzuHO4duQc4uXntktSc7x7EcpJK3YjQGxI45yxLDafGKdZWD?= =?us-ascii?q?7Aj5W+aLOzh4gWpoeLe4hxmv70et0vb8Vsyo0FZSqSpFj8XMumgN1xPN7siHTe?= =?us-ascii?q?Nw/lu71jaV1gDT9/pELVoolavbN5EhwrkwmoAVsUvfBS/5hF/6jKqXdkUg4uSo?= =?us-ascii?q?6uLnbav6ppKEKoN5hQ7zPr4ul8CiG+g0LAcDU3aB9eihzLHj+Ff2QLROjv04iK?= =?us-ascii?q?nZt5XaKNwApqGnBw9V04Aj6wuwDju/y9sYmmQHLFRZdx2ZlIjkIE3OIfDkAve/?= =?us-ascii?q?hFSgijFrx+vcMbH7DZXNKWbDnK/7fblh805c1BYzzddH6pJWDbEBJuj8WlPxtN?= =?us-ascii?q?PCCB80KA60w+HhCNV4zIweQn6PDbGDMKPJq1OI4fgvI+aUbo8PpDn9M+Ql5+Lp?= =?us-ascii?q?jXIhm18df7Om0ocUaHCjGfRmJUSZYWT3j9cPFWcKowU/Q/f3iF2ETT5Temy+X6?= =?us-ascii?q?Um5jE0EIimF5vMRpixgLyd2ye2BpNXZmFCClCJD3jobZ6JW/kSZy2PJc9hiCYL?= =?us-ascii?q?VaC7S48m1xGhqhP1y6Z9IurT4C0Yuorp1MJp6O3LiREy6Tt0AtyA3G6RSmF0mW?= =?us-ascii?q?UIRyMr0K1kv0xy1E2D0al5gvxfE9xf/fVJXRkmNZTE1ex1F8jyWh7dfteOUFup?= =?us-ascii?q?X8mmDisrTt8q39AOZEN9FMm4gRDYwyqmGbkVmKKXBJYs6KLTw2DxJ9phy3bBzK?= =?us-ascii?q?Qgj1gnQsxJNWC9g65/8xHfB4/Pk0mDkaalb74c3C3M9Ged02WCpkdYXxBsUa/d?= =?us-ascii?q?R3AQelPWrcjl5kPFV7KhF6wnPRFbyc6DMatHccXpgk9cRPfiI9Tee2axlH2sCh?= =?us-ascii?q?mW3L+Ma5Dqe2oF1iXHFEcEixwT/WqBNQUmCCehuXjRDDpyGlLueEPh6ux+qGu6?= =?us-ascii?q?TkMt1AGLYVZh26Cy+h4PivyWU+kT0a4cuCc9tzV0G06w39HMBNqDoAphYb5RYd?= =?us-ascii?q?An71dE0mLZqhZxPpu6L6BtnlQeaRh4v1vy1xVrDYVNidIlo24wzApzN62YykhM?= =?us-ascii?q?eCmE0pD1ILHXLXPy/B+3Ya7Mxl7eyMqW+rsI6PkgsFXjshupFk0583V7yNRVyH?= =?us-ascii?q?2c5pLEDQoXS53xVFw79x5kqLHGeiM9/Z/b1WVwMamotT/Pw9woC/Ehyha8Ydhf?= =?us-ascii?q?KriEGRTsE8IEHcihM/Eqm12zYhIDJuBS+7Y+P9m6ePuexK6rIOFgkSq6jWta/Y?= =?us-ascii?q?9901iD9y5nR+HU2JYFxu2X0RGcVzfglluhtN74mZxcbzEIAmW/0TTkBJJWZqBq?= =?us-ascii?q?e4YLCGOuI8mpydVlnJPiQWBX9ESkB18c38+pYxWSZUTn3QJMzUQXvWCnmSygwj?= =?us-ascii?q?xqkjEmsraf3CvUw+j4aBUHOmlLRG9tjVr3JYi0jtYaU1Kybwgujhel4lz6x6dD?= =?us-ascii?q?rqRlM2bTWVtIfzTxL2x6Vquwt6GCY9JW5JMzrypXVOW8YVaHSr/yuBYayDvjH2?= =?us-ascii?q?pYxDA6az6qoY/1nxpkh2KBNHxztmbWedlsxRfD49zRXeRR3j0CRCl8lzbXHESz?= =?us-ascii?q?P96n/NiPjJfDr/yxV3m7Wp1UaynrwpuKtDGn6m1yHR2/g/ezl8X/EQcgzC/708?= =?us-ascii?q?NmWj/SoBnnZYnr07i6MeVhfkRzAV/w98x6GoZinYcqgpEfx2QajI2P/XUbiWfz?= =?us-ascii?q?Lclb2aXmYXoOWzELxcXV7RPm2EJ9KHKJ3IT5WWuBwsd7YNm6eGwW0Don789WEK?= =?us-ascii?q?eU8KBEnSxtr1qmqwLefONwnikbyfQz6H4WmecJtxQxzi+FGLAdAVFYPTDwlxSP?= =?us-ascii?q?992+tL9YZHurcbWryEV+nMyhDbGbrgFSQnn5fI0uHShq7sVwKFjMymH86pn4eN?= =?us-ascii?q?nMatIergeUnArdgOVOJ5Ixk/ULiTBhOW3joX0v0/Q7ggB23ZGmoIiHLH1g/Lqj?= =?us-ascii?q?DR5FMj36edsT9SvrjaZCgMmWxZuiHoh6GjoVRpvoVuikECkVtfT6LQaBDCMzqn?= =?us-ascii?q?mcGbrFEg+Q9l1qr3TRHJC3L3uXPmUWzc1+RBmBI0xSmA4UUy88np4lEQCqwdfs?= =?us-ascii?q?cEln6T8M4V74sAFDyvpyNxn4UGfQuhunaisuRJiYNhpW4RlI513JPsyG8uJzAy?= =?us-ascii?q?ZY84WkrAOXLmybYxpHDX0VWkOeHV/uJb+u6sfc8+iDGuWxNePObquUpexYSfiI?= =?us-ascii?q?2Yql0pF68DaUKsWPIn5iAuUh2kZZU3F1AcHZlC8LSywQlyPAdNSUqwu5+iFtqc?= =?us-ascii?q?C/6vvrUhr15YSTE7tSLclv+xeujKeNLe6fmjt2KS1C2ZMK2X/Iz6Mf0UUIhC5y?= =?us-ascii?q?cjmhC7MAtTTCTKjIgK9YEwYbaz9vNMtP96882BNNNtTDitPtzbN4gP81C01eVV?= =?us-ascii?q?z9lMGpZMoKLHu7NFzbBUaELrCGKSfMw8HtbqO2UadQg/lMtx2spTabFFfuPiyd?= =?us-ascii?q?mDbySR+vN+BMjD2cPBFFuYGybAhiBnb5QNLhcB27P8d9jScqzr0smnPKKWkcPC?= =?us-ascii?q?BhfENWsLKf9yxYgu9lFGxf9XdlNvOLmyWE7+nCMJkaq/9rAjlyl+1A+nQ20qdV?= =?us-ascii?q?7CZHRP11nyvetNhurE+6kuOX0DpoTAJOqipXhIKMpUhiIr/W9odaVnbL4h0N9n?= =?us-ascii?q?6dCw8QqNt7ENLvtL5fysPVmKL1NjhC78re/dEACMjMNMKHLH0hPALyFz7VAwsF?= =?us-ascii?q?SjirOHrCiENDi/6S92earp4gppjrgpoORadRVEYpGfMCFkRlANsCLY9tUTMri7?= =?us-ascii?q?GbktAH6GG5rBnJWspauJXHWeiTAfXrMzmZirZFawEPwbPiIoQZLpf71FB6allm?= =?us-ascii?q?gITKHFLdXcxKoi1kdAM0ukJN8XlgQW01wE3lcASt72EQFfOvghE2jQ5+bvg3+z?= =?us-ascii?q?f3/1c7PFzKqzUskEMpg9XqnSiRcCLtLKe3RYxWCCr1t0wvPZ7gRgZ1agOynUJ6?= =?us-ascii?q?OzfYW7JRj7xgdWV1hwPGv5tAB+JcR7VeYBAM3fGXe+ko0VNEpyWh20BI/+/FBI?= =?us-ascii?q?BhlAstap6ss2hP2wR4bN42JKzcPqxJwUZMhqiWpC+nyvgxwBMCJ0YK6G6SYjAH?= =?us-ascii?q?uFcWObY8PSqn4uxs5BeZlDtCYmgDSv0qovxy9kMnJeuBzzjs07hdJUCtL+afNb?= =?us-ascii?q?+Wu3Dclc6URVM9zl4Hl05D/bhwzMgsbU6UV0E0wbSLCRsJL83CJRtSb8pI+3jZ?= =?us-ascii?q?ZTyOvvnVwZJpI4W9EfjlQvKUu6YKg0KrAR0pEp8W4cQbBJms10/ZLdz5I7EZ1B?= =?us-ascii?q?Ut/gXrJEmFDfhTfhKEjisHqdmlzJBrxYldOi0dAWJlPCWz4bbXvBElgPyCXdcx?= =?us-ascii?q?eXoaUY0ENm8sVM29gS5ZsGxKDCOr3eIB1AiC8zj8qzzLDDbia9pjZfGUZQ5jCd?= =?us-ascii?q?yt5To/9K22hkLN/ZXFO2H2L9JitcHT6ekCvZaIF+tUTaVhs0fbg4RYRGaqUm7V?= =?us-ascii?q?Ht6zO5jwa5IhbdPzCnaiTlOzkTQ1QNntPNy1NKiHnRnoRZpIsImcxD0jKc69Fj?= =?us-ascii?q?QZGxdsp+EC5LlxahACY5s7exHnrB4yN6qhLweEyt+uWXqiKSNKT/lDyuW3f6ZY?= =?us-ascii?q?zy4tbuCm1nQvVpQ6zumx8U4KQpEFlArTyu2iZ4ZEVyj/A3JdexjVqSo/iWdhKv?= =?us-ascii?q?44wv0jzxPQrVkcLzeLefRyZ2NaudExHkmdLmhoCmUmXV+clpDM4hSs3rwI+Ctd?= =?us-ascii?q?hdlU2/VfsHfipp/ffC6sWKuzpJXariogbNwmo6lvPozmOcaJqY3RkSfeTJbKtA?= =?us-ascii?q?2JSim6F+BVmtJIOiJXXOFImX05OcwBoYdB80wxVsYiKLxPD6ksoquqZyJ9AyAP?= =?us-ascii?q?1yEUS4SO0Scejee73rvVig2fcI8+MBAetpVNnMcdWTZsYiwCvK+jS5nWl2icR2?= =?us-ascii?q?gROggT9wNM6xkbm49sZODq+pTIQ4FIyz5XpfJ0XS/LFphn91v7VmGWj0L3SO+k?= =?us-ascii?q?k+Cz2wJd0u7s2MEBWBFjEUhd2/pWlkwwJbB5MaUfoo7Ksj6NdUP7pm3ty/CrJF?= =?us-ascii?q?hPxsLKaVL0Fo3FtXDzUicE430bWZdPyG3DFZQViwd2crwrpEhKIIy8eUbz/D0k?= =?us-ascii?q?x4VoH7mkTs+n3VAlomgaRy2yCdpOF/lmsE7LWD1ie52rqZPlO4lMTW9U5pKdrk?= =?us-ascii?q?lWkFl3My+50pdcLNlN7SAKXDhKuzqdvd+yR9ZE2c55FZMMJc1/u3jlEqNeJJeR?= =?us-ascii?q?u2E2uqDoynLB9DA8qk21xDOvG6KjTuJZ+GMfGgM1J2SetEYvDu0s8nvM/VDXqF?= =?us-ascii?q?x0+flUBqSXh0VrvDl9BoxOBipO1X29M1RzS3xGvv5GKKjJdsxTWOM+ZRmxNBwi?= =?us-ascii?q?DfQmxVCG/VlonXflZCx/rgta9DrHXwYuUSkan6zgliAApcG/IT8VVZZIYis7by?= =?us-ascii?q?vfLAKbgy9Xtg5Fa052Q5AZHspF+7YD0ItW+crNV12hJjwbUxx5KA04y+ZfmlBe?= =?us-ascii?q?v0mCfyDSExaof+7VshJrZceRsNKpLPPh8QhchIPorPw0+qceS3CoggCiXdfer4?= =?us-ascii?q?rgudKQrUuOaL30M+uibn/dVDLMlwy/ha84D5nW+CjeKBBbJIdnxnoke5fhFXXG?= =?us-ascii?q?PRBBJ6IFOUVXS7x1adJbre9EfcNkfrgG+bN1DBKdWhzvAJCvrOVBLlvLXTTeND?= =?us-ascii?q?mB/fairoLP9rHdUu/gZtGWx3nbXa13OIt66SPhFLfuy4Ne/VD22vh1/ENgVVfG?= =?us-ascii?q?KzyBrMjmJg4T+MmibFXtsYM0Ej7NHZdwlGbtxltaeMoJQi2q95AYx41F6HrqTu?= =?us-ascii?q?J4yEfzuvVI97Z48Yk3/6xpycCsKKfQM/taq0hnAgOQBgpw6JUgG21/R31VYu8N?= =?us-ascii?q?KffeYaUZgtroq+DsDaAX7weV++NBY9vdO07BgtW/Ci2bSRFcngcOszgaLgWG1/?= =?us-ascii?q?6ChqB7V92opfTj1UIr+Fi+KQQKzLZz6oeY4qCIvvPYbwPNzbgYXajnXsXzrrA3?= =?us-ascii?q?tkOT4/0kkaQCem1zYw2pCugSTNUdxnv6zaA30S0sD97DH6j+9/JZUHI5hD3gkY?= =?us-ascii?q?hnH1oKAvMUAaaL/YNGk2c+muzWKtoWcqRYlWaUDxKkE7gCyXmw6yuMO2Rlhx7D?= =?us-ascii?q?0h7qTWO09l/2ojdyQTHQwNf7jkpVSr63CF9OUCWzPU93riiPPBbotdrwoqk191?= =?us-ascii?q?05Mm36u9KLiGuhOalYE9f5JNOCPSk+vEgXg4EpRtyzxYAbHsKwINMK8HF7bvbT?= =?us-ascii?q?8G2rnDFcrKdAnYrR+NmV+u/QHXmikaKVt6mNyCpfyngislE18sqgOe3W592WX/?= =?us-ascii?q?So0H4cTyV+uwvERBO1r6LUrlAKNkyR0UfLnoMKMstf3XYmykHs/PIjT84r9AVC?= =?us-ascii?q?CobAYOsPpTHyOTTu21mQf8k6VjKA3DtLAF36DUN0GK8m2GL/pMjJj2vf+0U0Ro?= =?us-ascii?q?lscEzqnQd4D4QjKUMj8lcXwCsDERQVaR+BEbGoAV/oIpcDVUcedxuIxqW6er0w?= =?us-ascii?q?3U1p2Lyj/ujTbfZzB6AVLPZSkhaOnERHGpIRqaAeWKhze0NB+67XqAniDJLnX/?= =?us-ascii?q?v/mXorK/K1RsFa8cYEt3ot+Qu/XwCv6Ytf4LYbhpGIcbREYZvWsMB/8Uhn/zgP?= =?us-ascii?q?eTJJgBRliBO5S+8crvj54tfHqJqo9vquVKE1SuUL7Rg7GWB+gIH2gF89utzYyu?= =?us-ascii?q?ZcSoLUiYTj6g9NOGSFuJzH0xVmL+oBNZ6rdq5693obPygeO24OPd2OZvkz+SBt?= =?us-ascii?q?Kivc50BCAs4XYdMYPdbNlh5UikLzRbFT7dDXGlmGBIdvb8oo9Xb4yCgp8ZsgVe?= =?us-ascii?q?bt8DC2Ko7Z71FROPNDiyJglMncq+gRwPrSDjUX4HaCZhhx3CyC0ZmMBOzq8eWK?= =?us-ascii?q?1t7US0sMHjQqXIdFODqC5QunS/Kpm5XrSAyb9tT+j445dEKUQnyxnboKsrxQEe?= =?us-ascii?q?Felir73iJSFofvh/Kaq9Cs8ndYtkVbEIZv6h3IAKBfPpJ9ORTkmcmkWFNxBi7+?= =?us-ascii?q?eM7OcBohpvaWx+kL4+VkNEv+fpUXIhQaxLLm8XBVVBdhSKbqvlaFWuIcfNRmR+?= =?us-ascii?q?/frnBO8I5uNqABMl6cpJzsszdJp0s7AAAsaLAqqDxVaFPCnApPW6b7oLQAkBcT?= =?us-ascii?q?UcZluU9QHmK9IGA+5z3HVaRTlqWeFPwV8jGOTqMTUkRoMyV+Qwi22JVvYLapg/?= =?us-ascii?q?FHsn1ckSN5vfcq0iZqRB2iti3wv6gNwy4v+KmktDUdvnxIVuSekznSBlVF1/kK?= =?us-ascii?q?ibocBGvj6Vy7e3kPdozy4KNoJc7474ku/2w/YQk/fy0BRemgCT//j62GAoyLq9?= =?us-ascii?q?9digSCuMPQYr+vNyQSMKoyyQ77TXhnzgfehApo8HcMQji4498kIIK9OMg7ySqs?= =?us-ascii?q?HWjWb00M4qRPsMvwqVEHVu02Zk19wG97yMiIWjUNRNDTG2YylgUka2VEcZJb6R?= =?us-ascii?q?8dE6kogyqIsbdd8wERYTfUDp6l9ZfKkcfPw3k9Qs9gxnjKqa2dmpMqzHpllsto?= =?us-ascii?q?7i6PvXQfbPDYU85wDXjwyIhfzfbyZ/OzveAbUIFm0qiuUOceMsm//mu7wJBqWk?= =?us-ascii?q?6mxrQdGFq0K+0Dya3YUyeiT22XR+KLf3KKnzknLk74/QOoIUEvaMdWs089NfPP?= =?us-ascii?q?iYVCmA3nTbN5XT6QpVvczGw/LeMaaRw5t5q9dwwNVu4RaPCWJfIyz/0mFFsMc3?= =?us-ascii?q?jJEDNuC++xtV6ihpJ7Ontn4UX+b+Tg6QXmMNyVGhkfD4HVsoRx+fuhRmKaOH9g?= =?us-ascii?q?yhJyMFNz9+fFGFQ7rvVcfIqJndjMm9R71vYId/lzPi05u94Tgpxs5JKV0ceLdB?= =?us-ascii?q?HRy4j9JcvRoveGGfHfyF4qem5CWLoDfQz1/5k6PsI+W7DLE7pZpQ4cBakmT5M/?= =?us-ascii?q?LGrx8aB0LB9pcgHPfri0hdPqpu2TbJtOu3DW9k4wLDvbuxAbzfy0SRJ0Youyh3?= =?us-ascii?q?X2Op8wXS5Br9xxBRt6BotABd0PoxChA5GKhKGxk8Wx9F9iu+8WrarwDejH1NC4?= =?us-ascii?q?34V3Qphb6lWHPDLQBKlwnkRllf+/gvba3Zn3DsPuY9QEVPJ0QmTdcL/JAp2/Ki?= =?us-ascii?q?6SOsL7Y0NG6KCT0LZ4UhWXeSD4UK2KuiK4NPVk/0o70JJ3fPLJwzE27LHUxsHy?= =?us-ascii?q?Z2dFqSentnGJKZRf4EbNBezEUBJeUeCF/3p9Ha0LcYv08/8DMdk4z9eA4wlz7T?= =?us-ascii?q?JC0MyeLqi/r0/M3Fx0dZbaLEvvxiY4VpMGIBOlMUsjmWXZsGjSAWxALsi4Lslg?= =?us-ascii?q?mNSVAQbu50l2gm4gfXNBGmz0RdeRPmgbxs2+ZA2W9A5RCdYMgfK3c1YitqKuUe?= =?us-ascii?q?loJolFmeKyubocitllLCXPRMlBPyHMN796JCFRAfvTq1QyeR4Lrbw1WoYzZZiT?= =?us-ascii?q?L0IKK1uPyCPozQvfyk34bdKt27yVICYN9XVHyajJ0T9Wpwm2ofyZmNHsUKjFbJ?= =?us-ascii?q?HqW/7fKCUlWSuBSjQoEEam51OktuEavPqcO2gfuVEUYj+IBA4VuK9vscDaDnXP?= =?us-ascii?q?lu17YJ0KmPeaVjjySC19k6oyHDxLtUGXQ/cYEwnZdXrhj3RduAC4If9M533lZa?= =?us-ascii?q?WCxqVJQ+wWHpdMcvqBTtvDd/BeIisnmzQaNeunYd3Tsaw50lPJTGseFanE7lue?= =?us-ascii?q?Q1CKQq/U+zW+RogRvo4pqgI069nQmWlxCK2OMLGB9BC09YvtqieTvunXTSEMZE?= =?us-ascii?q?sum6pWBmiKxx1JMycFDNYOo2noHr7GYFxDgiF6wdly0gMBLVwgGkZl1WdbybPk?= =?us-ascii?q?QsA=3D?= X-IPAS-Result: =?us-ascii?q?A2GvAwAjtxxZ/wHyM5BcHAEBBAEBCgEBFwEBBAEBCgEBgwE?= =?us-ascii?q?pgW6OeKILhmcoi2RXAQEBAQEBAQECAQJoKIIzJIJCBgECJFUDCQEBFzEIAwFTG?= =?us-ascii?q?QWIT4FPBAGuazomAoNphySGX4FejXABBJ4QghCIQYg9iyeGU0iTfliBCi8gLk6?= =?us-ascii?q?EdxyBZXSIZwEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 17 May 2017 20:53:09 +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 v4HKr2oh024174; Wed, 17 May 2017 16:53:04 -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 v4HKr1RR052788 for ; Wed, 17 May 2017 16:53:01 -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 v4HKr0aP023924 for ; Wed, 17 May 2017 16:53:00 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1AeAwDUtxxZhyIeaIFcHQEFAQsBgyyCF454oguHCotpVwECAQEBAQECEwEBAQoLCQgohUgGJ2JRVxmIVIFPBAGubTqEEYckhl+BXo1wBZ4QghCIQYg9kXpIk36BYS8gLk6EJwxEHIFldIhnAQEB X-IPAS-Result: A1AeAwDUtxxZhyIeaIFcHQEFAQsBgyyCF454oguHCotpVwECAQEBAQECEwEBAQoLCQgohUgGJ2JRVxmIVIFPBAGubTqEEYckhl+BXo1wBZ4QghCIQYg9kXpIk36BYS8gLk6EJwxEHIFldIhnAQEB X-IronPort-AV: E=Sophos;i="5.38,355,1491278400"; d="scan'208";a="6056651" 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; 17 May 2017 16:52:26 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AOYOFnRNqeQZNquLDHOYl6mtUPXoX/o7sNwtQ0KIM?= =?us-ascii?q?zox0LfX4rarrMEGX3/hxlliBBdydsKMbzbOJ+Pm9ACQp2tWoiDg6aptCVhsI24?= =?us-ascii?q?09vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7?= =?us-ascii?q?Ovr6GpLIj8Swyuu+54Dfbx9GiTe5Y75+Ngi6oAfeusULgYZuN7s6xwfUrHdPZ+?= =?us-ascii?q?lY335jK0iJnxb76Mew/Zpj/DpVtvk86cNOUrj0crohQ7BAAzsoL2465MvwtRne?= =?us-ascii?q?VgSP/WcTUn8XkhVTHQfI6gzxU4rrvSv7sup93zSaPdHzQLspVzmu87tnRRn1gy?= =?us-ascii?q?oBKjU38nzYitZogaxbvhyvuhJxzY3Tbo6XOvpzZb/Rcc8ASGZdRMtdSzBND4Wh?= =?us-ascii?q?ZIUPFeoBOuNYopHlqVsPsRS+Ag2sC/n0yjRVhXH22qo60/86EQrb2wEgGdMOv2?= =?us-ascii?q?jTrNXxLqgSSvq5zKjPzTXEdPNWwizw6I3HfxEuu/2MWqhwccXIxEQpCgjLjU2Q?= =?us-ascii?q?pJT4Mz+L0ukBqXWX4/ZvWO61hWMrtxt9rzagy8s0iYTFm5gZx1HF+Clj3Yo5O8?= =?us-ascii?q?G0RFRlbdK4EpZdsTyROZFsTcM4WW5ovT43yr0Ytp6/eygH0JEnxhHCZ/Cda4iI?= =?us-ascii?q?5RbjVeaNIThmmH1leLS/hxer8Ui91OLwTM600ExFriZdk9nMsG4C1wDL58SaVP?= =?us-ascii?q?dw+l2t1SuT2w3c8O1JL1w4mbDVJpMu2rIwk4AcsUXHHi/4gkX2i6qWe1059Oa0?= =?us-ascii?q?9urrfq3rqJiAN49sjAHzKqsjlc2nDOQ9PQUPUHKX+eOm1L3s5UD5RrRKgeExkq?= =?us-ascii?q?ndqp/aPt4Xpq++Aw9SyYYj8A2yACyh0NQFm3kIMExKeAmdg4jsNFzPL+r0DfCl?= =?us-ascii?q?g1SjiDtr3ezJPqX9ApXRKXjOiKzhcqh5605dzgoz0N9e6olICrABPP3zWkjxuM?= =?us-ascii?q?beDh8iKQO42ennCNJj1tBWZWXaGaKdMaXPoXeU9+kvJK+Kf4ZTtzHjeNY/4Pu7?= =?us-ascii?q?q34ynlsUZuGI2pwMczjsGPVtJEGQejzthdAaCk8P4hp4S/bl3g7RGQVPbmq/Cv?= =?us-ascii?q?pvrgowD5irWN/O?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ESAwBctxxZhyIeaIFcHQEFAQsBGAEFA?= =?us-ascii?q?QsBgwGCF454oguHCotpVwEBAQEBAQEBAgECEAEBAQoLCQgoL4IzIoJEBidiUVc?= =?us-ascii?q?ZiFSBTwQBrms6hBGHJIZfgV6NcAWeEIIQiEGIPZF6SJN+gWIvIC5OhCcMRByBZ?= =?us-ascii?q?XSIZwEBAQ?= X-IPAS-Result: =?us-ascii?q?A0ESAwBctxxZhyIeaIFcHQEFAQsBGAEFAQsBgwGCF454ogu?= =?us-ascii?q?HCotpVwEBAQEBAQEBAgECEAEBAQoLCQgoL4IzIoJEBidiUVcZiFSBTwQBrms6h?= =?us-ascii?q?BGHJIZfgV6NcAWeEIIQiEGIPZF6SJN+gWIvIC5OhCcMRByBZXSIZwEBAQ?= X-IronPort-AV: E=Sophos;i="5.38,355,1491264000"; d="scan'208";a="7177100" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mx1.polytechnique.org ([129.104.30.34]) by emsm-gh1-uea10.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 May 2017 20:52:25 +0000 Received: from localhost.localdomain (81-66-120-207.rev.numericable.fr [81.66.120.207]) (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 CF5DC564753 for ; Wed, 17 May 2017 22:52:23 +0200 (CEST) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 2/2] libselinux: propagate selabel_subs_init() errors Date: Wed, 17 May 2017 22:51:46 +0200 Message-Id: <20170517205146.18315-2-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170517205146.18315-1-nicolas.iooss@m4x.org> References: <20170517205146.18315-1-nicolas.iooss@m4x.org> X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Wed May 17 22:52:24 2017 +0200 (CEST)) 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: Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Memory allocation failures in selabel_subs_init() should be fatal, contrary to failures which come from the non-existence of the substitution files (subs or subs_dist). Modify selabel_subs_init()'s prototype in order to return the error state. This forces the pointer to the created substitution list to be moved to an output function argument. Signed-off-by: Nicolas Iooss --- libselinux/src/label.c | 18 ++++++++++++------ libselinux/src/label_file.c | 24 +++++++++++++++++------- libselinux/src/label_internal.h | 4 ++-- 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/libselinux/src/label.c b/libselinux/src/label.c index 70f6809ead2f..b27c103a95fc 100644 --- a/libselinux/src/label.c +++ b/libselinux/src/label.c @@ -91,16 +91,20 @@ static char *selabel_sub(struct selabel_sub *ptr, const char *src) return NULL; } -struct selabel_sub *selabel_subs_init(const char *path, - struct selabel_digest *digest) +int selabel_subs_init(const char *path, struct selabel_digest *digest, + struct selabel_sub **out_subs) { char buf[1024]; FILE *cfg = fopen(path, "re"); struct selabel_sub *list = NULL, *sub = NULL; struct stat sb; + int status = -1; - if (!cfg) - return list; + *out_subs = NULL; + if (!cfg) { + /* If the file does not exist, it is not fatal */ + return (errno == ENOENT) ? 0 : -1; + } if (fstat(fileno(cfg), &sb) < 0) goto out; @@ -151,9 +155,12 @@ struct selabel_sub *selabel_subs_init(const char *path, if (digest_add_specfile(digest, cfg, NULL, sb.st_size, path) < 0) goto err; + *out_subs = list; + status = 0; + out: fclose(cfg); - return list; + return status; err: if (sub) free(sub->src); @@ -165,7 +172,6 @@ err: free(list); list = sub; } - list = NULL; goto out; } diff --git a/libselinux/src/label_file.c b/libselinux/src/label_file.c index 3ff759032cc1..c05b37a56efe 100644 --- a/libselinux/src/label_file.c +++ b/libselinux/src/label_file.c @@ -587,17 +587,27 @@ static int init(struct selabel_handle *rec, const struct selinux_opt *opts, char subs_file[PATH_MAX + 1]; /* Process local and distribution substitution files */ if (!path) { - rec->dist_subs = - selabel_subs_init(selinux_file_context_subs_dist_path(), - rec->digest); - rec->subs = selabel_subs_init(selinux_file_context_subs_path(), - rec->digest); + status = selabel_subs_init( + selinux_file_context_subs_dist_path(), + rec->digest, &rec->dist_subs); + if (status) + goto finish; + status = selabel_subs_init(selinux_file_context_subs_path(), + rec->digest, &rec->subs); + if (status) + goto finish; path = selinux_file_context_path(); } else { snprintf(subs_file, sizeof(subs_file), "%s.subs_dist", path); - rec->dist_subs = selabel_subs_init(subs_file, rec->digest); + status = selabel_subs_init(subs_file, rec->digest, + &rec->dist_subs); + if (status) + goto finish; snprintf(subs_file, sizeof(subs_file), "%s.subs", path); - rec->subs = selabel_subs_init(subs_file, rec->digest); + status = selabel_subs_init(subs_file, rec->digest, + &rec->subs); + if (status) + goto finish; } #endif diff --git a/libselinux/src/label_internal.h b/libselinux/src/label_internal.h index b03652ebc477..10f1e57850e1 100644 --- a/libselinux/src/label_internal.h +++ b/libselinux/src/label_internal.h @@ -75,8 +75,8 @@ extern int digest_add_specfile(struct selabel_digest *digest, FILE *fp, const char *path); extern void digest_gen_hash(struct selabel_digest *digest); -extern struct selabel_sub *selabel_subs_init(const char *path, - struct selabel_digest *digest); +extern int selabel_subs_init(const char *path, struct selabel_digest *digest, + struct selabel_sub **out_subs); struct selabel_lookup_rec { char * ctx_raw;