From patchwork Tue Mar 28 21:41:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9650551 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 43B93601D7 for ; Tue, 28 Mar 2017 21:43:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3C419283F3 for ; Tue, 28 Mar 2017 21:43:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 30F1C2841C; Tue, 28 Mar 2017 21:43:40 +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]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7E4FA283F3 for ; Tue, 28 Mar 2017 21:43:39 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.36,238,1486425600"; d="scan'208";a="4387122" IronPort-PHdr: =?us-ascii?q?9a23=3AHBu3xh8j0EVjbP9uRHKM819IXTAuvvDOBiVQ1KB5?= =?us-ascii?q?0e0SIJqq85mqBkHD//Il1AaPBtSGraIawLKP+4nbGkU4qa6bt34DdJEeHzQksu?= =?us-ascii?q?4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1?= =?us-ascii?q?Ov71GonPhMiryuy+4ZPebgFIiTanYr5/LRq6oRnMusILnYZsN6E9xwfTrHBVYe?= =?us-ascii?q?pW32RoJVySnxb4+Mi9+YNo/jpTtfw86cNOSL32cKskQ7NWCjQmKH0169bwtRbf?= =?us-ascii?q?VwuP52ATXXsQnxFVHgXK9hD6XpP2sivnqupw3TSRMMPqQbwoXzmp8qlkSAXsiC?= =?us-ascii?q?waKTA39m/ZgdF0gK5CvR6tuxlzzojJa4+XKfV+ZLvQc9MES2RcUMhfVCtPDYGy?= =?us-ascii?q?b4sXDecNIOhVoIbhqFUBsxS+HhKhBP/txzJSmnP7x7E23/onHArb3AIgBdUOsH?= =?us-ascii?q?HModvtNacdTee1zK3SwjXYcvhY2jD96I/TchA6vPqBWrRwccvNxkkoEwPKlE6Q?= =?us-ascii?q?pZbkPzOS0eQNqHOb4vFlVe+ghG8rsQZxoiKgxso1jITCm4Ebykjc+Clkz4s4Ks?= =?us-ascii?q?e0RU5mbdK+DpdduD+WO5FrTs86QGxkpTw2x7wHtJKhYSQG1ogrywTBZ/CbcYWF?= =?us-ascii?q?5A/oWvyLLjdinn1lfaqyhxO18Ue91OLxTtK00FNWripdldnMq2wN2wTT6seZTv?= =?us-ascii?q?t9+V+s2SqV2ADJ6+FEPFs0mbDHK58h3rEwlp0TvV7FHiDqg0X5kLWadkAl+uis?= =?us-ascii?q?8+jnY7PmqYGAN4Jslw3zPasjlta/DOglKAQCQWeW9fqm2LH+5UH5Ra9Fjvwykq?= =?us-ascii?q?nXqpDaIsEbq7aiAwBL1oYj6hC/Dyqp0dgBhnYHK09FeBSbgIf3IFHDO+z4DPej?= =?us-ascii?q?jFSslzdn3fbGPqb7DZnXIXjDl6nhca5n60FA0Aoz0cxf55VMB7EDJ/LzXFX+tM?= =?us-ascii?q?DYDhAjNQy52OTnCNJ71oMbQ22PGbOZP73IsV+T/O4vJPOMZIANsjbnN/cl/+Lu?= =?us-ascii?q?jWM+mVIFf6mp34EYZ2y7HvR9JEWZZ3vsgskaHGcEugo+UePrh0afUT5Ve3ayQr?= =?us-ascii?q?gw5jYhCIKpFY3DXJyigKSd3CenGZ1bfm5HClGIEXftaYqEQewBaCyMLcB8lTwE?= =?us-ascii?q?T6KuS5c71RGptg/11aZoLvbO9i0fr5Lj28B/5/fPmhEq6Tx0E8Od3nmQQG5om2?= =?us-ascii?q?MIQDk23LxirUFm1FeMz7J4g/1ZFNxU4fNFSAE6OoDAz+ZiEdD9RhrBfsuVSFah?= =?us-ascii?q?WtipHC0xQcgrw9IVf0l9HNCigQzZ0CqxH78ZjbqLC4Io8qjExXj+O959y2ra1K?= =?us-ascii?q?kml1QnQspONWqghqNk8gjTA5fFk0Sfl6qwc6QTxjTN9GSCzWqQok5USghwXrvZ?= =?us-ascii?q?XXoHfEvZscz55l/eT7+pEbkoLBNBxtSYKqtLcd3klk1GS+35ONTfeGKxg2OwCg?= =?us-ascii?q?yUybySdobqfH8d3CrFAkgejw8T5WqGNRQ5Biq5rWLeFiZhFVTzbEPt6ulzs3a7?= =?us-ascii?q?Tlc1zw2TdE1g2aG19gQShfyGRPMZxqgEtzs5qzVoAFa92MrbC9maqApie6VcfM?= =?us-ascii?q?gw4FRd2mLasAx9I4asL6d4hl4Raw53pV/h1w1rCoVclsgntGklwxdoKaKZzlxB?= =?us-ascii?q?bSiV0orsNb3SMGXy+wqva6HO0FHEzNmW4rsP6Og/q1j7vAGmCE4i83Fg09RO13?= =?us-ascii?q?uc+4nKDA0XUZ3rSEo38AJ6p77CaCkn+4zUzWFsMbWzsjLawNIpCvElyhG7f9dD?= =?us-ascii?q?K66EDwnyE8oUBsirMuMqnUKlbhQaM+BO7KQ0Jd+pd+Oa2K63O+ZthDyngn5D4I?= =?us-ascii?q?BhzE2M7TF8R/XW35kb2fGXxRaHVzLmgFemqMD3lphOZSsOEWqn1SjkGIlRa7Vu?= =?us-ascii?q?fYkWFGiuIte4xtFlipHxXH5Y8UKsCEkd2M+1YxaSaULy3RFI30QNvXOngTe4zy?= =?us-ascii?q?BzkzwxqKqf3SjOw+D8exocIWNEXndtjU3rIYSuiNAaRkeoZRAzlBS5/Ub627Rb?= =?us-ascii?q?pKNnImnNQEdHYzT2L2Z4UqeqqrWCY8lP6JUnsShMVOS8YFaaRaTnoxsdyS/jGH?= =?us-ascii?q?FexD8jfTGwppr5hwB6iH6aLHtrqHrZeNpwxQvG6NzHW/FR2jsGRC9liTjYHVW8?= =?us-ascii?q?JMGp/dSSl5fCru++THitVptNfin31YmArje05XV2AR2jmPC+gsfnEQ8+0S//yd?= =?us-ascii?q?ZqTznHrBHyY4TwzKS6LP5oflJyCF/78cp6FZl0kpEsi5EIxXgampKV8GIfkWjp?= =?us-ascii?q?LNVb3bjyY2AXSTEQxN7V5BTl2EplLn+SwoL1SnOdwsx9aNWgZGMZxD495dhQCK?= =?us-ascii?q?iI9LxEgTd1ol2goALSf/d9mCwdxOAt6HEEheEJowwtwTuBArwIGklYJyPsnQyS?= =?us-ascii?q?79+itKVXeHqvcb+o2Upgm9CuEaqPoh9aWHnkepcuBylw4dtjMFjUyn389pnkeM?= =?us-ascii?q?XMbdIUrhCUiw3Pj/VRKJ8qivUKhDZnOGLksX0r0eE7iwZi3ZagvIiIM29t5r62?= =?us-ascii?q?AgZENj3pYMMe4intgrxDnsaSwY+vBo9uGjMXXJT2V/KlCy8Ste/5OAaUCz0wsG?= =?us-ascii?q?ybGb3CHQ+F9EhpsXzPE5exN3GYOnYV19NiSweBJEZHmgAbQC06noIlFgCt3MHh?= =?us-ascii?q?fl125jYN5l7/rxtB0exoOAfiXWfYvgencC80SIKYLBpU8A5N+1vVPdaZ7uJpEC?= =?us-ascii?q?FS5oehoxCVKmyHewRICnkEWkmeCFDnOrmh+8XA8/SCCeWkNPbOZ6uBqfBFV/iU?= =?us-ascii?q?352vypVp8yyKNsqRInloF+c71VZbXXBlB8TZnC0CSzYNmyPDdcKboQ2z+ilwrs?= =?us-ascii?q?G/6/nkQh7g5Y6VB7tVK9Vv9Ai8gb2fOO6ImCZ5NTFY24sCxX/S1rcQwUUShDto?= =?us-ascii?q?dzmxFrQArjXAQ7jMla9SFRIbbDlzNMRQ5aImwgZNIdLbis/y1rNgiP41EU1KVU?= =?us-ascii?q?T5msyya8wKInu9NEjbBEaFNbSGIyfEw8frbqO9U7JQiP9YtxqquTaUC0XjJCiM?= =?us-ascii?q?lyH1VxCzNuFBlDmbMwJFt46jdBZtCHTjTNX9Zx26LtB4kyM5zaczhnPQOm4WKS?= =?us-ascii?q?J8fF9Vrr2M8SNYhe1yFHda4XZiKemEmj2Z7/XDKpoMqvtkHDh7m/hB4Hskz7tV?= =?us-ascii?q?7SdEROF6mSbJstFvo0umkvSUyjZ9XhtBsCpLhJmMvUVkI6nZ8YNAWXnc9hIX8W?= =?us-ascii?q?qQEwgKp8diCtD3oKBf0MbPm7j8KDhc6NLZ5tAcCNLKKM2dP3ouLwHpFCTSDAQb?= =?us-ascii?q?UT6hLXvfiFBFkPGO6n2VqYA3pYPtmJoBTb9bUkc4Ge4EBUt+HdwNOpF3Uikjkb?= =?us-ascii?q?6Bg84C/WC+owXJRMVGopDHUeqfDu/gKDmDk7lLeQAFwbTgLYsNMI373lZtalh+?= =?us-ascii?q?nIvRHErRUspBoip7bg87uE9N6mRxTnUv20L5bQOg+GMTFfmxnhIskAt+ZuUs+y?= =?us-ascii?q?nq41gsPFrKozU/kEoqlNr5hjCRdSL+I72rXYFKESb0sVY+Mo/jSQZvcQKyhVBk?= =?us-ascii?q?NCvDR79JjLthdWRrhxHHtJtKHv5cQ6NEbwEMxfGLZ/Uo1lFcpTu9yU9B++TFFY?= =?us-ascii?q?NolBE2fp60s3JAxwVjYcYzJaPOPqVJykNdhqGJvi+zyuA+2gkeJ10O8GOTYiII?= =?us-ascii?q?vlIHNqU+LSqy4uNs8RCCmydEeGUUTfolvOlq+V0nNOSa0y3g06VOJVuwN+yFMq?= =?us-ascii?q?yZvGbAldaSQlwu1kIEjU9F8qZq0c07aUqbS1gvzKeNFxQOLcfNNAZVb8xU9HfO?= =?us-ascii?q?YymOteTNzIlvMIqjDODoSvWCtKEOgkKrBAwpBZgD7twdHpmw10HVNdroI6QbyR?= =?us-ascii?q?Us+QvrP06IA+5TeBKRlzcGrdq/w4Fr0olAPDEdAHl9MCWt6rbRuAAqnOKJXM0q?= =?us-ascii?q?bXcCQosEKnU2VdWnlC5CoXtPFja30vgDxwic9DL8vT7fDDrhb9p5fviYfxdsCM?= =?us-ascii?q?yw+Tol6ai6kELX8pLdJ2D6MtRuoNnP5v0Gp5yfEfNbUaF9s1vAm4lfX3GqV2nP?= =?us-ascii?q?EcSrKJj2aogsasf5Cnm8UlyikT41SN3xPNm1JKiSnQ7oXZpUsJWc3D07Ls+yCD?= =?us-ascii?q?UeGxZ2p+Ee66NxfhEMY50+YRH0rQs+LLC/LB2e0tqwX2anMSFWQOVHzeWme7xX?= =?us-ascii?q?yDIhbuygyHogVJ46yfW38U4WSZEFiRHe3eqsa5NYUSftBnxXYx/PqjYhl2h9Ku?= =?us-ascii?q?Yyxf8ywA/JsVkZNDCLaOxpaWxfst4hBFOTIW95BXEiS1+ak4XD/ham36oO8CtF?= =?us-ascii?q?g9ZUzepFvWDksZ/bYTKjRLKkpo3Qsysga9gmpKtxPpb4L8SdtZPRhDrfQIDesg?= =?us-ascii?q?2YSiK6EeRVmsRIKiJCXPZIgX0lOdABuYdZ8kU+SME+KqdVB6YxuLCldyBkDTUI?= =?us-ascii?q?wi8DV4KMxjsCgv2z27HCjBefbIwiMAAYsJVFmtYdXDN2YiIapK+nSYrWknSJRX?= =?us-ascii?q?UVLwgI7ARD/gQAmpV3fuD/74rCVIVMxCJOo/JoTivLEYFl90H9SmGXnVf4SPKh?= =?us-ascii?q?k+iy3QxK1fziz8MVVQJ4B0VG2+lWkU4oJ61tJKkLoo7GqDmIel3mvGj10uupOE?= =?us-ascii?q?FRydHId13/FIfFr3fzXTAH9H0bQI9Ox2vTFZIMnAplcKwrvklDIJi6ekbi4Dwp?= =?us-ascii?q?355pEKOiVcCs3FkotmoGRz2wHNpfFe5mtFPXWDtqY5CvqZXlNJVSQnNe+JKHsV?= =?us-ascii?q?dZlV9hMyinxppAM8tN+CIDXCBToTWBu9u/UMNC1dVqAJ8MI9d/vnb9F7lHOJWK?= =?us-ascii?q?on05pKLgxWHD9zA7qle6yy25G7WkQOJB420eBgIpKnyEpUk1Euss9H3e8lPWv1?= =?us-ascii?q?B1/udbB6SPgl5rrDZ7AJ9OGi5D1Wq5IFRrUHlGr+JaJbzUc8xaX/k9exuvNAI7?= =?us-ascii?q?FfE4w0yJ50F1kGz+YyxqqARa/SXdUBM1VSkRmbjtnjIfptugOT8ARJJCdS8hYD?= =?us-ascii?q?vdKwKHhSBXuw5Sa05wW58DBNZF56oW3YpT/svMT0asNSEFUwJjNgI+zfpQi1RD?= =?us-ascii?q?vF+eeS/DEQqibezPvQFvfceNsM6pK+z0/BtAioPiq+0467kPR3i9lgG3R9DRsZ?= =?us-ascii?q?P8vMWQtkSSbKf4L/G8YXjZQTjMlx+wn60rD53X8CXILQVUNYF6yWI6bpjlF2HL?= =?us-ascii?q?Jw5KJ6UBJ0pUTap6c8lJovhGZ894f6YE4a1tBhWZSR70BYOgsuJGIUjJRTTCMS?= =?us-ascii?q?qO7/azoYTN4rzBUeLgfNCDx27bQ6JrOZd38SL0G7n23oNC+Ef6x/lg+1hmRljB?= =?us-ascii?q?NiCOsM7uJhgX5MW4cEvtoIEpFyvMAJhsiHrt2l1Ad80PTi2w7psX1ZNZ52zsSe?= =?us-ascii?q?9j1kjzt/NS+Kd65YYr5LBm1Nm7Kb3UKftErU9tGgKUCRly9pUxHGh/QHhcYvcK?= =?us-ascii?q?KPfNZ6sWkNzupvvsF6wQ9R2V4fBWZsXBJ0HdgMmwEDWcRQZDnAcbpj4QNhGc2O?= =?us-ascii?q?Kdm69oVcalovD02l4341egMBEJ0atg5ZqA+qqUvu/YdQXRzbkDWqjuWMzzsq4g?= =?us-ascii?q?u0SI5f0rjLQOYHB6YxW7EOgBUc4Q3nrvzaYwwi83DszDGajv9OREV3IjkTLqg4?= =?us-ascii?q?p9EEkOGvMIAbqL+pxTnmUilOzDMd0WaaRClXyRFRO/F78C1Hqr6zeWIGZ5gxHB?= =?us-ascii?q?yRfwQXip4F/xty94TjPGz83/nUpNSrm3GUBSUjKrOUBitjOPMhDotN3qtqsr90?= =?us-ascii?q?w2LnbrtNSWlGumIr9XGdPwJMCEKykuuF0XlIExRsCo2Y0DH9q9JMwc8HB4bvvb?= =?us-ascii?q?8W+rkilBo6ldh4XE+cGV5u/XHWS8gK2GtrWN3i5XxmI/vVEl5dCqLuvO6MGSQ/?= =?us-ascii?q?S0y2YRSD9yuw3AXxGprbzbq0obOVeR3EfKn4wKOcpZ3WIj20Hj6+UiT8g/9AJE?= =?us-ascii?q?FobPf/kCvyz8OCPowVaDZNI6TjWR3CFTHl3rCll4BKg92GXrscLSiXjQ+kMnRo?= =?us-ascii?q?9sd0zmnxN7FYM4Jlwx6FIP2CoMDRANaQyHDLGvHUnlKZAEVU0DZBmc0ri1ZLo4?= =?us-ascii?q?3Uppwry1/O/Td+t8B6gTOflBkg6Chl9bGogZsacGWrJzZ0dd9LLLpgjlE4XnXf?= =?us-ascii?q?nmlX8rOP2wXM9b8d4Wt2Ej4ga5SBqs85FD4KgHiJqQbK5LfYDMvNxg70dg/TMP?= =?us-ascii?q?dy1MjwJlgBylSu0cv/7s4sTFv5W08OquU7wtR+oP/RguG2t+l4fwgEwkodzPzO?= =?us-ascii?q?hcS5bViIrl/wBPIn6KpJ7a3ANhKeoKMI+kYLFg+GgZKCcEOnIOJ92Wa+Mm7CN3?= =?us-ascii?q?NzXT/VNCCNsWZdwEJMrNhRxUikrxVbFL7MXbBkOXC4d9dsAv9Wr3yyk58YAiXe?= =?us-ascii?q?bk6T+2I43f7l5WMvNblipsiM7NpOgbwPrVEigX4mOVaxtrzSOYzZmCFfLw8f+L?= =?us-ascii?q?yNHOWFMMBjQ2XJtFJDqe5QynQfK4lInzUgyK7s/8mpQ+e1yLS3OsnaQFvadMEf?= =?us-ascii?q?JahSXgxDdeDJ31i+iTs9Wy9GtdrkdHH5pr7R3ZBKVfOY12ORvimcmxWEd8Giv/?= =?us-ascii?q?ddrQdhovpOqZ2OcM7P9jN0vlf4MbJAwLy67i43pPUgRuUKL2vkqeXe8Ja9tpVv?= =?us-ascii?q?XErmxS6YJnLKMPJ0aSpJjrrjdOtVA3DxQkaLsuoTxAdkjBhhdZW6Dqt74ckgEc?= =?us-ascii?q?S8J2uVdQGWKsP2Iz/ybIVaZPg6aNE/Ea7jKTTqgKU0VpLCx+WQ+114tydLuph/?= =?us-ascii?q?xHtXlGnixlqvgwzzNmXAe8uTHrp68V3DIg/7e4tCkOuXNbVeielibIBk9FzPsU?= =?us-ascii?q?kacdBXHi6Ua/YHkYdofy5qdoJdj4/4k7/3s/eQkjfzEBXem4BCH/k7iIApeWvN?= =?us-ascii?q?xBixCDvsTObbmuLSkdLbk9xhfjSGJ70gfAhhpo93ELQjq45t8+OIq9Idolxjav?= =?us-ascii?q?GWXDdlYM5aNJsM3ruVEXTOs2bU5hz3hi08iGQC0NX8/PG2cugwg6aGVEbohM6R?= =?us-ascii?q?sHGKkpmDqIuLdJ/h0MajfODoul4pXQndvP2XQlTNdq2HjZpquei5MuzX1qhtJ0?= =?us-ascii?q?7imVuHgIcOzYScBsCGDp1ohD0ez+e+mtsucfRYtk1ruhXvECMs249Gq4wppqXF?= =?us-ascii?q?GqxqgEE1q/LuAD2q/RUz25Rm2AReSLb2+Mki42Mk724hmpIEM4aMNOr0ImKevC?= =?us-ascii?q?gZhclwz9Xr9uQCWfu0PbxnQ5MewGbwI2pJunewsSQe4TZ+idJfAuwPo6CFsNc3?= =?us-ascii?q?/GAzB7C+q3sV6xhoh0JW9s4ULgYeTi6grmKsedGgEYEY7GqZ584eC6RmOEOXJ7?= =?us-ascii?q?0B1yPVV79+TBGFQ1rONcdYiencTIjdRhzeEFb+ttMTE6utMLn4Jj6IqU0MSNcR?= =?us-ascii?q?zKzJb9P9LVov+eA/LByUQmYGdaXaQFYQnt/YU1IsY5W6HPHbtepRkTHrY1QJo9?= =?us-ascii?q?N2rq76F0KARzchLNZLSqnMblu/iHZpxOp3/Z9lgwNjvTuwUfyvyoSgx2d4iqh3?= =?us-ascii?q?L2IJ8qXDJAodptCh9oHIZUHsMAqA2nA4WKl66nkd+x/Fh6u/QLsar2BfDGztO5?= =?us-ascii?q?359+X5JC/0yEIC7RBLV3gkRilumyjOnP0p3wCcP6Z9wJT+l6Qm/Aar/DAIq/MD?= =?us-ascii?q?aONdzmd05B6b6c36pzUg+NayDhQ6qGqCqkOe1q4EUj0Ix4ffbcwyI24rHe2dvy?= =?us-ascii?q?e3tbqTm5oX6OLptf40TABfbCUBJMVfqF7GFlELUQbYvw6ugDKsQiwNyG7Alo8D?= =?us-ascii?q?RC0deKI7S7rkDSxE13b5TbI1X12ywhQ4kFPAy/MVcwgW/esnndBXVcLs65Kchi?= =?us-ascii?q?mdqVCh3t51JtmWE2fWNBG3DnRdGWOWQB3MK+fgKK/hpRD9kfh+63ZVI4tqqqRO?= =?us-ascii?q?lzJJpFneSqtLMakddmLC3BS9RaPyHOI79sIDVRFv/AqUMrYhEaqbg1XJk6ZZyV?= =?us-ascii?q?L0MaP0eM0yTyzRHN0UfsbdyjyL6JIDoK8nVA17/F1CJDqBW5ufaYhM3jV6vUbI?= =?us-ascii?q?/3XP7ULiUlUjCaRTIvEUem41ukvOAEvPWAK2cFvl8Uej6SCBIUpq13r9jfFGzT?= =?us-ascii?q?mep4c5ARmfCaXTzwSC1/lKovCSZLtVyMT+AFFQbIc3/rmHBctxC6Jv9Q4XLlaK?= =?us-ascii?q?WVxqVPVOMNGItMc+OWQ9/DdPBAIzcnjC4ZOOehf9HGqbY2zE7IR3MDE6bU7F2e?= =?us-ascii?q?UFKWQvuEyjLpWIUVuJI0ujAp+tLLhSJ3Fb7HP7OBqD6v6IK4izyYueLGXGk3f0?= =?us-ascii?q?M1mP4CAHWGwBRYM2EEBdQVt13sT6ODfEtMymwmifhv2x4NfwRzVGdi0ntIk/ah?= =?us-ascii?q?AsdZU0IbjHuyQP0aa1B6FDEw/UiM4g32etEAvN7cSHJQ9rsLU4oSMOcn5JPROK?= =?us-ascii?q?QO3PZ6lA5h9Tc3tySbEkN1khOO862WGrl1gLJF+zoW5fZzC2eOSDTbe3OP642h?= =?us-ascii?q?ENkHkSFvqnfg3tGSv+dqL6Byot1pRlAQDnQldZjm4TldXDSsi0OJtBGhEWHbeW?= =?us-ascii?q?oU?= X-IPAS-Result: =?us-ascii?q?A2FQBACS19pY/wHyM5BdHAEBBAEBCgEBFwEBBAEBCgEBgwA?= =?us-ascii?q?pgWyOZKFThloriSpXAQEBAQEBAQECAQJoKIIzIoJBBgECJBMUIA4DCQEBFykIC?= =?us-ascii?q?AMBLRURDgsFGASIIYFFBAGvXzomAoNohm+GTokVEQFohRkBBIkXiBeLMoIGkDy?= =?us-ascii?q?KfoZCSJMiWHwIJBYsSYZac4ckgi4BAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 28 Mar 2017 21:43:38 +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 v2SLhbaD031131; Tue, 28 Mar 2017 17:43:38 -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 v2SLgfOO054414 for ; Tue, 28 Mar 2017 17:42:41 -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 v2SLgbIP030851 for ; Tue, 28 Mar 2017 17:42:41 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1DwAgDN19pYhyIeaIFdHQYMgyyCFY5koVOCSYQ3iS9XAQIBAQEBAQITAQEBCgsJCCiFRQYnYlFXGYhCgUUEAa9fOoQQhm+GTooPhRkBBIkXiBeLMoIGkDyRQEiTIoFbJBYshFEMgkZziVIBAQE X-IPAS-Result: A1DwAgDN19pYhyIeaIFdHQYMgyyCFY5koVOCSYQ3iS9XAQIBAQEBAQITAQEBCgsJCCiFRQYnYlFXGYhCgUUEAa9fOoQQhm+GTooPhRkBBIkXiBeLMoIGkDyRQEiTIoFbJBYshFEMgkZziVIBAQE X-IronPort-AV: E=Sophos;i="5.36,238,1486443600"; d="scan'208";a="5996175" 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; 28 Mar 2017 17:42:41 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AmhSeUxF9V01fpOMYnVntn51GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ78rsywAkXT6L1XgUPTWs2DsrQf2reQ4/6rATVIyK3CmUhKSIZLWR4BhJ?= =?us-ascii?q?detC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+?= =?us-ascii?q?KPjrFY7OlcS30P2594HObwlSijewZbN/IA+1oAjQucUanZZuIbstxxXUpXdFZ/?= =?us-ascii?q?5Yzn5yK1KJmBb86Maw/Jp9/ClVpvks6c1OX7jkcqohVbBXAygoPG4z5M3wqBnM?= =?us-ascii?q?VhCP6WcGUmUXiRVHHQ7I5wznU5jrsyv6su192DSGPcDzULs5Vyiu47ttRRT1ji?= =?us-ascii?q?oMKjw3/3zNisFojKxVvg+vqRJ8zYDTYo6VOuFzcr/Bcd4AWWZMRNpdWzBHD4ih?= =?us-ascii?q?b4UPFe0BPeNAooflplsBsRy+BQ22C+P01zRGhXj23aoh0+Q6DArL2wogH9MSv3?= =?us-ascii?q?TTqNX6LrwSXfq0zKnPyjXDdOhW1Cz46IXHfREtu/aMXah/ccfIz0QkCgDLjk2I?= =?us-ascii?q?pID4IT+Y0v4Bv3WH4+dvT+6ihXIrpxt/rzWg3sshiZTFipgUx13F7yl13Zg5Kc?= =?us-ascii?q?GiREJlfdKpEp1dvDyAOYRsWMMtWWRotT46yrIYvZ67ezAHyJEoxhLCcfCHa4+I?= =?us-ascii?q?4hbjVeaNPzh3mHJleLS+hxar7Eiv1PfwVs6u0FZFtiZFk9/MuW4R1xHL98SLVP?= =?us-ascii?q?9w8l281TqT2A3f8O9JLVwumafVJJMt2rswmYASsUTHEC/2gkL2jKqOe0s55uam?= =?us-ascii?q?9vjrb639pp6dK4N6lxnzP6oulMGnBOQ1PQcPU3Kc+eSm273u5Uv5QLRWgf0xlq?= =?us-ascii?q?nWqovaKd4apq6+BA9VyZ0j5g2kADehzdQYm2UII0xeeB6diojkNF7PLOr/Dfel?= =?us-ascii?q?jFSgiC1ryOzePr39HpXNKWDOkKz/crZ56k5czhczzN9E6pJICrAOPPLzWkjruN?= =?us-ascii?q?zeFR82KRa4w+ngCNVjhcsiXjeUD6uYNr7CmUOZ7eIoZe+XbckavyiuBeIi4qvI?= =?us-ascii?q?jHQ+nVYGNYiu2oAMICS+H/9hJ0yCJ3vrhcwaOWJWrkw5VuO82w7KaiJae3vnB/?= =?us-ascii?q?F03To8Eo/zVYo=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0HsAQCS19pYhyIeaIFdSAYMgwGCFY5ko?= =?us-ascii?q?VOCSYQ3iS9XAQEBAQEBAQECAQIQAQEBCgsJCCgvgjMggkMGJ2JRVxmIQoFFBAG?= =?us-ascii?q?vXzqEEIZvhk6KD4UZAQSJF4gXizKCBpA8kUBIkyKBXCQWLIRRDIJGc4lSAQEB?= X-IPAS-Result: =?us-ascii?q?A0HsAQCS19pYhyIeaIFdSAYMgwGCFY5koVOCSYQ3iS9XAQE?= =?us-ascii?q?BAQEBAQECAQIQAQEBCgsJCCgvgjMggkMGJ2JRVxmIQoFFBAGvXzqEEIZvhk6KD?= =?us-ascii?q?4UZAQSJF4gXizKCBpA8kUBIkyKBXCQWLIRRDIJGc4lSAQEB?= X-IronPort-AV: E=Sophos;i="5.36,238,1486425600"; d="scan'208";a="4387061" 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; 28 Mar 2017 21:42:40 +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 31CB85646B8 for ; Tue, 28 Mar 2017 23:42:39 +0200 (CEST) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 4/7] libsepol: fix use-after-free in sepol_user_clone() Date: Tue, 28 Mar 2017 23:41:49 +0200 Message-Id: <20170328214152.17545-4-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170328214152.17545-1-nicolas.iooss@m4x.org> References: <20170328214152.17545-1-nicolas.iooss@m4x.org> X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Mar 28 23:42: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: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP When sepol_user_add_role() fails to allocate memory for role_cp but succeeds in reallocating user->roles memory, it frees this reallocated memory, thus leaving user->roles referencing a free memory block. When sepol_user_clone() calls sepol_user_free(new_user) because the allocation failure made sepol_user_add_role() fail, the following code is executed: for (i = 0; i < user->num_roles; i++) free(user->roles[i]); free(user->roles); As user->roles has been freed, this code frees pointers which may be invalid and then tries to free user->roles again. Fix this flaw by returning right after strdup() failed in sepol_user_add_role(). This issue has been found using clang's static analyzer. Signed-off-by: Nicolas Iooss --- libsepol/src/user_record.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libsepol/src/user_record.c b/libsepol/src/user_record.c index e7e2fc20fe36..ed5b048203d2 100644 --- a/libsepol/src/user_record.c +++ b/libsepol/src/user_record.c @@ -178,16 +178,18 @@ int sepol_user_add_role(sepol_handle_t * handle, { char *role_cp; - char **roles_realloc; + char **roles_realloc = NULL; if (sepol_user_has_role(user, role)) return STATUS_SUCCESS; role_cp = strdup(role); + if (!role_cp) + goto omem; + roles_realloc = realloc(user->roles, sizeof(char *) * (user->num_roles + 1)); - - if (!role_cp || !roles_realloc) + if (!roles_realloc) goto omem; user->num_roles++;