From patchwork Tue Nov 22 22:23:41 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9442285 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 6AFD0600BA for ; Tue, 22 Nov 2016 22:28:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5DD181FF10 for ; Tue, 22 Nov 2016 22:28:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 528F220747; Tue, 22 Nov 2016 22:28:14 +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]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7866B1FF10 for ; Tue, 22 Nov 2016 22:28:13 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,682,1473120000"; d="scan'208";a="1234375" IronPort-PHdr: =?us-ascii?q?9a23=3A2eohXh1S1YqlMIm/smDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?sewVLP3xwZ3uMQTl6Ol3ixeRBMOAuqkC0bed6v2/EUU7or+5+EgYd5JNUxJXwe?= =?us-ascii?q?43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRp?= =?us-ascii?q?OOv1BpTSj8Oq3Oyu5pHfeQtFiT6zbL9oMhm7rQrdutQWjIZgN6081gbHrnxUdu?= =?us-ascii?q?pM2GhmP0iTnxHy5sex+J5s7SFdsO8/+sBDTKv3Yb02QaRXAzo6PW814tbrtQTY?= =?us-ascii?q?QguU+nQcSGQWnQFWDAXD8Rr3Q43+sir+tup6xSmaIcj7Rq06VDi+86tmTgLjhy?= =?us-ascii?q?kdNz497WrZlMp+gqxGqx6lvhBz3pLYbISTOfFjfK3SYMkaSHJBUMhPSiJPDICy?= =?us-ascii?q?YYwNAOoPJeZVrZTxqlUBohSiCgejGvjvxyRUhnL0x6A2z/4sHR3Y0AEmAtkAsG?= =?us-ascii?q?7UrNLwNKoKSe61zbXHzTLHb/xMwjf29YvGchcmofGXRrJ7bM3cyU8uFwzZiVWQ?= =?us-ascii?q?rZbqPyiP2uQMtGib6PFgVfm0hm4ipAxwrSKjxsA2ionGn48YzE3P+yZhwIstON?= =?us-ascii?q?G1R0F2bcSkHZdNrS2WKYR7Tt04T211oCo3yaAKtYS6cSUL0pgr2gDTZ+Cdf4SW?= =?us-ascii?q?/h7uVuCcKipiin1/YrKwnROy/FClyu37S8a7zk5HrjFAktnQrnAN0AHT6tSfRv?= =?us-ascii?q?t94Eih3TGP2hjP6u5eO0A0lLfbK4U7zr4slpscrUTDHijslEXwkKCWbVkr9vKt?= =?us-ascii?q?6+TmZrXqvp6cN4lqhQHiKqkih8OyDOsiPgUOQmSX4/qw2bL98UHjXblGlvg2nb?= =?us-ascii?q?PYsJDeK8QbvKm5AwpN34Y49Rm/Czam0NIFnXgINV5KYxWHj5XvO17SPv/4Fuyy?= =?us-ascii?q?g0iskTh3x/DGOaftApPWLnfZirvhcrF961BExAop0d9f/45UCq0GIP/rQUD+r9?= =?us-ascii?q?vUDhs4Mwyv3+bnE89x1pgAVm2TGKOZK73dsVuJ5uIpPumNa5QYtyr9Kvg/+v7u?= =?us-ascii?q?lmU1mFEHcqm1xpsXb3a4Eu5hI0WDbnrmms0BHnsSvgoiUOzqj0WPXiBLZ3moRa?= =?us-ascii?q?I85yo7BZm+DYjZXICtgaeB3D+/HpJMem9JFEqAEXDyd4WLQ/0Mcj6dItd9kjwY?= =?us-ascii?q?UrisU4Eg1RCqtA//1bVnNPHZ+iMGup3+09h1/ffclQko9TxzDcSSzX2CT31ukm?= =?us-ascii?q?MPXT8207h1oVZhxVebzah4n/tYGMRd5/NTSAg6M4LTz+1hC93pXwLBZtaJRE+9?= =?us-ascii?q?QtSoGjE9VNUxw8UBY0xlAdWtkgjD3za2A78Sj7GLB4Y78qHb33jsPMt9yGzJ1K?= =?us-ascii?q?omj1k7WMdPMnemhqFn/QjJG4HJi1mZl7qtdakExiHC6X2DzWuQs0FCSwN/S7nK?= =?us-ascii?q?XXUFakvRt9T56VvIT6WyBrQ/LgtB1cmCJ7NWZdLziVVJWuzjOMjeYmK2gGqwHg?= =?us-ascii?q?qHxrKSY4rsZ2Ud3T/SBFICkw8N4XaMLRI+CTu5o2LCEDxuEkriY0Py/ul6rHO7?= =?us-ascii?q?SVQ5zwWXb0190Lq1/wQaieabS/MJ0bIOoD0hpClsHFahw9LWDMKNpxFvfKVGZt?= =?us-ascii?q?M9+0tH2HnCtwx7OZyhIaViiUQYcwhtuUPhyQl3AJ1akcc2tHMq0BZyKaWA3VJP?= =?us-ascii?q?bTyY2YzwNaPNKmnp5x2vdbDZ2kvF39aL/6cD8vM4q0/svAuxDEot721n08VJ03?= =?us-ascii?q?ub/pjKEBcdXo/wUkkt8xh3vK3VYi4454zIz3JsKrW0viXE2903GOsv0gygcMtH?= =?us-ascii?q?MKOYCA/yFNUXB86vKOwun1imcAkEMftI+6EqJcOmcOGK2KmxPOZvhDiml3hI4J?= =?us-ascii?q?hh0kKQ8CpxUvPH0IwZw/6CwASHWTj9gUy9vcD3g49Efy0SEXSlyST+Ao5eeLFy?= =?us-ascii?q?d54RCWiyO8232sl+h5n1Vn5G9V6sG08G2MizeRaIc1P93QpQ1UIYoXG8nSu4zj?= =?us-ascii?q?p0nCszrqqYxiDOxP7idBUfMG5RWGZilUvsIZSzj90CWEiobhMplAe86Ubh2adb?= =?us-ascii?q?oKV/L2/OQUZHZCX2NHliUqq2trqDf8FP84kksSNJX+SgeVqaUKLyowMG0yP/GG?= =?us-ascii?q?tT3Co7dzauupX9gRN6kn6SLHF9rXfCYsFw2AvQ5MfGSf5WxDoGSzFyiSPLCVik?= =?us-ascii?q?I9mp4dKUmo/bsu+kSmKhUodffjPxwYybsyu74XFqARq5n/2on93rDQ460Sjn2N?= =?us-ascii?q?VwUyXHsgr8aJHx16umKeJnYlVoBFjk5sp/HoFyi5U/hJcL1HgEmJqV+X4Hnnnp?= =?us-ascii?q?MdlB36LxcmYNTyYRw9HJ+AjlxFFjLnWRyoL6SHqdxNBhasK5YmwI3CI99MZKB7?= =?us-ascii?q?mI7LBemit1uFW4pxrLYfdhhjcd1ecu6HkCjuERogUt0yGdDa4KHUZCOyzsiwqH?= =?us-ascii?q?78qloaVKf2agb6Kw1FFkkdC6C7GCvxtcV2rndZcsGi9w9Mp/P0zW3H319I7kZM?= =?us-ascii?q?HabcgPuR2MjxfAk+9VJYovlvoMmCVqInz9vXs4xO47lxBu24+1vJSfIWV34K25?= =?us-ascii?q?GgJYNiHyZ84L4jHil7tensKN0o+zH5VhBjUKUILmTf2yFjIer/PnNxyBEDcksH?= =?us-ascii?q?eUBaLfHROD6Edht3/PEJCqN3WJK3QCyNViQxedJEJBjwAIQDU6npk5FgW0y8D7?= =?us-ascii?q?dkd2+CwR7EbiqhRQ0uJoKwX/UmDHqQemcDg0ToSfLB1T7gxZ6UfaL9GR7uVpHy?= =?us-ascii?q?5C5p2htguNKm6FaAtUEWEFQEuEB0rsPrO2/9nP7/CYBvaiL/vJebiOpuxeWOuS?= =?us-ascii?q?xZOvyotm4zGMO96JPnZ8E/07wVZMUmphG8vHgTkPTTIYlz7VZc6BuBi84jF3rt?= =?us-ascii?q?y48PnzRQ3v45GABqBPPtVp4R+6m6CDN/SfhCxhMzZXyosMxWPUyLgYxFMSkTti?= =?us-ascii?q?dje3HbQFryHNSKXQm69MAhEBdyxzMdFE76Um3glCIcTbkM/61qZkjv4pDFdITV?= =?us-ascii?q?rhmtuzaswSO2GwL13HBEeRNLSdOT3LzcD3YaWmRr1WkOpUtge/uTKBH0/kJDSD?= =?us-ascii?q?mCHjVwqzPuFUkCGbIBtetZmgfRZ2F2fsVt3magehP99pljA22qc7hnDXNW4GKz?= =?us-ascii?q?dwaUdNrqCW7SxCmPVzAnBB7n1mLeiEnCaV9e/YJYgKsfFzGCR7i/pa4Ggmy7tS?= =?us-ascii?q?9CxLX/11mCTVrt5ouFypj/eAxSFmUBVUrDZHnoWLvV9tOa/B7JlPRW7E/A4R7W?= =?us-ascii?q?WXExkFvdRlBcfxu69O0dXPk7rzJylE89LR58QcBszUJ9mAMHsuKxbpHyTUDAQd?= =?us-ascii?q?Rz6xKW7fn1BdkO2V9nCNspg6rZ3slIAUSr9cVV06CPUaBV9/HNwFPph3XSgpnq?= =?us-ascii?q?KcjM4N+XWxtgLRRNlAspDBSP2SHe3lKCyFgrlcexsI3bT4IJwTNo3n20xibVx6?= =?us-ascii?q?k57RG0fLWNBNozFhbhUqr0lX93h+VGIz0Vr/agyx+H8TCeK0nhkuhwt4f+si7j?= =?us-ascii?q?Ps7kw0JlrNvyswjFM+mdP+gTCScT79NqGwUp9KCyDsrUg+Lov7QxppbQ21hUFk?= =?us-ascii?q?LinLR6lPgLR6b2BklA/ctIBUFv5dV61LfRgQxf+PZ/Uyz1tdqj+rxUlZ6uvZEZ?= =?us-ascii?q?FijhclcYawr3Jc3AJudMM6KrbOJKpI01dQnbmDsTWy1uArxw8fKV0N/32Ody4V?= =?us-ascii?q?okwIN6UmJiqy8uxq9wOChyNJeHIQWPoyvvJq6kQ9NvyOzyL6zbFMN1uxOPaZL6?= =?us-ascii?q?OFvGjAjtWFTUks2UMNjUVF+qJ20cg7eUqOS08v1KeRFwgONcfaLQFVaNBS+2bV?= =?us-ascii?q?fSePtuXA2p11P4OgFuzySu+OrqkUiFq+HAk1B4QM8tgBHp603UHDM8jnKL8FyR?= =?us-ascii?q?Mw5AXkP1iKEPNJeBeXnzgduMG/0IV73Y9DKTEBGW99Kzm45q7Lpg82h/qORMo5?= =?us-ascii?q?bWsfXosDMHI2RNC2ljVHv3teFjm30+MYyA+E7zPmoCTfEiX8ZcJ5ZPiIfRNsFM?= =?us-ascii?q?22+TIn/qi1k17W8o/RJ2fmNdRiodLP5uQap46bBP9OS7lyrVvckZFCR3O2S27P?= =?us-ascii?q?DcK1J5/oZokwbNz0D3G6UkC/izM1VMr+IdetL6iSjg7zX4pUtpeU3Cw7P8+nCj?= =?us-ascii?q?4eAwtwp/0E5K9kag0DeYA0YRj0twklNqy/JwmZ0tOyQ2atNzRWTv9fzfmkaLxN?= =?us-ascii?q?1SYsaPG1yGc4RJEg0+a36VINRI0NjhzG3/mjY4heXjTtFXNFfgXOpSw5l29nNu?= =?us-ascii?q?ko2eow2xLIvkMaMzySeuxpdXZIv9ciClOOOX92EHY3R0eAjYrf5Q6hx6sd8DVb?= =?us-ascii?q?n9tPy+JKrWb+sYHFYDK3QqOrs5XUvzAnbdg8rK17KZbjLdeetJPCgjzfS4Hdsh?= =?us-ascii?q?eDUC67C/Vamt9QICZDQPdQgG8rJNYItJZG50cqSsg+ILlPB7U2qbCxdTpoFygS?= =?us-ascii?q?wjEFV4mYxjwNnv+826fGlheXaJktLB4Ev49ejdYGTyF2ZScepKuiV4rIjW+EVn?= =?us-ascii?q?YELxsT7QhW4wIAjIBwdPj/4IXUVJ9M1yJWo/VsXyvRDJZo7Vz7RXqNjFjkUvWu?= =?us-ascii?q?ifKp0hxWzPLt1NkbVxp/CUlSx+ZWiksoJqt4K7MVvoLQtD+Ha1/6tnr3yOS6PF?= =?us-ascii?q?lR1dHUd1rgAYvFr2X8STcT+XgVRY9J03zfFIgSnBBiaKk3vlpAOoamdVji5zY8?= =?us-ascii?q?3YRmA6G4Vdy3x1YitXsHST2mHMZBC+FntVLXWSdqY5OwpZXkJZpdXHFf9Ieaq1?= =?us-ascii?q?dDn0VnKzS5xoZEK8FR/j4MWyBCoS2avNu2UsJDw8F3D5gIItdxoHr9HaREOJ+K?= =?us-ascii?q?o3IoprPv0HjZ+ysnsFe7wjWzFLW0T+VD/20RAg8pPXiRqlEzD+sw9Wff6krCsk?= =?us-ascii?q?pp/+ddHLSPjl58oDd8HpBPGjZGzmqpL1JtQ3laq+9aMrjac9RAQ/kuYh+iIwA+?= =?us-ascii?q?Ffkj30GS4UF4gXL5bDdougtc5S/dQxE+VTMJjbf1hT0etsanNCcaS51SdzUudS?= =?us-ascii?q?PFJB+AlC9Kohlfc1lqVI4dAtlb4bEXx4xU/tDNSUy0MyEKQARiNh4k0fpYjUND?= =?us-ascii?q?sEKYdj7TDQW2b/bCqRx3ctmPo8G3Nvj5+x1Hioz/uuAi66oDX2GmmRGqQd3GrY?= =?us-ascii?q?/8scOFu1CTe6jmKO2zf2XBTCTSgh+tn7skCYfF/zTLOgpBN5Z60WYkYYTmCWPT?= =?us-ascii?q?JhtGKb4UK1ZZWKxnZ9hLufxVZ8hheKkV46BtHQ6HSgnpGIOxsPlMNkzTSijGLy?= =?us-ascii?q?Wd7uy/ppre7abDRuf9ZsyD3WrHTrlzPpd99zn0Banm3pNZ+kXrxPhh7EV6Rkba?= =?us-ascii?q?MyqZttTuOhsL5NW+dkvlppApBSjWAItqn3Xw2kFNbNEXQyq38JQC1JxW9nDwSf?= =?us-ascii?q?5i0kfptO1e7b5k6ZM447px08e7Ob/SKehGsU9gGhWUGh9q+YszD2diXG1Rf+sR?= =?us-ascii?q?KOvLfasDk8Duquf3F6gJ5x2J4eBZbsHHJ07ZkMmlFj6cUQBEnBsGqTMCKwuTzf?= =?us-ascii?q?qFm6tqRsa5uej2wFgi7kO4LhEY0LBt/puL9bCQpODJdRfRy6YLWrTyTMPpsrss?= =?us-ascii?q?o1+S5eEjlLMWeGx6eRenEO8GVs4Z3Gjg07snzScxE8PHA7Lg+eJMV3MjkTLmgJ?= =?us-ascii?q?BxBVIWGukbHbCT54RRgn84m/DFNt0Raq1CmHyAFRiqEr8Yzn6k9jWYLXJ5gh7U?= =?us-ascii?q?1RHwWmSz4EXwrSBmXSvG183jnVZNVrmrGUdSWDKkOUBlsDOOOArosMT4uaEu4U?= =?us-ascii?q?4rLGPrr9ONm3GnOL9NGM3/PtOcKzEupF0LlJ0xWsCv2YcDFNq7JNcc63B+bv3b?= =?us-ascii?q?62+xki9BpalHh5DE7cGO5vXXB2SggLGGq7WQ3jBX1GI0vVYl6tCvLvvO/cGFQ+?= =?us-ascii?q?y012YNSCdyow7BXxmzqrzHoFAbJ1eG0ELKmIMQONFWw2U410/h5Og5Q9Iz7x9S?= =?us-ascii?q?FoDeaPMevTrzIif7wU6DY9IrUSmTyyFXEU/oHlRjF6g83W3xsNjPlXjO510iXp?= =?us-ascii?q?NweFD/hRxrE4U4Llog6FwMwioGEQUAch6bA6+1CkTiN4sLT1ADaQ6A3Li4ZKg4?= =?us-ascii?q?wVFzzqmo5O/JYux2H7ANOepFjg6SgFhbHYobsagaQL1ifl9d87DYpgz5BojoQf?= =?us-ascii?q?fmkmEwNeWvTcBG8MAWrX8i4ge5Rxq895hD67IbiJGHdqFaZ5jDoN5z411h5TER?= =?us-ascii?q?aixHmAJ/gA+hUeAAuODj5cDWsIGy5eawTqktSPsY9wMvCmRllZTwnkosod7J2O?= =?us-ascii?q?dHUIHVj5rw8BxVKX6QpInaywV8KfYJK4+zfrZg9nAHKjMbJ30QPduZdeM84y5r?= =?us-ascii?q?MDXc/VBCBN0DZc8ANsrXhQ9UklHpWK1U9sfDG1+ZCp18eNo04Gfs0zA674c8Xf?= =?us-ascii?q?j85zOsIpDf9V5NNetZjCpwjNLCuPQVwf3KBScM4HmZcBZ0zTmAy5mMF/bw5f+D?= =?us-ascii?q?yMzQV14dAiE2VJpSKySY9gy6XOq1k4/pXRmO5s/0mpI+e1qaRmatk6QdrqZMDe?= =?us-ascii?q?lAhz3j3jdECoD6m/KVstSr6GtNtV1LCZ1z4gPBGKVeOJV7JBv5m9KzRkdmGivw?= =?us-ascii?q?ZMHUdxQpuOqMxecA+eZ+OFXkZY8dPB0Ez6j26X1PTgthULT2pEqWXfoNZNt6T/?= =?us-ascii?q?PJtmxV6Zh+JK8LJledooLloyxVp1A3Dw8paaMwoSZBdkbUhg1VRrz4uLgehQsA?= =?us-ascii?q?SdR5o1NDGXqsOGIi4DrKTatVg7OLCPML7jWTTrcDU0FpMiNiXRy12I9he6aynf?= =?us-ascii?q?xdtGNJgD99quAw0zN6XBu8pTHsp6UV1DIv5r64sikBuXtCTumZiCfHF1FDzPUM?= =?us-ascii?q?jacBBHfv8li8b2cZbIry+rZrP8Lg+pc9434nexUsYzUGXfi8CyH3l66IBI2Pv8?= =?us-ascii?q?5bhB6JosrOdqW/LSkVNrQ60hLjXGNw0g3RkRdn6mcLRS+g7NA8LoWnJckl3jao?= =?us-ascii?q?GXTcdFsU7aNGrNDxtUUSQOUrZl1vxmRj0s6aRiwCX8HPFGM1gRIiaWpaap5D7g?= =?us-ascii?q?UaF6YwiDaSoqZG5h0UYCvTEom9+InQmsfI2X8nQdh2xmLWorCFiY4r0X1kndN0?= =?us-ascii?q?9S2OuHUJeuzGUs9sHGL81oNCxuz/ffmttP4ISJd+wrS7TPACKtWj+Xex2JhyW0?= =?us-ascii?q?+l2K4RH1yiPe8H27fUTialSWqDWeiRdGiMhTk5OFbo5Ra0Nl03dNtKr0glP+vA?= =?us-ascii?q?mJFcmQPhUbdvSySev1DbynIsMf8AewIwpoinZxQATPQNaOiEOegu3Po+BUMDb3?= =?us-ascii?q?/NGit3BfG5sVqpnIVgIHVg5kP6YeXx/Qz8NtudBAUEG5bArpFt4fy6Wn6BOXh4?= =?us-ascii?q?wR1wPEl19//fF1M1tu9db5aeg8Pdh9F60e4ZbfdiLzcxutkJmoJs8YOUytuFcQ?= =?us-ascii?q?nNzpbuItHYuuSYA/zaz0kxZmFaU6YWYQDr6IU+JNI5XaPcHadBtxQGGac6WIAh?= =?us-ascii?q?N3v29KxsKQNzcw3RZLezgsTxpOKEfJhUp3jQ7l0uKifQoRsDxeKoTQZjdZClm2?= =?us-ascii?q?3yIIwsRjJGt9BiEQVpHI1TG84btAqnB5mUmL2ni9+v5Ux1pvUGsa3qCvDFzN65?= =?us-ascii?q?xZl+X4BG5UyXOzbcHKdrjVphjuSzmvfPzIL8CMLjedMBUeh0XHTFarvYEYmlLT?= =?us-ascii?q?KOIM38cVZc87GAyLJ5TgmRZCfhUquIrC2kLvRk7lklxYFjeerTzSAt76vF19fo?= =?us-ascii?q?YGFbvCijp2aTNJRD9FzKGfDeXxVMRPqC9GZqA7YabZPw9OgUKtwi3Nmc7BVv7D?= =?us-ascii?q?RYzsSKPbKtrknS1UJnbZjbNlfm2z4lWYkWJxSyKU8sgW7fqnTADnVQN8ykKch2?= =?us-ascii?q?gNaJFRzg/EhxlnsrZm5GAGboQs2ROWcD0cKkeAKK7B5LD8oEn+OvYk43qKmySe?= =?us-ascii?q?huOpVYluSms7oJkcppKy7RXshVITnQI6VtMzpSEOrPvl4obQAAs7cuR4c1aoKC?= =?us-ascii?q?IEQdMEeP0Sny1xfN0VXod9yw06aEOCIW8nRcz7LZyjVNphC5ufCDjcH5VrDWco?= =?us-ascii?q?32VubIMCU5TjGaWSgyEUGx9FehofULoPqYIWYZolATeS+SFg8TpqZxotjUD2/T?= =?us-ascii?q?n/BjfZIQiPCdQSDwRzVylLAuCSZTqUCMX/0DGBHUb3D7g2pcvxetK+RR/XLjc7?= =?us-ascii?q?2Yxq1VW/EZAotMbv2VWd3Ydu5CJz0wjDUWJP68f8HAr7Y+yl/IQnEWHLLS9F2f?= =?us-ascii?q?UkGWRueRxyzvXYoPpIg0uzco9sjWniBpD6TCJ6yfqCK28o6kkCaYvvXTVmsoY0?= =?us-ascii?q?wymuICGmiBwAJbJWECEd4VvV/iQq+aa0ZLznIphvpk2wUQdwRrTn1uznpWke6j?= =?us-ascii?q?Fc1bTl4UjGWuQOYBbFBxFz4w8lWK4hDsYdMeo8DfXWle+aUQSYAFNvkn9JHXOL?= =?us-ascii?q?cMwPYuxD9muyI6syCBAF5cjQ+I6LTQE7xmxr1D5Gg4+Pd2UluJQzzBbmjN0pCm?= =?us-ascii?q?BN5XxSdyvXDk0NLZvuJqNLtco4F0G1IKDjxrKdDT+jBBS3371xWosxa9AjuePG?= =?us-ascii?q?FR3DFePiEBd+Bo38dnoR3IcZDH8krWuKU/+2WxDgPeLLu/35hCEYnI0gKjcmEf?= =?us-ascii?q?dzSgEJR/sbBMk9EJeosiOZj4BErOeFutRjmEsjwBoUC56o+gCtBHlyBHyqg=3D?= X-IPAS-Result: =?us-ascii?q?A2HYBABGxjRY/wHyM5BdHAEBBAEBCgEBGAEFAQsBgw0BAQE?= =?us-ascii?q?BAR+BWbR+hkUmiB5TAQEBAQEBAQECAQJfKIIzGoIcAgQBAiQTFCAOAwkBARcpC?= =?us-ascii?q?AgDAS0VEQ4LBRgEiEwEAbFlPSoCg2iHPwwBJIY+iHURAWiFFQEEmk6Bdo58iie?= =?us-ascii?q?GEEmRKVVeFT2DKhyBXnGFXoIuAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 22 Nov 2016 22:28:11 +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 uAMMSBCJ011591; Tue, 22 Nov 2016 17:28:11 -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 uAMMONQE031701 for ; Tue, 22 Nov 2016 17:24:23 -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 uAMMOHjv010064 for ; Tue, 22 Nov 2016 17:24:23 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1DFAAAxxDRYhyIeaIFdHQEFAQsBgzgBAQEBAYF4tH6COoQsiCNTAQIBAQEBAQITAQEBCgsJCR2FGQYnYlFXGYhtBAGxYj2EFIdvhj6Jb4UVBZpOgXaOfJA3SZEpgUiDZxyBXnGIDAEBAQ X-IPAS-Result: A1DFAAAxxDRYhyIeaIFdHQEFAQsBgzgBAQEBAYF4tH6COoQsiCNTAQIBAQEBAQITAQEBCgsJCR2FGQYnYlFXGYhtBAGxYj2EFIdvhj6Jb4UVBZpOgXaOfJA3SZEpgUiDZxyBXnGIDAEBAQ X-IronPort-AV: E=Sophos;i="5.31,682,1473134400"; d="scan'208";a="5839396" 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; 22 Nov 2016 17:24:23 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3Am/Dp2x/4zBMY+v9uRHKM819IXTAuvvDOBiVQ1KB4?= =?us-ascii?q?2ukcTK2v8tzYMVDF4r011RmSDN6dsa8P0reJ+4nbGkU4qa6bt34DdJEeHzQksu?= =?us-ascii?q?4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1?= =?us-ascii?q?Ov71GonPhMiryuy+4ZPebgFGiTanf79/LBq6oRjRu8QUnIBvNrs/xhzVr3VSZu?= =?us-ascii?q?9Y33loJVWdnxb94se/4ptu+DlOtvwi6sBNT7z0c7w3QrJEAjsmNXs15NDwuhnY?= =?us-ascii?q?UQSP/HocXX4InRdOHgPI8Qv1Xpb1siv9q+p9xCyXNtD4QLwoRTiv6bpgRRn1gy?= =?us-ascii?q?kFKjE56nnahMxugqxGrhyvpBtxzIzaYIyOKPZyYrnQcc8ASGZdQspcUTFKDIOm?= =?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+nobbvmqIKHN4Jsiw7wMLwjmsmwDOU3KAQOWHKb+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?A0F8AQAfxTRYhyIeaIFdHQEFAQsBGAEFA?= =?us-ascii?q?QsBgw0BAQEBAYF4tH6COoQsiCNTAQEBAQEBAQECAQIQAQEBCgsJCR0wgjMYgh4?= =?us-ascii?q?GJ2JRVxmIbQQBsWg9hBSHcIY+iW+FFQWaToF2jnyQN0mRKYFIg2ccgV5xiAwBA?= =?us-ascii?q?QE?= X-IPAS-Result: =?us-ascii?q?A0F8AQAfxTRYhyIeaIFdHQEFAQsBGAEFAQsBgw0BAQEBAYF?= =?us-ascii?q?4tH6COoQsiCNTAQEBAQEBAQECAQIQAQEBCgsJCR0wgjMYgh4GJ2JRVxmIbQQBs?= =?us-ascii?q?Wg9hBSHcIY+iW+FFQWaToF2jnyQN0mRKYFIg2ccgV5xiAwBAQE?= X-IronPort-AV: E=Sophos;i="5.31,682,1473120000"; d="scan'208";a="1234208" Received: from mx1.polytechnique.org ([129.104.30.34]) by emsm-gh1-uea10.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Nov 2016 22:24:21 +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 634CA564822 for ; Tue, 22 Nov 2016 23:24:21 +0100 (CET) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 4/5] libsepol: make scope_index_destroy() more robust Date: Tue, 22 Nov 2016 23:23:41 +0100 Message-Id: <20161122222342.16771-4-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161122222342.16771-1-nicolas.iooss@m4x.org> References: <20161122222342.16771-1-nicolas.iooss@m4x.org> X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Nov 22 23:24:21 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 scope_index_read() fails while attempting to allocate memory for scope_index->class_perms_map, scope_index_destroy() gets called with scope->class_perms_len != 0 and scope->class_perms_map == NULL. This triggers the following segmentation fault (in semodule_package): Program received signal SIGSEGV, Segmentation fault. ebitmap_destroy (e=0x10) at ebitmap.c:362 362 n = e->node; => 0x00007ffff79ff7f6 : 48 8b 3f mov (%rdi),%rdi (gdb) bt #0 ebitmap_destroy (e=0x10) at ebitmap.c:362 #1 0x00007ffff79e2c37 in scope_index_destroy (scope=0x608860) at avrule_block.c:87 #2 avrule_decl_destroy (x=0x608830) at avrule_block.c:103 #3 0x00007ffff7aae99c in avrule_block_read (fp=0x605090, num_scope_syms=8, block=0x6054e8, p=0x605360) at policydb.c:3598 #4 policydb_read (p=0x605360, fp=fp@entry=0x605090, verbose=verbose@entry=0) at policydb.c:3946 #5 0x00007ffff7ab4ab4 in sepol_policydb_read (p=, pf=pf@entry=0x605090) at policydb_public.c:174 #6 0x0000000000401d33 in main (argc=, argv=0x7fffffffdc88) at semodule_package.c:220 (gdb) f 1 (gdb) p *scope $1 = {scope = {{node = 0x0, highbit = 0}, {node = 0x0, highbit = 0}, {node = 0x0, highbit = 0}, {node = 0x0, highbit = 0}, {node = 0x0, highbit = 0}, {node = 0x0, highbit = 0}, {node = 0x0, highbit = 0}, {node = 0x0, highbit = 0}}, class_perms_map = 0x0, class_perms_len = 4294934272} Signed-off-by: Nicolas Iooss --- libsepol/src/avrule_block.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libsepol/src/avrule_block.c b/libsepol/src/avrule_block.c index 84cfaf8c8201..224e9994110a 100644 --- a/libsepol/src/avrule_block.c +++ b/libsepol/src/avrule_block.c @@ -83,8 +83,10 @@ static void scope_index_destroy(scope_index_t * scope) for (i = 0; i < SYM_NUM; i++) { ebitmap_destroy(scope->scope + i); } - for (i = 0; i < scope->class_perms_len; i++) { - ebitmap_destroy(scope->class_perms_map + i); + if (scope->class_perms_map) { + for (i = 0; i < scope->class_perms_len; i++) { + ebitmap_destroy(scope->class_perms_map + i); + } } free(scope->class_perms_map); }