From patchwork Mon Feb 27 20:39:35 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9594159 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 1B18260471 for ; Mon, 27 Feb 2017 20:42:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0D227272F9 for ; Mon, 27 Feb 2017 20:42:02 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0200B27F9F; Mon, 27 Feb 2017 20:42:01 +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 115C827F9A for ; Mon, 27 Feb 2017 20:42:00 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.35,215,1484006400"; d="scan'208";a="3515725" IronPort-PHdr: =?us-ascii?q?9a23=3AbU1r7BOVOSEQQqjF96Ul6mtUPXoX/o7sNwtQ0KIM?= =?us-ascii?q?zox0LP/7osbcNUDSrc9gkEXOFd2CrakV1qyM7eu5Aj1IyK3CmUhKSIZLWR4BhJ?= =?us-ascii?q?detC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+?= =?us-ascii?q?KPjrFY7OlcS30P2594HObwlSijewZbN/IA+ooQjQucUanIVvJ6IswRbVv3VEfP?= =?us-ascii?q?hby3l1LlyJhRb84cmw/J9n8ytOvv8q6tBNX6bncakmVLJUFDspPXw7683trhnD?= =?us-ascii?q?UBCA5mAAXWUMkxpHGBbK4RfnVZrsqCT6t+592C6HPc3qSL0/RDqv47t3RBLulS?= =?us-ascii?q?wIOSQ58GXKgcJuiqxVrg+qqxhmz4LJfI2ZMfxzdb7fc9wHX2pMRsZfWTJcDI2y?= =?us-ascii?q?bIUBCOgOPehAr4T/ulcDoxSxChWjCuzx0T9FnWP20K8g3ug9CwzKwBIsEtQTu3?= =?us-ascii?q?rUttX1M6ISXPitwqnJ0TrDaPdW1i3m6IPVcR4hpvaMXalrccHMzkQvEQLFgUmX?= =?us-ascii?q?qYzhJTyVzf4Bs2mc7+pnTuKvkHUqqwR+rzmg3MssjZPJho0Mx13C6C53zoE1Jd?= =?us-ascii?q?iiR056Z96pCJpdtySAO4ttRcMvRXxjtiUiyrAepJK2cycHxI4nyhLCcfCLbYeF?= =?us-ascii?q?7gz5WOqMOTt1h29pdKi+ihuz60Ss1/PwWtWu3FpUsiZIkN/BvW0X2RPJ8MiIUP?= =?us-ascii?q?5981+k2TaIyg/c9PlJIVsxlarHM54hxaMwloYLvUTDACD2nEL2gbeKdko+4Oio?= =?us-ascii?q?6vnnYq78qp+AN457lgH+MqM0lsy5Hes4KRQBU3Ke+eS90L3v5Uz5QLNUgf0qiq?= =?us-ascii?q?TVrZ/XKMsBqqO5HgNZyJgv5hmhAzu8zdgUhXwHI0hEeBKDgYjpIVbOIPXgAPek?= =?us-ascii?q?nVuslDZrx/bbPrzuG5nCNX/DkKrnfblh9UFc0xE+zcxf5p1ICrEBJ+j/WknqtN?= =?us-ascii?q?PCFBM5PAu0w/j/BNVnyoweQX6PArOeMK7Ks1+I4eQvLPOQZI8Vojn9LeMo5/zp?= =?us-ascii?q?jX8/nF8SZ7Kp3YcJZ3CiBfRqOUKZYWDjgt0ZC2cFohI+TPD2iF2FSTNTZXSyUL?= =?us-ascii?q?gg6TE4E4KmCoHDRoGzgLGa0ie7GoBWZ29dBVCRF3foa5iEV+0LaCKILc9riiYE?= =?us-ascii?q?WqS5S489yRGusxf3y6J5IeXP5CIYs5Pj1MRy5+DIlBE96yJ7ANqH32GKVWF0kX?= =?us-ascii?q?sCRyUq06BnvUx91lCD3LBljPxfE9xT4e5GXRk+NZ7d1OF1Ec79WhjGftuTT1am?= =?us-ascii?q?WNqmCykrTt0t298Of1p9G9K6gx/ewyqlGaUVmqeXC5wz96LTw2L+J91hy3rc0q?= =?us-ascii?q?kukUUmSNNVNWK6nq5/6xTTB4nRnkWYkaaqaboT3CrT+2eG02WOoFtYUQ5rXKXC?= =?us-ascii?q?RXAQeE3WrdHj6UPDS7+hErMnMwRbxc6FMKtKZcXjjU9aS/f7JNTef2Wxln+wBB?= =?us-ascii?q?eJwbOMapHne2AZ3CnECUgElRof/XCcOggkBSehonzeAyJ0GVLpfUzs7fF0qGmn?= =?us-ascii?q?QU8s0wGKc0ph2qKr9R4Nn/OcUfIT3qkftSc5sTp0Ble938nOC9qEvQVuYLtTbc?= =?us-ascii?q?k64Fdd2mLTrxZ9MYC4L6B+ml4edBx6vk3v1xVzD4VPj9IqoWgkzAVsNK2Y10lB?= =?us-ascii?q?eCmA3ZDqPb3XKHf98wyza6LM3VHeytmW8L8V6Psks1XjoB2pFk06/nVpydlayX?= =?us-ascii?q?2c6YnLDAoJSp/xV1439xljq7HBbCg9/JnY1Xp2Mam7qjXCwc4mBPM5yha8eNdS?= =?us-ascii?q?KKCEGxXxE80dGsijM+8qlEKqbhIDIeBe7qk0P9mpd/Gewq6kIP5gnC66jWRA+I?= =?us-ascii?q?1yyF+D9zB9SuHWxZYI2OuX0ReCVzvmi1ehqM/3k5heZT4OBmq/1TTkBIlJa6Ju?= =?us-ascii?q?Z4kLDXmhI9arxtR+gJ7gQGVY+0KiB1wY3s+pZRuSYEbn0Q1Wy0sXvWStmTGkwD?= =?us-ascii?q?xsjzEpsq2f0TTOw+v8cBoHPmlLSXJmjVfxPYi0iNUaU1KyYwgujhul6l7wx7JH?= =?us-ascii?q?q6RnM2nTXUBIcjDtL2FsSKuwsaGCY9JU5ZMztyVXV+q9YVWARb77uRca1T3sH3?= =?us-ascii?q?dGzjAhaz6qoon5nwB9iG+FInd8tn7Zed1uyhfF/9zRXuBR0SQcRCZjlDnXA0Kw?= =?us-ascii?q?P96z/dWbj53DqPyxV3q9Vp1Pdinm1Z+Auzam6m1rGxK/m+u+lcHgEQg/zSD0zc?= =?us-ascii?q?JqVTnSoBb6fIbry7ywMfh7cUlwGF/89816F5l4kosxgJEQ3WYVho6O8HUdj2jz?= =?us-ascii?q?K9Jb1bj5bHoXSj4B28TV7xT92E1/MnKJwJr0VmucwsR9e9m6ZXkW1jgh4MBKD6?= =?us-ascii?q?eU6rNEkDBxolq5qwLee+J9njAHxfsp8n4ajPkDuBAxwSWFHrASAU5YMDTolxSJ?= =?us-ascii?q?9NC+sLxbZH2xfri01Up+m82hDb6ZrwFHQHb5e5EiHS5s4cVkKl7M1mP86p38ct?= =?us-ascii?q?nKcd0TrgGUkwvHj+VNMpIxkf4KhS55NmLnoXIlzOA6gAd13ZGnoIeHMH9h/KWj?= =?us-ascii?q?Ah5XLjf1fd8c+inxjaZCmcabx5ivEY98GjUPRpfnV+ikHykVtfTjKwaOFzs8p2?= =?us-ascii?q?yeGbbDGw+f71tpo2jJE5+1K3GdPGMZwsl6RBmBOExfhxgZXDYkkZ4/DQCn38/h?= =?us-ascii?q?f1l/5jAK4F73tAdMxvhvNxnlXWfVvB2oZSssSJiDMBpW6RlP51/PPsyD6uJ8AT?= =?us-ascii?q?lY8YenrAyRNGObfR9FDXwSWkOaHVDjJaOi5cLH8+iFHOqxM+XBYbuJqexEWPeH?= =?us-ascii?q?24ij0o148DaQLs+PJGVtD+Un2kpfWnB0A9rZmzMSRCEMiSLNadOUpBem9i1xsM?= =?us-ascii?q?+/7OzhWBjz6ouXF7tSLdJv9giugaiZKu6QgD10JipZ1pMQxX7E0bYf00QUiy10?= =?us-ascii?q?cDmtC7sAvzbXTK3Mgq9XEwIbayRrOctL76M82hdCNNXeitPy2L54gOA6C0tZVV?= =?us-ascii?q?zhncGpYNIFL3u7NFzZGEaBLK6GKiHTw8HrfaO8TqVdjOtOuB22pTabFErjMy+N?= =?us-ascii?q?lzb3Sh+vNvtMgzuDPBxEv4G9cAhiBnT/TN78bR27KtB3hyUswbIonnPKKXIcMT?= =?us-ascii?q?9kfkxQqL2f9zhVjeh5G2Nb9HZlKvOEmymB5enCNpkWqedrAjhzl+9C+nQ20bVU?= =?us-ascii?q?4DtBRPNvnCvSqd5vrkq8neaTzzprSh1OqixEhIiTp0VtJb3Z9oVcWXbD5B8N43?= =?us-ascii?q?+QBAoXqNt+ENLvvbxQyt/UlK/oMjhN79fU8dEbB8jOJ8KNKGAhPgbxGD7IEAsF?= =?us-ascii?q?SiamNWfFh0NHiPGS7maYrpY7qpj2g5oOVrFbVF0zFvwADERqAN0CL41zXj8+lr?= =?us-ascii?q?6blsEI72KkrBbNXMVaoozHVvWKDPryMzaWk6NLZxQSwbziM4QeLZb71FZhalln?= =?us-ascii?q?hoTFAVDcXdRQoi1ndAA0ulxB8GR5Tm0w20PlbRmh4HkNGv6ohhQ2kBdxYfwx9D?= =?us-ascii?q?fw5Fc6PkHFpCo/kEk2n9Xomi2efyDqI6exR45WDTD4t08rMpP0Wwx1dxG9nVR4?= =?us-ascii?q?NDfYQLJcl6FvdW9xhw/Cp5RCAvlcTbVabx8WwPGYffQo0VBHpSWgyk5L/+zFCY?= =?us-ascii?q?FtlAEya56js2pA2x5/bN4yPaHQOK1Jzl1KiqKUuS+p1/4+wAkFKEYX92OdZi0I?= =?us-ascii?q?tVcUObkhIiqn4vZj6ReemzdZfmgDSeYqqOpw9kwhI+SA0z7g07lbJ0C3KeOQNa?= =?us-ascii?q?eZtnPDlc6PWVMwylkHl09e/bh10McvaUyUWF4zzLGJDRQGKdLCKR1Jb8pV7HXT?= =?us-ascii?q?ZziBsf7Tzp1vJYWyCuDoQPSVu6YVmEKrAQEpH4oU7sQbAJat0FvULcH5I74Z0R?= =?us-ascii?q?8t/hjkJE2ZDPRVfxKGiCoIrNuhzJ92wIZdPSoQDn9nMSWt4bbWqBQqj+SfU9cr?= =?us-ascii?q?eHcaX5cEN3IsVM28hSFZo2xKDCOr3eIB1AiC8zj8qzzUDDn7ddpsevGUZBJrCN?= =?us-ascii?q?yt9jU/9bW2hUTQ8pXEKGHwLc5itcPX6eMGu5aHDOtZTaJjvEfYmolYQWGqUmHU?= =?us-ascii?q?HNGpIJjwbpUjYsbvCnamSFC/jSw6T9vpNta3MqeImR3oRZpTsISDwT8sKcq9Fj?= =?us-ascii?q?YYGxdsuu0O/7x8ahMZY5o6YB/osAI+O7a5IAiGztWkW3ytJidOT/lD0eW6YKRa?= =?us-ascii?q?zyk2bu660nQgSI06z+ms/E4CQ5EKlg3RyeylZ4ZATSj5AmZddBnXpSoli2hhMf?= =?us-ascii?q?4/wvs+wBPNtlkcLzCLdexyZWNZvtE9BUmdLm5sBmo+WVCckZLJ4hSw0LAK4ytd?= =?us-ascii?q?g9FU3PVKsHjkpJDfZi6sVbeqqZXSvSsga8Qmo61vPoziJMuGqI3RnibFQJnWrA?= =?us-ascii?q?KFTDawF+BGldhIPCJYXP5IlHk/NswCuIpO9VQ+Wd87J71PDqksobaqZiB/ACEJ?= =?us-ascii?q?zC8WTYWA0CUMguehwbfakAmfcIg6OhwerJpCmscdUzJxYi4Gv6CsSYPWmnSeRW?= =?us-ascii?q?cWPgcc8x5M5BkamY9qfuHp+o3ITIVDyzROufJ7TjPLFoV091v8UmyWm174SPS9?= =?us-ascii?q?nOyp2gJSyOns3MECVhBiE0ZQ2+FYm1A0J7FwLqkfopTFsiSUdU/gumLi1vemLk?= =?us-ascii?q?FLycLIb134EJbFtW3kXyIA+30bX5NAxWrDGpQVlwp5bKcrq0tWIIC6ZEnx+zwk?= =?us-ascii?q?y55uH7miWsCh30wlomoeRye2D9pBDPlrsEjNVz1/ZJCks47oO4lIQmBK5p2StV?= =?us-ascii?q?NZkERrMy62zZpcKs5N4j4QXDhBuzqdpt6yRNdF2cBoE58GOs1/tGvlGKNYJJiR?= =?us-ascii?q?pGU7u7L1xnDF+zA8sVK6xDSpFK+7VO9Z/nMRFRs3KGiErUkvFeQs+H/I8l/Rql?= =?us-ascii?q?B04/tbBr+XgEVppzZ9GopBBixH1HCiK1RzQmJLs+BdKKTSaMxTXeU9ZQWoOxwl?= =?us-ascii?q?Dv4m3kqJ/U5ukXf+eSxyuRNQ+zrBUAksSSkVnrDtlCUEpcG9JD8aTYhEbTY6Yi?= =?us-ascii?q?fEKgKbmDxXsw1FZ0FsRZ8ZHs5P+6sH0otM4srCVUGsJDkZXBxlMwI1yuZfmVJG?= =?us-ascii?q?sEqDYyzdCxSnderXuB1tYciRtNKpLOj+/ApfioPoqvo4+L8HR3K7ggCiXM7Rr5?= =?us-ascii?q?fkttKUskuBar34P/e7YX/bQzjGlQqwiqs8D5nW4yjTNxJWK5t9yXU6epXuFHDE?= =?us-ascii?q?PQ9YKKIBO0pUS711Zc9Aou9Ee89uYLwJ9rN1BhKbWhPvH5Sio+JILlnPWTjTLT?= =?us-ascii?q?iN/+KkrI3P6rzdTPTvadaXx3bbWa53OIl16SXjEbfwzYBe4lb22utq9k5iU1jJ?= =?us-ascii?q?LT2OrNT7KQMX/8SickzivoM3Ej/IHJhwl2fiyV9ae8oRXSKq7IwSyIlF53boVe?= =?us-ascii?q?J4zk/zvfVK97l/9Yk4+a1myduvKKfJLvRarFVnDQSKCQVs6pUtGnJwR2RLbu8W?= =?us-ascii?q?MvfRcrwTjdrypODvC6wX9BqV9vRFadvdOU7OhNSwByqBSRxAgAcBsyQVLhWd1/?= =?us-ascii?q?6Cn697V9qlqfL+2kI37Fi0NgQGw6x15YeY5qqIo/fabx7LwrgAXqjlWN/zrqg2?= =?us-ascii?q?tEyI/vAkkqABenBuYwK7CucdTtASyn3mza800SImC9nDEK74+P5fS3I5mSrtm5?= =?us-ascii?q?JnEFUMHfMUBr6L8p5AnmojnuzZK9kWcrxDmmmTFB6rCLkCyWWx5yuQOmlljQnE?= =?us-ascii?q?0wvsTmOr8F/2sSh4TDPOz9j5lEpVWKO3BUBPUCW3IkJ4rCmAPAzztNrwo6g16l?= =?us-ascii?q?85MnD8vtKXiGShIK9XH9H4JNGELik0uVMXjJk1RtOx3IAWAseyL8kK/3F/dPTe?= =?us-ascii?q?7Xmnkyhbo6dIn4De+N2a+u3LHXm8iK2Xs7ONxDRDx3g5u1E/78qsNvDI592EWf?= =?us-ascii?q?SnzX0RTztluwvcQxG1tqHbr0oKNkCR10fLgoMKNMlD3XYkzkHm+PQjQNUr+QVb?= =?us-ascii?q?EYbAYe8CpT/tNzbvxFafYsg4Vi+A3DtLEFP1FkN4GKsn2G7qusLGi2vQ8UUyRo?= =?us-ascii?q?Zsb0znmQB3D4IgJEI39VcY3zEOEQcIaRGUFr2oA1rqLZccX0gZdRuHxKS6ersw?= =?us-ascii?q?3UBrxrOv/+rTYOxnCqoDKPlSkwmOnEJBFZIOq60eR7B8dEFB+67LvATiDJLnX/?= =?us-ascii?q?f+n3oqKfK1Wtxa8dwet3Y6+QawXQSg5o1M77kFk5CFbbVEboLSvM9m4Edo+yUP?= =?us-ascii?q?ejZLgBdhkxOzSfocq/z74tjHrJqo7f6jVKQsR+US7BU0Anpxjpvuj1A5oNHX0e?= =?us-ascii?q?hcRpfTiYvh7ABHO2SKt5rC0xlgNeoOLJqmfLdh9nodPScRO2kDPcGIZPkg/SBi?= =?us-ascii?q?LC/f51tYAsMDfdkYJtbCmRhIik31X7Fe7tHUGl6DC4Z9bc8o7Wv3yCwt8ZQmT+?= =?us-ascii?q?bg7CS7KozY715QIfxMljhslMjFpOgP2/XeEi8X4WOWaxJt2CON14GNC+rs/eWL?= =?us-ascii?q?0NzUT0kJHjIqXIddKjuC/hanRumsmJXyTAyU7s7zgJQjdEOfXXGxhL4KsrpQHu?= =?us-ascii?q?5AhCT72SJeFoPvi/KWrdWs8m1XuUNDEIpp6h3FAqpfNI1hORvkjsmrWlR8Bizn?= =?us-ascii?q?dcHIbBohpu6Wyf0K4+pgLEbxeI4bIh0Fy7Lm83VVVRFhSKTrvlqDW+IeesdmQu?= =?us-ascii?q?vern9J8YJgN7MPPF+FqZzltDhIsk45ABMpaLIrqjxad1XOkxNVW6nupb4AkREQ?= =?us-ascii?q?Udhntk9QAWiwIn4x5yLbVaRJi6mcEPMV/SuVTqwSVEVoNSRyQwir15Vqerupm+?= =?us-ascii?q?1Hs2xdkyN5vvcqyTxnSwGmtS3qua0NxSoq+KukuzUZpXxFUuKenj/OCVVC0PsK?= =?us-ascii?q?iqMcBGz56VCmYXkDa4zy4KJ8Jcn78Iks7Hs+bQ8kfy0cUuSqEzvwgL+QAoyTrN?= =?us-ascii?q?JcgwaAuMrSYr+oNigeL6kzxx3lSXh81AjegRlp/XAEQjWl9tAkIpuyNdwixiqy?= =?us-ascii?q?FmjRbEwM7b9RsMvtqV4LS/M7aVFmwGVj1MiLXDECRMzLG2YokwclaGREcJRY6R?= =?us-ascii?q?8ZFqklmSiIvqhY/g4OZDfbD4Wl9pPWncjWxXk3Vc1qyX7Opq2ZmpMq12Vom9Jq?= =?us-ascii?q?7iGUvnQfbOjYU9JxDXjy0Ydf0vbyZ/K3suAIUIFm0qiuUOceMsm//mu7wJdqVV?= =?us-ascii?q?GrxrQQG1q0K+ECya3dUyi7VW2UQ+KLfHaQnzwhKE79+QGoLkEraMdNt0I9Pe/C?= =?us-ascii?q?hplSlgL/VbN0Qj6dpUTczGwlMOMVaxg6uIG5dAwWVOQRffSTJfAywP0iD1sBd3?= =?us-ascii?q?3JHSt2Cu+utl6tmIl7O2l+7kjhZOTt8xzmMMGMFRUeFo7atJFx8+SgRm2dIX9g?= =?us-ascii?q?0AFyPE5s+ufDFlQxs/RRc4qQndfMhNR0z+oFe+1rMSIjpt4Zgphj5pWM0MeWbR?= =?us-ascii?q?HRyY7/JdTUovibAP3fyF8nemNAXboaZgP14Zs1PtgjV73VA7RZoQwWBbImT5w5?= =?us-ascii?q?K2fx6KZ0IRtofQHPYrS0ntLnpvmPZptTu3/W8kwwIznBtBEZzfy0VwN7ZYiwh3?= =?us-ascii?q?ruOJAwWi5Br9p1BxtoAoRPH8IArxK5DJOPmaC7itqx+0ZktO8Qtar/FOrG1NOj?= =?us-ascii?q?34V+R5Ja/1CEPC7NBKl3hURoluqzgu/a0pnwFcztZ8gJVO16Qm7ZcL/JAJ+zKj?= =?us-ascii?q?WUOsLzY0RG6aKT0KplUhWNYyD0R62GtCm6O/h/+UU7zpZ3fPHPzDws877bxMHy?= =?us-ascii?q?aH9FqSu5q36GKodf5kTQBePCRxJUVeaF8GF9EK0TbIv08voOMNM7zNiY4glz9y?= =?us-ascii?q?hC0NCeLqigtEDM3EV7eYjcLEvz1CYzQZMKLwinMUswnW/ZrWzQAW9CIcigKMlt?= =?us-ascii?q?hsuVDxPq60d+hWEtZnBOGnD2SteJI2cWwMG+axOQ9AJNEdkDm/W4eVM3tqGoTu?= =?us-ascii?q?loIJpFk/2wtLobidZpNz3PRM9CMiHVNrB5IjpRDuTJpFgveRMErbk1WoErapiK?= =?us-ascii?q?IUMHNlqAyCzowQvFy030eMSm1LyVLyYO7nVH07XF3CBOpwajuvaZhdbsXavEbJ?= =?us-ascii?q?HwQP7SMC0lViyVRTQyDUal41GktOQYvPCAO2cQvkgUYj6OCA4Uvq1gtsPfAmjX?= =?us-ascii?q?me1iZ50KmOuaVzrrSCJmiKU+HD1Lul6IQ/oCEwnWcnDgjXFAtw2iPP9M4GnlY6?= =?us-ascii?q?eWx6VPR+wWGYxMcvuDT9vfY/BeKC8ili8FN+akY93cs7E530rHTWQDCKbI7lye?= =?us-ascii?q?Q1CSQvGH2TLrWZ8av5M1uio14N7QmDF4E7jQNbaFuzGu6pK4jDqfueDGVGktZk?= =?us-ascii?q?s1gPgYAGmA2xlNM2cEBMsQuE7zQ66MfUFM1Ggmieh2wR8DZBxzUmFy0n1RhPu9?= =?us-ascii?q?AcNZSVsIg26vQ/ALd053Ay0q/U+L4wzyZtoAtdrVR2BA6rsGUZAdI+Uw6InLJK?= =?us-ascii?q?sQx+4k3DBhoCw8tyWQFFZdgRyY/KreG6J83KFN6nci8/FwQE6PX2CXTm+S0Yei?= =?us-ascii?q?CsRS1Q9ysHvk0IzSpekrO7xE9K9jB1JfJyN9IdTU5nhgVmbvw0PmuRewGzCXO3?= =?us-ascii?q?QY5zEQPgQAKvYzyPV05kWbPu3d4F+d4vpy4HCgDhyGX//tgJE=3D?= X-IPAS-Result: =?us-ascii?q?A2FHBADKjbRY/wHyM5BeGwEBAQMBAQEJAQEBFwEBBAEBCgE?= =?us-ascii?q?BgyWBao5WqCcoiChXAQEBAQEBAQECAQJfKIIzIoIcBgECNxQgDgMJAQEXKQgIA?= =?us-ascii?q?wEtFREOCwUYBIlTBAGzECYCg2mHToZMiRURAWiFGQEEnB6CApAYim+GNpMxWHk?= =?us-ascii?q?IIRQsRoUFgUl0h2yCLgEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 27 Feb 2017 20:42:00 +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 v1RKfxc5024575; Mon, 27 Feb 2017 15:41:59 -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 v1RKdtQA022174 for ; Mon, 27 Feb 2017 15:39:55 -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 v1RKdnve023546 for ; Mon, 27 Feb 2017 15:39:55 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1DgAABEjbRYhyIeaIFeHQEFAQsBhTqOVqQUhDaILVcBAgEBAQEBAhMBAQEKCwkKHYUgBoEJUVcZiXQEAbMQhBGHToZMig+FGQWcHoICkBiRJZMxgVghFCyERQx6gUl0ihoBAQE X-IPAS-Result: A1DgAABEjbRYhyIeaIFeHQEFAQsBhTqOVqQUhDaILVcBAgEBAQEBAhMBAQEKCwkKHYUgBoEJUVcZiXQEAbMQhBGHToZMig+FGQWcHoICkBiRJZMxgVghFCyERQx6gUl0ihoBAQE X-IronPort-AV: E=Sophos;i="5.35,215,1484024400"; d="scan'208";a="5960227" 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; 27 Feb 2017 15:39:55 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3A533wsxK+ih23SecjUNmcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgeKP3xwZ3uMQTl6Ol3ixeRBMOAuq8C0bSd6vuxEUU7or+5+EgYd5JNUxJXwe?= =?us-ascii?q?43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRp?= =?us-ascii?q?OOv1BpTSj8Oq3Oyu5pHfeQtFiT69bL9oMhm7rArdutQYjIZmN6081gbHrnxUdu?= =?us-ascii?q?pM2GhmP0iTnxHy5sex+J5s7SFdsO8/+sBDTKv3Yb02QaRXAzo6PW814tbrtQTY?= =?us-ascii?q?QguU+nQcSGQWnQFWDAXD8Rr3Q43+sir+tup6xSmaIcj7Rq06VDi+86tmTgLjhS?= =?us-ascii?q?EaPDA77W7XkNR9gqJFrhy8qRJxwInab4ObNPdlYq/RYckXSXZbU8pNSyBMBJ63?= =?us-ascii?q?YYsVD+oGOOZVt5Hzp1oSohu5AQmjHvjvwSJLiH/x2q06yP8hGhzB0QwmHtIBrH?= =?us-ascii?q?PUrNHvO6cJS+y1za7IzTLYb/NNwjr97YfFcx87rfGLR7JwftPcxE8yHA3LiVWQ?= =?us-ascii?q?rJbqPzKT1ukVsmWb6vBsVfmoi2Mhtgp/oSCvy98xhoXXgo8Z0E3I+Tl2zYovK9?= =?us-ascii?q?C0VFR3bNCrHZdItCyWKpF6T8IjTm1ypSo21KEKtYSlcCQWypkqwQPUZeadfIiS?= =?us-ascii?q?+B3jUf6cITdmi3Jhf7KynxOy8Ee9xuHmTsm011JKrypZktbSqn8N1xrT6smeSv?= =?us-ascii?q?tg4EitwzGP1xrc6u1cIEA0k7TUK4I5z7ItiJYetV7PEjLqlEj5lqObeFko9vKm?= =?us-ascii?q?5unoernmo4WTN45wigHwKKQuncm/DPwlPAYSQmaX5fyx2aD/80PnW7VHluM6nK?= =?us-ascii?q?rBvZDfKskaqbS1AwhP0oYs8xu/CTam38gfnXkDNl1FYwiLj4nuO1HJO/D4Fuyy?= =?us-ascii?q?jE+rkDd2wfDJIqPuAo7XInjGn7rgcqxx60lGyAo81dxf/Y5bCqkdIPLvXU/8rM?= =?us-ascii?q?fYAQE9Mwy1xebnFdp825gCWWOPHqCZMKTSvUWO5uI0OeaAfoAVuDHjK6tt2/m7?= =?us-ascii?q?lnI9mFkAbYG1zJAXbza+Bf0gLEKHMlT2hdJUN2YBuQ43V6TLj1qZSnYHYXe5WK?= =?us-ascii?q?Y1/Xc6D4W9Fq/GGpDrh6aOinToVqZKb3xLXwjfWUzjcJ+JDq8B?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0HrAAAxjrRYhyIeaIFeHAEBBAEBCgEBG?= =?us-ascii?q?AEFAQsBhQ+OVqQUhDaILVcBAQEBAQEBAQIBAhABAQEKCwkKHS+CMyCCHgaBCVF?= =?us-ascii?q?XGYl0BAGzEoQRh06GTIoPhRkFnB6CApAYkSWTMYFZIRQshEUMeoFJdIoaAQEB?= X-IPAS-Result: =?us-ascii?q?A0HrAAAxjrRYhyIeaIFeHAEBBAEBCgEBGAEFAQsBhQ+OVqQ?= =?us-ascii?q?UhDaILVcBAQEBAQEBAQIBAhABAQEKCwkKHS+CMyCCHgaBCVFXGYl0BAGzEoQRh?= =?us-ascii?q?06GTIoPhRkFnB6CApAYkSWTMYFZIRQshEUMeoFJdIoaAQEB?= X-IronPort-AV: E=Sophos;i="5.35,215,1484006400"; d="scan'208";a="4296581" 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; 27 Feb 2017 20:39:54 +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 6574A56065D for ; Mon, 27 Feb 2017 21:39:53 +0100 (CET) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 6/6] libselinux: initialize temp value in SWIG wrapper to prevent freeing garbage Date: Mon, 27 Feb 2017 21:39:35 +0100 Message-Id: <20170227203935.23674-6-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.11.1 In-Reply-To: <20170227203935.23674-1-nicolas.iooss@m4x.org> References: <20170227203935.23674-1-nicolas.iooss@m4x.org> X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Mon Feb 27 21:39:53 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 Currently this Python program triggers a segmentation fault in libselinux SWIG wrapper: import selinux selinux.get_ordered_context_list() gdb shows that the segmentation fault occurs when freeing some memory: Reading symbols from python...(no debugging symbols found)...done. Starting program: /usr/bin/python -c import\ selinux\;selinux.get_ordered_context_list\(\) [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. 0x00007ffff789a304 in free () from /usr/lib/libc.so.6 (gdb) bt #0 0x00007ffff789a304 in free () from /usr/lib/libc.so.6 #1 0x00007ffff6011499 in freeconary (con=0x7ffff6ac5d00) at freeconary.c:14 #2 0x00007ffff6296899 in _wrap_get_ordered_context_list (self=, args=) at selinuxswig_wrap.c:6185 #3 0x00007ffff741891f in _PyCFunction_FastCallDict () from /usr/lib/libpython3.6m.so.1.0 ... SWIG generated the following code for _wrap_get_ordered_context_list(): char ***arg3 = (char ***) 0 ; char **temp3 ; arg3 = &temp3; if (!PyArg_ParseTuple(args, "OO:get_ordered_context_list",&obj0,&obj1)) SWIG_fail; /* ... */ fail: if (*arg3) freeconary(*arg3); If PyArg_ParseTuple fails, freeconary() is called on the value of "temp3", which has not been initialized. Fix this by initializing temp to NULL in the SWIG template. A similar issue exists with security_get_boolean_names(). Fix it too. This issue has been found using clang's static analyzer, on a system which uses SWIG 3.0.12. Signed-off-by: Nicolas Iooss --- libselinux/src/selinuxswig.i | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libselinux/src/selinuxswig.i b/libselinux/src/selinuxswig.i index 687c43bc6d7d..dbdb4c3d72d4 100644 --- a/libselinux/src/selinuxswig.i +++ b/libselinux/src/selinuxswig.i @@ -18,7 +18,7 @@ %typedef unsigned mode_t; %typedef unsigned pid_t; -%typemap(in, numinputs=0) (char ***names, int *len) (char **temp1, int temp2) { +%typemap(in, numinputs=0) (char ***names, int *len) (char **temp1=NULL, int temp2) { $1 = &temp1; $2 = &temp2; } @@ -33,7 +33,7 @@ } } -%typemap(in, numinputs=0) (char ***) (char **temp) { +%typemap(in, numinputs=0) (char ***) (char **temp=NULL) { $1 = &temp; }