From patchwork Tue Nov 15 23:07:23 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9430643 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 A6E7060469 for ; Tue, 15 Nov 2016 23:10:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9475D28CE6 for ; Tue, 15 Nov 2016 23:10:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8970428CF1; Tue, 15 Nov 2016 23:10:00 +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 (smtp.nsa.gov [8.44.101.9]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A1A4628CE6 for ; Tue, 15 Nov 2016 23:09:59 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,496,1473120000"; d="scan'208";a="795799" IronPort-PHdr: =?us-ascii?q?9a23=3AWwVqcxyluqmWR3zXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?1ekTIvad9pjvdHbS+e9qxAeQG96KsLQd0KGP6ujJYi8p2d65qncMcZhBBVcuqP?= =?us-ascii?q?49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6?= =?us-ascii?q?JvjvGo7Vks+7y/2+94fdbghMijexe65+IRu5oQnMq8UdnJdvJLs2xhbVuHVDZv?= =?us-ascii?q?5YxXlvJVKdnhb84tm/8Zt++ClOuPwv6tBNX7zic6s3UbJXAjImM3so5MLwrhnM?= =?us-ascii?q?URGP5noHXWoIlBdDHhXI4wv7Xpf1tSv6q/Z91SyHNsD4Ubw4RTKv5LplRx/yjC?= =?us-ascii?q?cMKiA3/mfZhMdtiK5XuQ+tqwB6z4PSfYqbNudxfrnFcN0aW2RPQ8hfWS9GDIy+?= =?us-ascii?q?YYsPF+gMMftWoobyu1QAogWxBRK3CePzyDJFnGP60Lcm3+g/FwzNwQwuH8gJsH?= =?us-ascii?q?TRtNj7LKYSXvyyzKnM1zrDdO5d1zT66IjPaRAhuuyHULV2ccrQ1UYvEAfFgU+L?= =?us-ascii?q?qYD/PjOV0eMNs3OA7+d7UOKihGEmpxt2oji1ycchk4/EjZ8WxFDc7Sh13Yk4KN?= =?us-ascii?q?KiREN7fNKoCoVcui6EO4dsX88uW2JltDsgxrAHuJO3ZjUGxIo7yxLFdfCLb4qF?= =?us-ascii?q?7xT+X+iLOzh4nmhqeLeniha39kiv1/PzW9Gv0FZPsipFit7Mtm0R1xDL6siIVP?= =?us-ascii?q?99/kC51DaTzQ/T8OBEIV0vlabBN54gwqI/lpoUsUjZGC/5hF72g7OMekUh++io?= =?us-ascii?q?7/zrYrTgppCCK495khzyP6shl8ClAek0LxICU3aU9OiizrHv4FX1QLBQgf03lq?= =?us-ascii?q?nZvoraJcMepqOhGA9azIIj6xe5Dze739UUhGIILFVYeBKBk4fmJUrOLevkDfa/?= =?us-ascii?q?n1uskDBry+rAPr36GJrBNHfDkLD/fbpl8U5T1BIzzcxD55JTErwOPurzVVXrtN?= =?us-ascii?q?zZFR80KBS0zPz9CNV8zYMeQWaPDbWFP6zMq1OI4fgvI+aUbo8PpDn9M+Ql5+Lp?= =?us-ascii?q?jXIhl14dfK2p3Z4JZ3CiBflmLVuWbmfrgtcbC2gKphA+TOvoiFKcTTFTe2y+X6?= =?us-ascii?q?Um5jE0EIimF5vMRpixgLyd2ye2BpNWZnpcBVCKDXjodp6EVuwJaCKKI89tiycE?= =?us-ascii?q?VLa6S4M70hGurgD6waJ9LuXI4i0YqY7j1N9t6u3Qjx4y9jt0D9mG3mGOVW50nW?= =?us-ascii?q?QIRyIs0KB4u0x9xU+J0bJkjPxACdxT+/RJXx8gOpHB1ex6Cs79Whjac9iTVFmm?= =?us-ascii?q?R8+qATYrTtI+29UOeVpyG82+jhDf2CqnG6MamKaPBJMq6aLcw3jwJ8FmxnbdyK?= =?us-ascii?q?YhjkcpQs1TNW2nnKFz7Q7TCJDVk0+Bjaalabwc3DLR9GeE1WeOvF9XUAp0UaXC?= =?us-ascii?q?Rn0fYlbWrcj+5kPHVbCiE7MnMhFOycSaMKtFdsXpjUlaRPfkINneeGyxm323BR?= =?us-ascii?q?aT2rOBd5Hqe2Ma3CTTDUgLiQYT8WyANQcgGieru3jeAyB2FVLzf0Ps9vFzqX2h?= =?us-ascii?q?QU8w0wGFcVdh16Gu9x4Lm/OcUegc3q8BuCs7rDV0Blm91crMC9WcvwphYLlcYd?= =?us-ascii?q?Ql7VdbyG3Wqg19MYakL615mlEedAF3sF/02BVsFoVMi84qo202zABqM6KXzEtB?= =?us-ascii?q?dy+E3ZD3IrDXLGjy/BSra6HIwVHTy8yZ9bkV6PQ/sVnjuxupFkU6+XV9z9ZVy2?= =?us-ascii?q?ec5onNDAcKTJ3+SFo3+AJkqLHUbSgw/J/b1X12Pqmurj/NxcgpCPEjyhm+Y9dV?= =?us-ascii?q?KLmEGxPqE80GG8iuL/Qnm0aobh0YIOBS87Q0M9m6ePuG366rOulgkSmijWRG5o?= =?us-ascii?q?ByyFiM9y1mRu7PxZYFzOmS3hGbWDfkkFehrsf3lJhAZTETBWq/1THoBJVPaa12?= =?us-ascii?q?fIYLD3quIsKsy9Vln57tWnhY9F+/CFMdwsOpfwSdb0Dl1w1KyUsXuWCnmTe/zz?= =?us-ascii?q?FsiTEpqa6f3CjQzOT4aBUHPWBKSXJ5jVfxPYe0lMoWXE+ybwgmjBGl/1r1x7BH?= =?us-ascii?q?pKRjKGneWV9IcDLrL2FmSKe/rKCObNVI6JMsrSVXV+K8bEufSrLhpRsa1D/sE3?= =?us-ascii?q?FYxD8lazGgoo/5kABiiGKBMHZzq2LUecR0xRvG+tPcQ+Vc3iQYSyl8jTnYGEK8?= =?us-ascii?q?M8Ov/dqKi5fJqvq+WH65Vp1PbSnrypuNtCil6m1sGh2yhPOzlcPhEQgh1y/0yc?= =?us-ascii?q?VqWT/PrBbmbYnhz766Pv5/fkl0GF/87NJ3GplknYstgJEfx2AaiY+T/Xobj2jz?= =?us-ascii?q?K85W2b/lbHUTXz4L2MTZ4BPi2E1+NHKG25z2Vnuawst7aNm1fHka2iQj4MBWEK?= =?us-ascii?q?2U9qBLnTNpolqkqgLceeZ9njEAxvY19n4ahfwGuAo3wiWbHL8SAVFSPTbwmBSQ?= =?us-ascii?q?89C+sKJXaX63cbeqyUp+mcusA62DogFAWHf1Y5kiEjV27sllN1LMynLz4Jn+eN?= =?us-ascii?q?bMddITqgGUkxDYguhWKJMxkuQFiDFiOWL6s30lxfA0jQBy3ZG6u4iHLnti8Li/?= =?us-ascii?q?AhFGKj3/f9kT9S31jaZCgsaW2JiiHpt7FTUNQJvoSveoHSkctfv5KgmOFyc8pW?= =?us-ascii?q?2DGbrFGg+f6llpoG7TE5yxMHGXPnYZx814RBaBPExfnBwUXDIik542FgCl2Nbh?= =?us-ascii?q?cUdh5jAN4V71sR1Mxfx0NxnkTmjQvh+oZSkuRJiZMhVW8hlI513JPsyG8uJzAy?= =?us-ascii?q?ZY84W8owyLMGOWfBlHDWcTVUCeAFDjJLau78Ha8+eEHuq+M+fOYbKWpOxETfuJ?= =?us-ascii?q?y4ij0o588DaIMcWOPmJvAOcn1UpGR3x5HN7ZmzoXQSwNiy3Nd9KbpAu7+iBvqM?= =?us-ascii?q?C/6u7kWBr35YaUBbtSMM9v+wuqgaeNNu6Qgjx2KTBE2ZMN33DIzKIT3FkIiyFh?= =?us-ascii?q?bzOtC6gPtTbRTKLMna9aFwUUZDh0OMtM7qI8xRVNOdXBhtPuyLF3kuQ5C0xbWl?= =?us-ascii?q?zlm8GpY9EKIm6mOVzbBEeLLqmGJSbRz8D5e6y8VaZQjOJStxGqvjabCUDjNCyZ?= =?us-ascii?q?lzb1TxCvLf1MjCaDMRNFuYG9fRFtCW74Qd37dBK0K953gicwwbEugXPKL2EcOy?= =?us-ascii?q?Bmc0xRtr2Q8T9YgvJnFmNb4XpqN/eElDiC4unfMpYZr/1rAiFumOJb5HQ10LxV?= =?us-ascii?q?7S5eSPxygivSocZko0u6nemX1jpnTB1Opy5XhIKMuEVuI7/Z9p5BWHna+hIC9n?= =?us-ascii?q?+QCxMUqNtmEdDgp6dQyt3Tm63pMzdC78jY/c0CCMjIMMiHKmYuMQL1GD7ICwsI?= =?us-ascii?q?VT6rNX3fh0xalfGd7GaVo4M/qpjthJoOUKFUWEYyFvMABURvBMYCL4tvXjM4jb?= =?us-ascii?q?6bi9YF5XygoxbLQMVXpZPHVvWJAfXzMjmZi6JEZxgJwb/iK4QcKJH70VR4alZm?= =?us-ascii?q?hITKB1bQXddVry17cAA0u1tC/2JkTmIv20LocRii4H4JFfGpmR42hBN+Yf4z+z?= =?us-ascii?q?bs+Vs3IETFpDcomkkrhdrlmSyRcCL2LKqoQI5ZETT0t0ksPZPgWAt6dxeynVZj?= =?us-ascii?q?NDbKXLJekadvdX1xiA/dpZtOGeRQTatabx8M3fuXfekn0UxAqiW7wk9K/fbKCY?= =?us-ascii?q?B8mwQwfp6stWhP2xx4Yd4uP6PQJ7dJzkJKia6Uui+oy+YxzxUEJ0oU7GOSfy0I?= =?us-ascii?q?uUwPNrU8ISqn4PBs4xSYmzRfYGgMS+YqovVy+0MzIeSP0T/v06VZJUC3K+yfKL?= =?us-ascii?q?iZtnPamsGUR1M8zEQIl1NK/bJuy8csb1KUV1wzzLuWDxkJMc3CKRtLYMpU9XnT?= =?us-ascii?q?ej2DserLwZJoJYm9EfroTeCWvqYOnk2kBBopH5gL7skZBZmjzkXYLcbhLL4Yxh?= =?us-ascii?q?Qg/xjkJFKADPtVYh2LiysHr9u5zJBpwYlXPisdDnllMSWr+rbXoRcnj+efU9cz?= =?us-ascii?q?ZXcaWJcEOm8tVc2khSFZpXVADTiw0uIf0gSC6SHzpjjIBjnmc9VjfOuUZQ9rCN?= =?us-ascii?q?yu+jU/6ai3hkTR8pXCJ2H3LttiutjX6ewGvZqHDe1bTaVluUfGh4ZYX2CqU3LI?= =?us-ascii?q?EdOtO5jwaowsbdvoCna6Ul2ykC86T8bxPdm3NaeEmwfoSphIsIODxjAsKde9Fi?= =?us-ascii?q?0CGxd3v+wD67h8ahcFY5onehPotgM+NqK5IAeE0tWhXWetKT1KT/ZB1+W2fbpX?= =?us-ascii?q?wDQwbuWi0nsvUok6z/Wr8U4KXJwFlBXexfe/aIZASSfzH3xcewPIpSo/jWdsLf?= =?us-ascii?q?09wuYlzxPOqFUcPS2LePZvaGNao9E2HUmSLmluCmokW1+cipLO7RWy0LAU5CZS?= =?us-ascii?q?hctb0fNbv3jkpZ/QeiisWayxpZXSqSogYsAso7dtPoz7PsuGqJTekyTFTJnWsw?= =?us-ascii?q?2KTC66F/1emthLOCxWWeRGl3s5NMIBoodO9U0xVsIiKLNVE6ksuqqmaTx6Ai4O?= =?us-ascii?q?1SUZTZ+P3CQegueg3LvXjgufcJY4PxMYq5hNntwdUypyYiMfuqCjTZnWmHGYRW?= =?us-ascii?q?gLOgsT6h5M5A0YnI9qYu/l+JbITINLyzNOufJ7SDHLFp5z+FbgVmGWm0L3SOu/?= =?us-ascii?q?nOyt3AJSyv3s0t0aWB5wCUhd2+hWmVEyKLFyMaUQuJDFsiOQf0PgoG3t0PemJE?= =?us-ascii?q?VWycDMd1z3FpHFunD5Ui0d/30ZXo5PyG3FGpQJjwV2crwnpFNSL4C6Ykz+/SAr?= =?us-ascii?q?x5x1H7mkUsCm31gkoWwaSCeqEtpBDuBmv0jUWDB+YpCktovqNItITm9X4p2dpE?= =?us-ascii?q?9TkF9xPC6h1ZpcN8ZN7yYUXDhIpTWSpsGyScNE2c9yAZ8BOdJ/u3D6GKNfJpee?= =?us-ascii?q?v2c2urv0yn/C+jA8tli6yC+0G6+iQOJT53ceFRkxJ2SCtkkvCPMh/X3I8lDQtF?= =?us-ascii?q?B45eRbC6OOjUVwoTZ9AotBCixP1X+7M1R5VGNGvPlCKKTJb8xcROE/ZQOoOxw7?= =?us-ascii?q?DvMmw1CF/URvknvjZSx9qBda8TjHXwYoTSkVnqvtmToGp8GnIzAaUYhHbTE8YC?= =?us-ascii?q?reNg2UhzhXvA5BZEFuRZ8ZGMxJ+7YB3Ytb5sDCU1qjKTkZXBx+MQI1yfpflUld?= =?us-ascii?q?v0WWZy/dFxGldffRvRJpY8idtsmpLO72/A1fkIPorPg497kfR32hgQCtQ9feoJ?= =?us-ascii?q?Hnu9KXqESOb7n3M/egYXDfUTfAlxawiqk4D5PS5SjcLBJbK4VmyXojeZXuEmDL?= =?us-ascii?q?MghaK68ZOkZWW7t3ZslBouBfe8BrYr0J+bN3ChKBWBzvBJSlrONaIVbLWTTeMy?= =?us-ascii?q?KB//SloY3N8LPdSfLvZtCXynbDRKJ3IIl15SfnFLftzIBR5FD62vFz+UNmUVLG?= =?us-ascii?q?KTyOrMz9JgMX48mvblPivoY1HTzMHZhwjGHgxlpHd8oKWS2l7IoXyJVF6HbqU+?= =?us-ascii?q?141lL/sOpI97lr8YM3+axmyd+oJafOLvRXqVNnAgKKCQp065ogG3V/R2RNYu8L?= =?us-ascii?q?MvjRY6UZjcfqq+/pC6wb8hqV+/ZWadHfPUHOhtG/Ci2ASRxDhAoBrCQVLg+Y1/?= =?us-ascii?q?Gbh690VdyqqvLi10Ir/Ve+MgUGw6x36oec5KWEvunXYAXNzbIcQKjlWtvzrqgw?= =?us-ascii?q?u0OV/fAklqQBenZyYw28FOgSTNAdy3zlzaA3ySIsD8LDEK7h+PFZUXI5hSjsm5?= =?us-ascii?q?dnH1UZAvkUB6aE/ZxCnmcknOzULt8WfbpEmmaBDx6kFaINxmCw5iuLOmZlhArO?= =?us-ascii?q?0xbqTWO18lD2sTdyQTHQwNf7jkpVSr63CF9dXyq0OE94tDePMxTttNfspKs68l?= =?us-ascii?q?o5Mm3+u9KLjmehP6lXH8LnLtyGPSY0vE4XjIE2RtG334AbHcGwINYX8HF7dPfe?= =?us-ascii?q?6mWrkyFbo6hdnIre/tuV+ujLEnm8kq2asauCyCpfyngislE18sqgOe3W592WX/?= =?us-ascii?q?So0H4cTyJ4uwvHQx61paLUoksROUyKykjLnpIFPs1X3Hk/zEHm5/MjTMg19ApA?= =?us-ascii?q?CobKf+kCqizrODvo3VafZMo6VjOD3DRKBV/1Hlx4Gacm1GL2os3JiW/a+0c0SY?= =?us-ascii?q?loa0znmRt3Ap08KUI27VgawjEOEQYTZh+GC7GoH17qLZMeVUgEaxSIwqS1erst?= =?us-ascii?q?0U102LOv6/fZbfZgCKoVKvZdkgmOkUBeGpISr6IeRbV8dEFZ9KPMqQjtFY/nX+?= =?us-ascii?q?P+lXUqKf21Q9pV8cQYt3sk/gawWR6g6ZNC77YUlp+IcLJLbobWsMB68Uhn+SYF?= =?us-ascii?q?djZRjxhnkxO5Teccqfj44tfBrpqn8OmuW7g2R+gM7Bg7HXp+gIH/gF89utHbze?= =?us-ascii?q?FcRZPJiY7n6gBCP2aKuJrG0xl7MecOKYOrfLN7+nUCOScfJ2wBPcCXa/k67C9h?= =?us-ascii?q?KjPT6EJeAskUf9MXINLNmRxIik3uQLxT98vaFUWCBIhvbM0o9HT4yCwr/pQgSO?= =?us-ascii?q?rg7yW2JZ/H5VFXI/xDlDlslM7FpOUN2vXSCTMX4HeDZBh3wyOC14GNBOzt/eWI?= =?us-ascii?q?09zbS1QGETMoXIhHOTqC4wunRvCvm5nzVQOU8MDziookdE2MXnyxgLgFsqFUHO?= =?us-ascii?q?5YkCr7wiRRFoD7hvKSqdqs63JbtkZZH4Z37B3FHrhfP5pgNBTgjMarWlRzBivx?= =?us-ascii?q?ecHTbBouu/CaxuQS7OVkMUvxe4sbLggDy7Lg5npfVhFuR6LuvlaFQeIRY8NrSO?= =?us-ascii?q?/ern9L7YJvMakPM0aGqZP3rzdIp1E2ABMzZ78rtDNabFTOkBdTW6nqpL4KkhEc?= =?us-ascii?q?XsJhuU9QBWKwP3oz5zXdWqRPkqaRFPwV/y6XTqwPT0VnLCN+TAmo2JV1Ybepm+?= =?us-ascii?q?5Isn9elCNnvPcqyyBmRAe7uSD0qKICxzQg+K2/tDUGvnBFVfuRkyPJCVVF0fQL?= =?us-ascii?q?grwRC3L85lymYHgMdpH+4L95KsT87YMh+WgwYQ0/fy0aWuStEyfwj6KUDYyItN?= =?us-ascii?q?JTngWNtN/Pbb+0KigSLa89xAnmR3Vy3QnShhFo8HEEQj+49t8rOJ29Odo5xiqv?= =?us-ascii?q?AWXbe0oD4rhSsMfoqFAFQ+04aVJnwGV+3cmKXSINRMnVFGYzkAcoc2JEcIhM6R?= =?us-ascii?q?UCDaknni6IvrVa/gETeDrUEIOl+onWncvSxXY9TdNqxn/LqayEh5Mq1mZlm9B1?= =?us-ascii?q?7iOVpnQSdvLYXNVoAnfu14dT0+r+aOuxsuofUotp1KyhUOMeMsmk4Wa22YtqVV?= =?us-ascii?q?WjxrkFG1q5LfIMxrbcUye+U2GYXv6Lc2eUlTYjLkHy/QWoLkEwaMpSrU8yLOXC?= =?us-ascii?q?hpBYlwD6X7J7XCOQqkHHzGA5N+MVaR42sp+9ewMWVO4Re/ScJe82zf0xDFsMaH?= =?us-ascii?q?HIEjVyC++yqlOth497O3Nh4Urme+jt9B7pMMeKEBkeDYHatoJx+eC9Rm+ZO39g?= =?us-ascii?q?zB1zPFFz9+fbFlQxqvFTfo2UndjRm9R7y/AKe+1qMS0ntd4Zgphj5pWM0MeWbR?= =?us-ascii?q?HRyY7/Jc3UovidGPDf00UqdX1ZUrUHZQP5/YM6McAlW7fLB7tWoQwcBbQmQJwm?= =?us-ascii?q?L2rx8aB0LABwcg7Wf7m0gNPlpuGMZptSuXDW6Eg8LCHCtB0f0va0VxB0b4i2h3?= =?us-ascii?q?XuJ5A9XilOoMNrCht6B4ZPAMcArw27A56IhqG0lcK+91l9u+8Qvqr6EurK28ih?= =?us-ascii?q?34VtQ5ha4lSGPDjPC6lvg0Rllvq9j+zB05nwDMPifM0LVPJ/QmHbcLPGGZ+/Kj?= =?us-ascii?q?2WMMLmZ0FG66Kc0K5+UhiJaiH5R7CGtCy4O/p6+kg7z414fPbJzDMz9b3b38Hy?= =?us-ascii?q?Z25DrCe5sXGJLIdf7EDNBeHGWBJUTeSK/X19Ha0Td4T07/sOMd0+z9iA+Ql88i?= =?us-ascii?q?pN3NGDI6e/sk/Gwlh7eo7DLEv1xyY5XpEHIBC+MUsqnG/YpW3RAXBdLsi/Nclt?= =?us-ascii?q?m82YDh336El3nmEhfGlBGnDnRd2JI2gUx9q+ZBGW9AJMF9sDhPC4eUo5tq20VO?= =?us-ascii?q?lpNZJJl+q2tLUHj9lpMT/ARNBAMCzLL795ICBRDuPRq1gseREErrc1Vp0yZZiU?= =?us-ascii?q?L0MNKF2Axj/qzQvezU30cMSh1KKIICYN7nVK1LPE0SFKpwajo/qZhNPsUKzBZp?= =?us-ascii?q?HsQPHSKDYlVi2dRTkqFEam40uru/oFvPqeJmcSuU4UYiOUCAENoqBvrN7QDnLc?= =?us-ascii?q?mOF5e50Knv+aUTjqSCJkjKoyGjpLtUeUTvoBDwbWbHjhj3FHtQy/IP9M4XLlb7?= =?us-ascii?q?qFxqpaW+wWHpFAcvuHTNvEYfpePSsnli0FOOageN3Rt7k53UjTQmsDEqnH6lme?= =?us-ascii?q?QVWIQvyY3T3rRoQVv5Uutiou5N3Qgjd9E77UMLaHuz6u7om4gT6aue3bUWkteV?= =?us-ascii?q?Y1gOMZAGSaxhlPMmQEBM8UuE33Ra6AfUlM3mozie1ywx8MZBhzUnp233JInva9?= =?us-ascii?q?Hc1ZSVgPjGOpRv0Ld193DCkt/U+U/ALye8YMucbNSG9C7rEMU5YSLOE06InLP6?= =?us-ascii?q?sd2O0p3DxjoCMmsiiQDEhQjhyb/KrKHaJ9x7pC5W8i8/FwQE6PXyvVcnLbxYq+?= =?us-ascii?q?F8JP2SBurGjm18rTuOBtMKBXp4RnD1gXDyJ2Icrd8ixfXm3u3gu9oQq7T3yiJ2?= =?us-ascii?q?cC7TIKIzEVXvpkxO989hDTf5DO7l3DmbgmrR6NCA2MDrOvkL1MDdrynVG+aCJM?= =?us-ascii?q?dTywUZFxre1WvNNOceUgf4foUAOJFRT3Eg/N43NEzxPtuLn+SJMSzw=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2EJBQAdlStY/wHyM5BdHQEFAQsBGAEFAQsBgwwBAQEBAR+?= =?us-ascii?q?BWLsoKYgtUwEBAQEBAQEBAgECXyiCMxqCFQIEAQIkExQgDgMJAQEXKQgIAwEtF?= =?us-ascii?q?REOCwUYBIhLBAGzTj0qAoNmiAiGPIh0EQFohRUFmkGBb45oiiOGCpFRVVoOOIU?= =?us-ascii?q?dcYVtgi0BAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 15 Nov 2016 23:09:57 +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 uAFN9uV4015824; Tue, 15 Nov 2016 18:09:57 -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 uAFN7crC122398 for ; Tue, 15 Nov 2016 18:07:38 -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 uAFN7aYZ015669 for ; Tue, 15 Nov 2016 18:07:37 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1BXAAColCtYhyIeaIFdHQEFAQsBgzcBAQEBAYF3tx6ELogyUwECAQEBAQECEwEBAQoLCQkdhRIGJ2JRVxmIbAQBs1I9hBKICIY8iW6FFQWaQYFvjmiQLZFRgT2DCQyCQHGIGgEBAQ X-IPAS-Result: A1BXAAColCtYhyIeaIFdHQEFAQsBgzcBAQEBAYF3tx6ELogyUwECAQEBAQECEwEBAQoLCQkdhRIGJ2JRVxmIbAQBs1I9hBKICIY8iW6FFQWaQYFvjmiQLZFRgT2DCQyCQHGIGgEBAQ X-IronPort-AV: E=Sophos;i="5.31,496,1473134400"; d="scan'208";a="5826142" 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; 15 Nov 2016 18:07:37 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3AIYE5OxM+lNMca8Kqdlkl6mtUPXoX/o7sNwtQ0KIM?= =?us-ascii?q?zox0LfX7rarrMEGX3/hxlliBBdydsKMfzbON+PiwEUU7or+5+EgYd5JNUxJXwe?= =?us-ascii?q?43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRp?= =?us-ascii?q?OOv1BpTSj8Oq3Oyu5pHfeQtFiT6zbL9oMRm7owrdutUVjIB/Nqs/1xzFr2dSde?= =?us-ascii?q?9L321oP1WTnxj95se04pFu9jlbtuwi+cBdT6j0Zrw0QrNEAjsoNWA1/9DrugLY?= =?us-ascii?q?TQST/HscU34ZnQRODgPY8Rz1RJbxsi/9tupgxCmXOND9QL4oVTi+6apgVRnlgz?= =?us-ascii?q?oFOTEk6mHaksx+grxGrhyvpBJxxIzbYI+OOfZiYq/QZ88WSHBdUspNUSFKH4Oy?= =?us-ascii?q?b5EID+oEJetWt4j9qEcJrRu6HwasH/7kxDxPhn/xxq06yPkqHAbA3AwhA90Ot3?= =?us-ascii?q?DUo8/uNKsIUOC1y67IzS7Yb/5N3Dfw54fJfgomofGWUrJ9aMzcwlQsGQPdllic?= =?us-ascii?q?tJLpMjeP2ugQr2SW4PBsWOyzh2I9pQx8rSCjy8QxhoXTh48Yy0rI+ThnzIopP9?= =?us-ascii?q?G0VlJ3bNyiHZBNrS+VLZF2TdknQ2xwuCY11LkGuZmjcSgPx5Ur2gTTa+SAc4iM?= =?us-ascii?q?4hPjSPieLit4hHJjebK/nguy/la6xu37TMm0305GritDktbSqnAAzwHf5taDR/?= =?us-ascii?q?dn40utxTmC2xrd5+1YO0w5m6XWJ4YkwrEql5oTtUrDHjXxmEXzlKKYa1kq9PW0?= =?us-ascii?q?5+n/fLrrpp2SOo1shw7/Lqkjgsm/DOs3MwQUWGib4+u82aXl/U34XLpKifk2nb?= =?us-ascii?q?PCsJzAJMQboam5AxRO0os48Bm/CCqm0NIEknYZN1JJYheHgofmOl3UJ/D4F/i/?= =?us-ascii?q?j0y2kDh33/DGIqHhApLVI3jYjrjhebd960hByAs81t1f+5JVBa0BIPL0QEPxss?= =?us-ascii?q?fYAQUjPwy7xObnFoY16oRLQm+LA6mEIIvOoFSI4aQpOODKa4gL6xjnLP1wwf/l?= =?us-ascii?q?inswghc8eq6yxtNDbnGzGfBvOAOYZn33mf8ETXdMuRAxGr+5wGaeWCJeMi7hF5?= =?us-ascii?q?k34Ss2Xdqr?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GWAADwkytYhyIeaIFdHQEFAQsBGAEFA?= =?us-ascii?q?QsBgwwBAQEBAYF3tx6ELogyUwEBAQEBAQEBAgECEAEBAQoLCQkdMIIzGIIXBid?= =?us-ascii?q?iUVcZiGwEAbNPPYQSiAeGPIluhRUFmkGBb45okC2RUYE9gwkMgkBxiBoBAQE?= X-IPAS-Result: =?us-ascii?q?A0GWAADwkytYhyIeaIFdHQEFAQsBGAEFAQsBgwwBAQEBAYF?= =?us-ascii?q?3tx6ELogyUwEBAQEBAQEBAgECEAEBAQoLCQkdMIIzGIIXBidiUVcZiGwEAbNPP?= =?us-ascii?q?YQSiAeGPIluhRUFmkGBb45okC2RUYE9gwkMgkBxiBoBAQE?= X-IronPort-AV: E=Sophos;i="5.31,496,1473120000"; d="scan'208";a="980692" Received: from mx1.polytechnique.org ([129.104.30.34]) by emsm-gh1-uea10.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Nov 2016 23:07:36 +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 E5C4A564CBF for ; Wed, 16 Nov 2016 00:07:35 +0100 (CET) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 3/3] libsepol: make parsing symbol table headers more robust Date: Wed, 16 Nov 2016 00:07:23 +0100 Message-Id: <20161115230723.20043-3-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161115230723.20043-1-nicolas.iooss@m4x.org> References: <20161115230723.20043-1-nicolas.iooss@m4x.org> X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Wed Nov 16 00:07:36 2016 +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 hll/pp loads a policy file which has been modified so that the nprim field of one of its non-empty symbol table was changed to zero, it crashes with a segmentation fault. A quick analysis leads to "p->sym_val_to_name[i] = (char **)alloc(p->symtab[i].nprim, sizeof(char *));" in policydb_index_others(), which is not executed when p->symtab[i].nprim is zero even though there are items in p->symtab[i].table. Detect such an oddity in the policy file early to exit with a clean error message. Signed-off-by: Nicolas Iooss --- libsepol/src/policydb.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libsepol/src/policydb.c b/libsepol/src/policydb.c index b112fd5465b5..d1019e42de16 100644 --- a/libsepol/src/policydb.c +++ b/libsepol/src/policydb.c @@ -3510,6 +3510,10 @@ static int avrule_decl_read(policydb_t * p, avrule_decl_t * decl, return -1; nprim = le32_to_cpu(buf[0]); nel = le32_to_cpu(buf[1]); + if (nel && !nprim) { + ERR(fp->handle, "unexpected items in decl symbol table with no symbol"); + return -1; + } for (j = 0; j < nel; j++) { if (read_f[i] (p, decl->symtab[i].table, fp)) { return -1; @@ -3881,6 +3885,10 @@ int policydb_read(policydb_t * p, struct policy_file *fp, unsigned verbose) goto bad; nprim = le32_to_cpu(buf[0]); nel = le32_to_cpu(buf[1]); + if (nel && !nprim) { + ERR(fp->handle, "unexpected items in symbol table with no symbol"); + goto bad; + } for (j = 0; j < nel; j++) { if (read_f[i] (p, p->symtab[i].table, fp)) goto bad;