From patchwork Sun Jun 11 20:44:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9780191 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 AA39C60352 for ; Sun, 11 Jun 2017 20:45:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 92E03281B7 for ; Sun, 11 Jun 2017 20:45:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 85CF82843C; Sun, 11 Jun 2017 20:45:39 +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 EFE2928437 for ; Sun, 11 Jun 2017 20:45:37 +0000 (UTC) IronPort-PHdr: =?us-ascii?q?9a23=3AK8+5yRxk0dgIPdjXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1esVK/ad9pjvdHbS+e9qxAeQG96KtLQa2qGP7viocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDiwbalzIRiyogndq8kbjZd/Iast1xXFpWdFdf?= =?us-ascii?q?5Lzm1yP1KTmBj85sa0/JF99ilbpuws+c1dX6jkZqo0VbNXAigoPGAz/83rqALM?= =?us-ascii?q?TRCT6XsGU2UZiQRHDg7Y5xznRJjxsy/6tu1g2CmGOMD9UL45VSi+46ptVRTnhj?= =?us-ascii?q?0HNzok+2/JjMJ+gr9QrBa4qxBi34LYZYeYP+d8cKzAZ9MXXWpPUNhMWSJPAY2y?= =?us-ascii?q?aJMPAugcMetWsYb9vEADoQeiCQS2GO/i0CNEimPw0KYn0+ohCwbG3Ak4EtwWsX?= =?us-ascii?q?TbsNL1NKMIXuCu0aLGzjLDb/RN2Tfm9YPFdRYhofCQUrJ3dcre01IvGxnEjlWX?= =?us-ascii?q?rozlJCiV2/8Is2WU4OtsT+Wvi3QoqwxopDWk28QiipHRi44IxV3J+j91zYYoKd?= =?us-ascii?q?GiVkJ2bsCoHIFNuy2CNIZ6X9kuTmBptSog17EKp4K3cDIUxJg7xRPSbeGMfZKS?= =?us-ascii?q?7RL5TumRJC91hHdieL2imRm/6VOgyujgVsms11ZKszZFnsHMtn8T0xzT7dCKSu?= =?us-ascii?q?dn8Ue72DaPyhvT5vtYIUE0iaXbK5khzqQ2lpUPqkTMAjX6mED3jK+Sbkkk++6o?= =?us-ascii?q?5Pr7Yrj+u5OROIB5hhv+P6gzgMCzH+s1PhYUU2SG4ei80afs/Uz9QLVElP02la?= =?us-ascii?q?zZvYjBJcsFoq65AglV0pss6hqmFDim18kYnX8bI11bYxKKlJTpOlHSL/D4Cvez?= =?us-ascii?q?mVKskCxxyPzcMb3hBYvNImDZkLj9ZbZ991JcyA0rwNBd4JJUDKsOIO7zWkDrst?= =?us-ascii?q?zVFR05Mwuyw+biEtp9zZ8eVnyVAq+CKq/StkWI5u03KemWeIAVoCr9K+Qi5/P2?= =?us-ascii?q?j385m0UScrWq3ZsMb3C4GPVmI1uCbHrihtcBDGgLsREjTOzslF2CTCRfZ3GoX6?= =?us-ascii?q?Iz/js7Ep6pDZ/fRoCxh7yMxCm6HpxSZmBDFF+MC2zld4uaVPgRbyKSONVukiQe?= =?us-ascii?q?VbimSY8uyw2htBPgx7pgNOrU9TUStYj/29ht++3TiRYy+CRpAMuB1mGNSGd0nn?= =?us-ascii?q?8VSzItwqBwv1Z9ylaC0Kh/hfxUD9pT6O1VUg0iL57T0/R6C8zuWgLGZtqGVUqm?= =?us-ascii?q?Tc+8ATwqUt0xxNoObFpnFNW5khDPxSyqDKEJl7aTHpw77rrc32TtJ8Z603vH1K?= =?us-ascii?q?ggj14gQsZUMG2mgrdz9wnVB4LTlUWWjbyqdacd3C7T6miP12yOs19EUARoS6XK?= =?us-ascii?q?QWgfZlfKrdT+/k7NUaeuBq49MgtA0s6PMbNKZcfzjVVHX/fjINDebHitlGiuHx?= =?us-ascii?q?qIwamMbIXycWUHwCrdEFQEkxwU/XueOwg+HD2uo2TCAzxvDlLieEbs8fF/qH+i?= =?us-ascii?q?VU81wRqKY1dm17qv9R4fneacRO8L3rIYpCchrC15HFWn0NLVDNqAuhFsfKZGbt?= =?us-ascii?q?M+51dHyHjVtwtnPpyvN6pinEIRcxxrv0Py0BV6Ep9PntUwrHMr0gVyM7mV30ld?= =?us-ascii?q?eDOdx5zwPafXKmbq9hC1d6HWwk3e0MqR+qoX8/Q4pU/jvAayFko+6HhnyN9V03?= =?us-ascii?q?yS55XPFgUSV4j9UkAp+Bhmv7vaeDUy55vI1X1wNqm5qjHD1MgtBOs51BmgZcxf?= =?us-ascii?q?PbiaFADsCc0VHNWuKOkwl1iudBIEM/hY9LQoMMO+a/uGxKmrMf58nD27kGtH4Z?= =?us-ascii?q?py0kaX+iVgTe7I2ooKzOuD3gubTTv8ikmustzvk4BeeT4SBna/yTTjBINJYK1y?= =?us-ascii?q?fIILCWOwLM2s3dhxnYDiW2Rf9FK5AFMGwsCpcwKIb1PhxQ1QyVgXoXu/lCumzj?= =?us-ascii?q?x7jy0prq2F3CDU3+vidB0HOmhERGR5iVfsII60gMoAXEivdQQpkwGl5UnizahB?= =?us-ascii?q?uKt/N3XTQVtPfyXuK2FiU7Cwtqabb85U9pwotSRXUOKhYVGVUbP9uAMa0yLlH2?= =?us-ascii?q?tf2D87bCumupPnkBxmkGidNmp8rGLFecFswhfS/MbcRflV3joCWiZ4kyXYBl+y?= =?us-ascii?q?PtSy5tWUiovMsvukW2KmTJ1TfjHhzZmcuyuj+W1qHRq/kuirmtL9DAg61TX32M?= =?us-ascii?q?NwWSrTqxb8ZpXr16O8Me98e0lkGFn8681mFY1klIs/mo0Q02AAhpqJ5XoHjXvz?= =?us-ascii?q?MdJD1KL9cnUNQyULzsXW4Af73k1jNXSJyJzlVnmHxcthfda6aHsM2i0h98BKFL?= =?us-ascii?q?uU7LtckCtrpFq3sBncYeZ7njgAyfsi8ngajP8VuAA11CWSHqgSHVVEPSzrjxmI?= =?us-ascii?q?98qxrLhTZGu0bbew1VZ+nNC4ALGMuA5cXmz1epA4HS9/9s9/Kk7D0GXv6oH4f9?= =?us-ascii?q?nddcoTuQeJkxfEkedVMIg+lvwWhSV5I2LwpmAly/Ulghx0xpG2ppOHK2Jw/KKj?= =?us-ascii?q?HhFXKDP1Z8QJ+jHik6lShMCW0J6zHp95ADUEQIPoTe60EDIVrfnnORyBEDsgqn?= =?us-ascii?q?ecHLrSBgGf51l7oHLICZCkLWmXJGMezdVgWhaSOFBfjBoTXDUgkZ4zDhqqy9D5?= =?us-ascii?q?cEdl+jAR4Ub1qh5WxeJsMxnwTHvfpBuyZTguU5WfKgRZ7h1Z50jJK8Oe9vx8Ez?= =?us-ascii?q?te/pK/sAyHMnabaBhQDWEVRkyEAEjuPqO06djO6eSYA/CxL//JYbSOsuFRTeuH?= =?us-ascii?q?xZe13oth5TaMOd2FPmN+AP0jxkpDQXd5FtzXmzUVVSMYijnNYNSdpBeg/S13td?= =?us-ascii?q?uy/+73VwLq/4ePDKFSMdp38RCsnaiDL/KQhDp+KTtA0JMM32XHyKAH3FMJhSFu?= =?us-ascii?q?diOtEa8ctS7DTaLQnLVYDxgHZCNyLsRI67gw3g5XOc7Uktn1zKJ3juYpC1dZUl?= =?us-ascii?q?zsgtmpatIRLG6jMlPHBVqLNLOdKD3K3c74f72zRadXjOVOuB26oSybHFP7PjSf?= =?us-ascii?q?iznpUAiiPvxXjC6FJhNet5u9fQxzCWX4V9LpcB67MMJtjTIs27E0gm7KNWgGPj?= =?us-ascii?q?hmak9NsrqQ7SBYg/V4AWBB6GRqLfWckSaD8+bYMooWsedsAilsjOJV+mo6xKFa?= =?us-ascii?q?7C5aX/x4gzDSocRwo168nemA1CFnXABIqjlVmIKBpV9iNrnB9plcRXbE+woA4n?= =?us-ascii?q?6RCxQFoNtlDMbitL1OxdfUlaL8MjFC/8jT/csGCMjeMNiHP2Y5MRr1BD7UCxMI?= =?us-ascii?q?QiSkNW7FmUxSjuqf9nqNrpckrJjsnYABSr5fVFMuEfMbBV5pHNsYIJd4Rjkki6?= =?us-ascii?q?KUjNYU5XqiqxncXNlavpfCVv6IG/XvLzeYgqdCZxQT27P4KpocNo7g1kN+bVl6?= =?us-ascii?q?mZjFFFDLXdBRuCFhaBE7oFlV+nhkUmIzw17lah+q4HILFv61nho2hRVlbOQo8z?= =?us-ascii?q?fs7Vk3KUTWpCsskEkxntDlji6LfD73MqiwQZlcCzDouEgpLpP7XwF1YBW0nUN6?= =?us-ascii?q?LjjEQ6lcj7hndWBwlA/To51PGeVfTa1FehMQw++YZ+kw21RGtiqn3VNH5ffCCZ?= =?us-ascii?q?Z6jgslb4WsoGxa1AJ5cNE1JbfdK7FIzlhKm62OuSGo1vgrwAAAJ0cB6mWSdzAU?= =?us-ascii?q?uEYQLLkpOzKo/vBw6QyFgzZMZW8MV/wsov136Ew9P+WAwjn63LFdMECxMPaTL6?= =?us-ascii?q?SDu2jPjcSIWE8/1lsUl0lZ+rh7ydosfFCKV0Au0bSRDA8EOtDYKQFPaMpT+mPT?= =?us-ascii?q?cjiSvuXQ25J1Ppm9F+DyQe+IqqkUnlquHBw1EIQU8sQBAp6s3VncLcfgNr4K1x?= =?us-ascii?q?Mt5QXsJFieA/RJfg+LnC0Ao8Glw599xZNdKS0FAWVhLSW34a7aphQ0j/qHXdc2?= =?us-ascii?q?ZGoaX4QfO30qX826njJWsG5bDDmryO4ZzhaN7yPkrCTKEDb8d8ZjZOuTZR50C9?= =?us-ascii?q?G24zU+/LKwiV7L8pXTPG76NdN6utDT8+8aoYiIC+9MR7lnr0jcg5VYR2CtU2PX?= =?us-ascii?q?Dd61Jp3wa44wbdz0Cne3SUGwizM1TsjrJ9mhNK6Ijh/0RYxMqomUwCgjNdOhFj?= =?us-ascii?q?EZAxp/veUD5KNgagIde5U7ZB7ptwI5N6y5OgiVyc6hQ2e3JjtQVvVfw/i6a6ZR?= =?us-ascii?q?zyUycu+w0GEgQY0iz+mr7U4NQ4kHgQrAyvalfIRRSzX8GmJDdAXVvio2jXJhN+?= =?us-ascii?q?Yozuc42hPIvkEWMyqXe+xxdGxEo9Y8CEudIXVrC2o4Q1ucgpTG4gO3wr8d4TBS?= =?us-ascii?q?n9dO3u1DqnT+uYXfYD20UqyxtZrVqzYgbcQho6BpK4zjJMqGu4/enjzYSJnQqR?= =?us-ascii?q?WLXjenGfRAhtVeJzlVT+VPmWEgJcMJo5FB6VYrWsc4ObNPFLEmpqq2Zjp8ES4S?= =?us-ascii?q?0SgZWpua3DMfn+ixwLTalhKfcZg4NhwLrolCiMMHUyFqeiMeuLOjV4LOmm+eUG?= =?us-ascii?q?cLOgAT4h9X6QIcjI9/ZP7l75TMTJ9NzT5WrPZ0UirEFplo61v7RHuZgUL9SPm7?= =?us-ascii?q?leymwx5Sxur20tYHQB5/FVRdx+FOm0omMr14N6kQvo/Psj+Jb0z6v3ngyOq4K1?= =?us-ascii?q?ZP18LYbVr4DJDKtWDkSC0T5WUURZNTyHHYDZkdiRB5aLstpFlWI4CrYUf+5z0l?= =?us-ascii?q?x4R1BLa0T8aryEg5rXweXSelD8JBC/16sFLQQDBlYparqIn7NJVWXGBQ/YOSq0?= =?us-ascii?q?tDkERtKCO5zoJcJN9L4j4JRjdPoDGds8C1SMxMw8N2CIUMIthnsXfnBKxEIISR?= =?us-ascii?q?o2ExurH3xX/Z4SozsFGmxDioGq+4SOxY/2sCGgUpOWueq08vD/cy/WfI6FzNtE?= =?us-ascii?q?57//tDDLiVkUpxuCp9HoxJBjtRyXClKFFzQWJas+lGLaTaaNZQQ/8sah+zIxY+?= =?us-ascii?q?D+Ip31SV/UFomnf0eyxyuRFA+y/HWwk7SDIYjarzlj0GssGoJzsaRIxSbTk7aC?= =?us-ascii?q?fFMQ2bkzhNvBlDc0FqR4wZAtFd9rEZ2otb4NHPRluyJiEeQhNiLB443uRCmkJZ?= =?us-ascii?q?tkWXZzzdBxKydfnTqh13YduRrMmxIfvi8gdIlp/rveIl+6gNXHCphQqtQdXCoI?= =?us-ascii?q?Dmrd2KqlGCdKHmPO2geXXBViTDjQishbc4CJnH5zLTPxRGJJl603UkfYPsCWrM?= =?us-ascii?q?PRRYOa0XOVZUVadnZtpYuOxaYdFreLoR8693Gh2HXg/vGJCorPReNlbTXijeID?= =?us-ascii?q?+c/eyjuo/T9rvdSfX6ZsOQ2XnHRb53Po1g5jn/Abvq1pVe+kXu0Pd36kx6UUTG?= =?us-ascii?q?MzyGrNn5OgML/teteVX/sZAyADPWBItwkGD3yUFedsoXRCmq/4oEyJ9D73bwU+?= =?us-ascii?q?142FDpsOJO77lk9ZU347dxxMe2P6jSM/NasVRjAheOGAVn7ZAtAHV7R2BNY+8e?= =?us-ascii?q?NPbRcr4fjcD1sez3ELYX6BKN8exDddTHP13BmtW4CjyESxxLhgEBqTAALgubyv?= =?us-ascii?q?GKhbR5Sdq/quj/wUIt5EKyLhgYw7Bx/Y2E4LaHpPfLbxvNyrgJQq7qRsfoo7Qt?= =?us-ascii?q?vUOS4OcolL8Iemx7eQ2oCvMdVtIHxmf90a8q0T8sE9ndEL76//5DTX05lCr6m5?= =?us-ascii?q?9hB1UWBu8UHb2T8IRYn2c3h+vZNtkMfaBZgGqPFBmkErgZyX6w8CaXJWZogx7U?= =?us-ascii?q?3xH3W2Oz40f8rTVkTivU09fjjk1VW6GrCkhIWyqmJ1R4sC+PPQrvr9f3org67E?= =?us-ascii?q?AoPWziqNKNlXGuNKlRH8LhONyWOTM0q04PjJ0tWtyv3pgWGd6mINcU8HxzdfXe?= =?us-ascii?q?5H22nC9GuadInZLe4tuS+vXVA3avk7Gap6+KxDBCxXgypUs/5cy4NvHS+92KRO?= =?us-ascii?q?yl12QQTyd6oAbBWgC6q7zFoFAOOEyL1kjLlJYMPt5HwXkyzlvm6/Q7QNIv6AVe?= =?us-ascii?q?EZ7NZ/IDpD/pIjT73U2SY8kpWSmCzTRYAkj5EV5iGKgzwGjwpt7GlW/M+100QY?= =?us-ascii?q?l9b1fohR1sD4Q2M00t6lkXwjYbEQcXdBCbCKqlCljiLYQZS0cMcwmH3KK9eqct?= =?us-ascii?q?x0J/2LSv5PXcbeZkHaoCKu5djhKSnFhcAp8WqbcRQK5gdF9d+q/XoRLiC4v+U/?= =?us-ascii?q?j9i3UwMfy1QsZH8cEWrHYi+hywRwa85pdD4bcbj4qIdq1ebZjPos989UFn6iAL?= =?us-ascii?q?diBXhxh/lRy5W/gGpO//+tjbrIao6uG2WaYxXeUY6Rw0CH54j5Tum10svNDX1+?= =?us-ascii?q?hdSo3Jk4v/6xpCI2SXuIrA1RlzN/YOIZqxfLl873UHOzQeJ3UWMNqZcfY8+TFi?= =?us-ascii?q?MCnT51FZBsMMZM8YM9TNmQ9Ol03pQ6tf9szFFV+EE41zbdwn73LryDAp9psxSu?= =?us-ascii?q?ng5yGwJZDD6FFNOPRPjD5ym9LGpegVx+fSCScM7HmddRd12CODxIOXB/b24+qM?= =?us-ascii?q?1MneV0kaES4uT4ddOD2C9BS7Seq3jprmThiZ5dP0gJI6cEKQR2K+nL4ZsqlSDe?= =?us-ascii?q?FAij/33j9EFoD6n/iVqcaj6HNLtl1bF4Z+9RjFGKJZPpVnNhT3iNKmRk19BiTl?= =?us-ascii?q?fsHbaAYuueSRxucW4OV+LFHyZYkFLRIY07j682ZaThNySL7quVaURe0Ra8d9SP?= =?us-ascii?q?Pft3xb9I1uJakOPFibuZzroSxFqF8zAAAzbr8/sCZWdk7UnA1aQ6z0oqIPihMA?= =?us-ascii?q?Ud5lvk9BAWCwOGU+5zrBT6hakKmRCPgI8jqOT60OUkNoMjh9QxO0w5huZbqpne?= =?us-ascii?q?5dvWNCgyx9oeIm0zp4SxugoSfsvb4C2So8+LGkszUMoX1FTvuEnCfOElhDyOkK?= =?us-ascii?q?grodC3bl8lywen4DbJH94LN/P8Tv6ZEh42gjYRUkZyAGX/qvCy/+j6OMGYGOvs?= =?us-ascii?q?hThBiTt8XSd7OzKzYdNqglwxL5W3d9yhTenApv8GYTTTWg6NgkJYujNsYhwiql?= =?us-ascii?q?AnPbdFEK4qNIrMT9r1gLQ/UqaVl52mVsztCHRjERRMzIA2s1jAgkaGVccJJE7R?= =?us-ascii?q?8aFrUojSiTs6lD/wEUfC3UHZq/9onXh8fI1mE3Tc12yWLOuq2FmpQq3WV5m9N1?= =?us-ascii?q?6y6Do2gSd+3EXM9vHHfz0p1TyergaPWxquoHUpdpyKy9UP8eNcmu4W622JRpWk?= =?us-ascii?q?+mwbQTBFi5P/UAxrfcVSeqV2uYVf6Nc2eSgzYzKlTy6gWwLl0rdMdKqFcwPfDc?= =?us-ascii?q?iZ5aiw3sSqh0RiGXpV/H0GwjL/0VeB8stIegYQwKQ/YbZ/KAKug23P0+FFwMYm?= =?us-ascii?q?fRHStxD++5q0StnYZ8O3Vk70X3euHt8gfhMNuJBBYLDZTarplq+fyhR2KBP3Bg?= =?us-ascii?q?wAd1PElu+OfVD04xufNEc5aNgdjQgMx20eAbePdpMC09osAcl5li6ImV1ceKdA?= =?us-ascii?q?/ezoz2Jd7LuPSYBOffz0sycGFATrUZeR/155k9PtMhVbzTBaFZvRUACqckW5Eh?= =?us-ascii?q?Mmbx9L1uLAxtaALRY660gsbyrOKRepRUv2PW7k43LCrEvB0DzuK7QBdjb5CunX?= =?us-ascii?q?ryO4wwRjNdoN1xEBtpApVAF9kGrwW5H56egLu7hMOp+0Nmp+8KtrL9CvTL1NS/?= =?us-ascii?q?woVwUIFW5UiKPDbKGKlrmV9ojuWojffG1Zn9E8TieckLVOJjWG7KdqfGHpmjKj?= =?us-ascii?q?KJIs/8YFBJ87qd0LJ/TxWQayf1UaWatC2kKvpk+1s0ypRic+fIzzwi8avb2N3s?= =?us-ascii?q?aGFfvSijsHGJOIFY7FzQCuzURwhURuad8GZ5Aa0XapP59OIUPtM+wNic4g9z7D?= =?us-ascii?q?NZ3cubIqihqFHD2kZ6dZLdMUvo1Dw1WY4QIBSwKUEsm3PWqmzBAXRAKcipMctt?= =?us-ascii?q?j8yWDhzq/EZ8gnwtZmhdGmroQteRJGcb28KiZAGQ8gJEEcoDlfateUEkrq2yVf?= =?us-ascii?q?VoOpJdlOqxr7oLltJpKyDURMhGJCHcNqR2MSRNAenVv1gnfBoEs7kzWocoapmD?= =?us-ascii?q?O18IMUeaySPv1gvOy0P1eMaw1KaSJyYW9G9Lz7Xf0ThDvwO5o+qWgtX/ULDFa5?= =?us-ascii?q?H7RPHSPzA+WTGARDQ9D0Kp9Ey6u/oApvWYOmYfok0ObiKUFgETurhlrcLMAW/L?= =?us-ascii?q?he1jYJoKieiYWyD1Ty14jrAyBidQtU2XRfoMDwzWYGHggGZGvwyiPPBM92r/b7?= =?us-ascii?q?KE3qpVR/AWAoxUf/2CTdvYfOxRKjYrmzgCJuazYcfcr7c401LPS2sVCa/I+0OC?= =?us-ascii?q?TB3efvvJ3D/vXIMIr6AoqyEo/ZTWhSYxHKPWbJiFoDv71I+ziyKRoqX/UW42eA?= =?us-ascii?q?RhhuMJB22I219BL2YfEPkQ5FGrRbSPMRUfnEk1gP5jjkdfMD94VWdjhzgPxPs?= =?us-ascii?q?=3D?= X-IPAS-Result: =?us-ascii?q?A2EXCgB/qz1Z/wHyM5Bdg10rYoENjn+TBwGPFoZqKAeBc4c?= =?us-ascii?q?MVwEBAQEBAQEBAgECaCiCMySBK1tDAiRVAwkCFzEIAwFsBYhVgVIEAbF1OiYCg?= =?us-ascii?q?2mIBYZhiTmGJAEEiUaITIwtghSFF4M3iFqCE4klDIZPSJQkWIEKMCEwhVkDHBm?= =?us-ascii?q?BT3SHXYI/AQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 11 Jun 2017 20:45:35 +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 v5BKimv4009669; Sun, 11 Jun 2017 16:44:57 -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 v5BKij0X246347 for ; Sun, 11 Jun 2017 16:44: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 v5BKiiVa009666 for ; Sun, 11 Jun 2017 16:44:45 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1DLAACXqj1ZhyIeaIFdHAEBCgEBBAEBgy2BDYENjn+iHoZqIwUHiH9XAQIBAQEBAQITAQEBCgsJCCiFdYIjiFqBUgQBsXM6hBGIBYZhiTmDWYJLBYlGiEyMLYIUhReDN4haghOJMYZPSJQkgWEwITCFDAELAUADHBmBT3SHXYI/AQEB X-IPAS-Result: A1DLAACXqj1ZhyIeaIFdHAEBCgEBBAEBgy2BDYENjn+iHoZqIwUHiH9XAQIBAQEBAQITAQEBCgsJCCiFdYIjiFqBUgQBsXM6hBGIBYZhiTmDWYJLBYlGiEyMLYIUhReDN4haghOJMYZPSJQkgWEwITCFDAELAUADHBmBT3SHXYI/AQEB X-IronPort-AV: E=Sophos;i="5.39,330,1493697600"; d="scan'208";a="6086691" 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; 11 Jun 2017 16:44:43 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AozMBkBPJhH3TYHzctKMl6mtUPXoX/o7sNwtQ0KIM?= =?us-ascii?q?zox0LfTyrarrMEGX3/hxlliBBdydsKMbzbSH+Pm9ASQp2tWoiDg6aptCVhsI24?= =?us-ascii?q?09vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7?= =?us-ascii?q?Ovr6GpLIj8Swyuu+54Dfbx9GiTe5Y75+NhS7oAHeusULgYZuNrs6xwfUrHdPZ+?= =?us-ascii?q?lY335jK0iJnxb76Mew/Zpj/DpVtvk86cNOUrj0crohQ7BAAzsoL2465MvwtRne?= =?us-ascii?q?VgSP/WcTUn8XkhVTHQfI6gzxU4rrvSv7sup93zSaPdHzQLspVzmu87tnRRn1gy?= =?us-ascii?q?oBKjU38nzYitZogaxbvhyvuhJxzY3TboyOKPZyYrnQcc8ASGZdQspcUTFKDIOm?= =?us-ascii?q?b4sICuoMJf5Wr4jhqFsJqRuxHxKsD/7sxD9PgX/2xrY62PkmHAHA3QwvA9UOsH?= =?us-ascii?q?DOo9XuLqsSUOe1zK7TzTXYdP5W3Djw6YfSfhAmu/GMUqt9fMzMwkcsDwPIlkic?= =?us-ascii?q?pZLhMj+Py+gBr2eW4/BuWO6zkWIqpQ58riCsy8sxkIXEh4MYxkrZ+Sln3Io5P8?= =?us-ascii?q?O0RFJ5bNOiDZBerTuVN5FsTcMnW2xouDg1yrkBuZOjeSgLx4krywTHa/yAd4iJ?= =?us-ascii?q?4g7jW/iNLjd4gnJleau/hwus/kS6ze38TMa03E5LripDjNbMqmgA2wHN5sWDUP?= =?us-ascii?q?dx41ut1DmV2w3d9u1IO045mKXDJ54k2LEwl54TsUrZHi/xnUX7lLKYeFk59OS0?= =?us-ascii?q?8+noYa/opoWFN4JsigzwKbwjmsmwDOU3KAQOWHKb+euk2b3l/E32XLJKjvksna?= =?us-ascii?q?nCqpzaJMMbpqmiAw9OyYss8BG/Dyqg0NsEg3YHN0hJeBeIgonmIV3OJ+r4Dfin?= =?us-ascii?q?j1S2jDhr3+zGPqHmApjVNXjMjrPhfbd7605Bxws+1sxf5pJIBbEBJ/L/QEnxtM?= =?us-ascii?q?fCARMjPAy0xPjnW51B0dYFVGaOBLKJGL/Dul+PoOQ0Kq+DY5FGliz6Lq0D5vXp?= =?us-ascii?q?iXYi0X4aerKylc8RaXu/Gv19ZUSeZmH3qtJdASENpAVoH7+is0GLTTMGPyX6ZK?= =?us-ascii?q?k7/DxuUI8=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0HEAQDTqj1ZhyIeaIFdHQELAQUBFwEBC?= =?us-ascii?q?gEBBAEBgwKBDYENjn+TCI8Whw0MgXOHDFcBAQEBAQEBAQIBAhABAQEKCwkIKC+?= =?us-ascii?q?CMyKBLVtpgiOIWoFSBAGxczqEEYgFhmGJOYYkBYlGiEyMLYIUhReDN4haghOJM?= =?us-ascii?q?YZPSJQkgWIwITCFDAELAUADHBmBT3SHXYI/AQEB?= X-IPAS-Result: =?us-ascii?q?A0HEAQDTqj1ZhyIeaIFdHQELAQUBFwEBCgEBBAEBgwKBDYE?= =?us-ascii?q?Njn+TCI8Whw0MgXOHDFcBAQEBAQEBAQIBAhABAQEKCwkIKC+CMyKBLVtpgiOIW?= =?us-ascii?q?oFSBAGxczqEEYgFhmGJOYYkBYlGiEyMLYIUhReDN4haghOJMYZPSJQkgWIwITC?= =?us-ascii?q?FDAELAUADHBmBT3SHXYI/AQEB?= X-IronPort-AV: E=Sophos;i="5.39,330,1493683200"; d="scan'208";a="6547238" 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; 11 Jun 2017 20:44:42 +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 7DCC1564678 for ; Sun, 11 Jun 2017 22:44:39 +0200 (CEST) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 1/1] libsepol: destroy the expanded level when mls_semantic_level_expand() fails Date: Sun, 11 Jun 2017 22:44:16 +0200 Message-Id: <20170611204416.5550-1-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.13.0 X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Sun Jun 11 22:44:39 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 In mls_semantic_range_expand(), when a call to mls_semantic_level_expand() fails, the function destroys the semantic level instead of the expanded one. This leads to a use-after-free which is reported by gcc's Address Sanitizer: libsepol.mls_semantic_level_expand: mls_semantic_level_expand: invalid sensitivity level found 128/0. libsepol.sepol_module_package_read: invalid module in module package (at section 0) Failed to read policy package ================================================================= ==24456==ERROR: AddressSanitizer: heap-use-after-free on address 0x60200000ee58 at pc 0x7fe6c4fb96b4 bp 0x7fffa5ea6b70 sp 0x7fffa5ea6b60 READ of size 8 at 0x60200000ee58 thread T0 #0 0x7fe6c4fb96b3 in mls_semantic_level_destroy /usr/src/selinux/libsepol/src/mls.c:755 #1 0x7fe6c4fb9b88 in mls_semantic_range_destroy /usr/src/selinux/libsepol/src/mls.c:802 #2 0x7fe6c500e8ab in user_datum_destroy /usr/src/selinux/libsepol/src/policydb.c:535 #3 0x7fe6c500e980 in user_destroy /usr/src/selinux/libsepol/src/policydb.c:1390 #4 0x7fe6c4f36c48 in hashtab_map /usr/src/selinux/libsepol/src/hashtab.c:235 #5 0x7fe6c50152da in symtabs_destroy /usr/src/selinux/libsepol/src/policydb.c:1595 #6 0x7fe6c5015433 in policydb_destroy /usr/src/selinux/libsepol/src/policydb.c:1503 #7 0x7fe6c5040e0d in sepol_policydb_free /usr/src/selinux/libsepol/src/policydb_public.c:82 #8 0x7fe6c4fbc503 in sepol_module_package_free /usr/src/selinux/libsepol/src/module.c:143 #9 0x7fe6c4fefefb in sepol_ppfile_to_module_package /usr/src/selinux/libsepol/src/module_to_cil.c:4293 #10 0x401e51 in main /usr/src/selinux/policycoreutils/hll/pp/pp.c:124 #11 0x7fe6c4add510 in __libc_start_main (/usr/lib/libc.so.6+0x20510) #12 0x402589 in _start (/usr/src/selinux/DESTDIR/usr/libexec/selinux/hll/pp+0x402589) 0x60200000ee58 is located 8 bytes inside of 16-byte region [0x60200000ee50,0x60200000ee60) freed by thread T0 here: #0 0x7fe6c5537ae0 in __interceptor_free /build/gcc-multilib/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:45 #1 0x7fe6c4fb969b in mls_semantic_level_destroy /usr/src/selinux/libsepol/src/mls.c:757 #2 0x7fe6c4f02a57 in mls_semantic_range_expand /usr/src/selinux/libsepol/src/expand.c:948 #3 0x7fe6c5007a98 in policydb_user_cache /usr/src/selinux/libsepol/src/policydb.c:939 #4 0x7fe6c4f36c48 in hashtab_map /usr/src/selinux/libsepol/src/hashtab.c:235 #5 0x7fe6c5013859 in policydb_index_others /usr/src/selinux/libsepol/src/policydb.c:1286 #6 0x7fe6c5020b65 in policydb_read /usr/src/selinux/libsepol/src/policydb.c:4342 #7 0x7fe6c4fc0cdb in sepol_module_package_read /usr/src/selinux/libsepol/src/module.c:618 #8 0x7fe6c4ff008d in sepol_ppfile_to_module_package /usr/src/selinux/libsepol/src/module_to_cil.c:4276 #9 0x401e51 in main /usr/src/selinux/policycoreutils/hll/pp/pp.c:124 #10 0x7fe6c4add510 in __libc_start_main (/usr/lib/libc.so.6+0x20510) previously allocated by thread T0 here: #0 0x7fe6c5537e40 in __interceptor_malloc /build/gcc-multilib/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:62 #1 0x7fe6c5004efc in mls_read_semantic_level_helper /usr/src/selinux/libsepol/src/policydb.c:1976 #2 0x7fe6c500f596 in mls_read_semantic_range_helper /usr/src/selinux/libsepol/src/policydb.c:2010 #3 0x7fe6c500f596 in user_read /usr/src/selinux/libsepol/src/policydb.c:3258 #4 0x7fe6c502055b in policydb_read /usr/src/selinux/libsepol/src/policydb.c:4286 #5 0x7fe6c4fc0cdb in sepol_module_package_read /usr/src/selinux/libsepol/src/module.c:618 #6 0x7fe6c4ff008d in sepol_ppfile_to_module_package /usr/src/selinux/libsepol/src/module_to_cil.c:4276 #7 0x401e51 in main /usr/src/selinux/policycoreutils/hll/pp/pp.c:124 #8 0x7fe6c4add510 in __libc_start_main (/usr/lib/libc.so.6+0x20510) SUMMARY: AddressSanitizer: heap-use-after-free /usr/src/selinux/libsepol/src/mls.c:755 in mls_semantic_level_destroy Shadow bytes around the buggy address: 0x0c047fff9d70: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff9d80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff9d90: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff9da0: fa fa fa fa fa fa fa fa fa fa 01 fa fa fa 01 fa 0x0c047fff9db0: fa fa 01 fa fa fa 01 fa fa fa 01 fa fa fa 01 fa =>0x0c047fff9dc0: fa fa 00 00 fa fa 00 00 fa fa fd[fd]fa fa fd fd 0x0c047fff9dd0: fa fa fd fd fa fa fd fd fa fa fd fa fa fa fd fd 0x0c047fff9de0: fa fa 04 fa fa fa 00 01 fa fa fd fd fa fa fd fd 0x0c047fff9df0: fa fa fd fd fa fa fd fd fa fa 00 00 fa fa fd fd 0x0c047fff9e00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff9e10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Heap right redzone: fb Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack partial redzone: f4 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==24456==ABORTING This issue has been found while fuzzing hll/pp with the American Fuzzy Lop. Signed-off-by: Nicolas Iooss --- libsepol/src/expand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libsepol/src/expand.c b/libsepol/src/expand.c index 283c93a803ce..6f1b235e92e2 100644 --- a/libsepol/src/expand.c +++ b/libsepol/src/expand.c @@ -939,7 +939,7 @@ int mls_semantic_range_expand(mls_semantic_range_t * sr, mls_range_t * r, return -1; if (mls_semantic_level_expand(&sr->level[1], &r->level[1], p, h) < 0) { - mls_semantic_level_destroy(&sr->level[0]); + mls_level_destroy(&r->level[0]); return -1; }