From patchwork Tue Nov 22 22:23:39 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9442281 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 6548F600BA for ; Tue, 22 Nov 2016 22:26:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 570661FF10 for ; Tue, 22 Nov 2016 22:26:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 47B0320747; Tue, 22 Nov 2016 22:26:50 +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 64E2F1FF10 for ; Tue, 22 Nov 2016 22:26:49 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,682,1473120000"; d="scan'208";a="1234307" IronPort-PHdr: =?us-ascii?q?9a23=3AW0oHkRU4EUlBzsmh1ua+UgqJEbLV8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYYheBvKdThVPEFb/W9+hDw7KP9fuxAipavN3Y7S9KWacPfidNsd?= =?us-ascii?q?8RkQ0kDZzNImzAB9muURYHGt9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVv?= =?us-ascii?q?O+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oIhi7qQvcutMIjYZiJao91xvEr3lVcO?= =?us-ascii?q?lK2G1kIk6ekQzh7cmq5p5j9CpQu/Ml98FeVKjxYro1Q79FAjk4Km45/MLkuwXN?= =?us-ascii?q?QguJ/XscT34ZkgFUDAjf7RH1RYn+vy3nvedgwiaaPMn2TbcpWTS+6qpgVRHlhD?= =?us-ascii?q?sbOzM/7WrYhNZwjKZGqxy/oRJxzZPfbIWMOPZjYq/ReNUXTndDUMlMTSxMGoOy?= =?us-ascii?q?YZUSAeQPPuhWqIvyp1UWrRa8GAWhCuzgxSNHiHDoxq03yPghHAPc0QA8Bd8CrG?= =?us-ascii?q?rYodPoP6kSS+C1y6zIwC3bYfNXxTj974zIfQo6ofqRXrxwds3RyVI0FwjYiViQ?= =?us-ascii?q?r43lMC+S1uQJqWeb9PBsVeOoi24gsAFxuSOixsIjh4jGnI4VzUrE9SpgzYszON?= =?us-ascii?q?a2S1Z7bMa5HJZfuCyWLYt7Tt44T212tys21KcKtYOjcCUJ1Zgr3R/SZv2df4SV?= =?us-ascii?q?/B7vSPydLSlkiH9nfr+0mgy8/lK6yuLmU8m5yFNKri1YndbSrn0NzBnT6tSfSv?= =?us-ascii?q?t640ehxS6D1wDN5eFAJkA5jbbbJIQ7wr4xi5oTql7PHjP2mUrqjK+WcV8o+u60?= =?us-ascii?q?5OT8frrqvJqcN45wig3mM6QunNKwAfggPwQTUGWW9v6w2b3+8UHjXrlHgeM6nr?= =?us-ascii?q?PEvJzCIMQUvK+5Awtb0oY57Ba/Ci+r0M8GknkDLVJFfg+HjofwN17VJ/D4EPG/?= =?us-ascii?q?jEiynzdw3P3GIr3gDYnNLnjEirvhe6195FRGxAo8ytBf+YpYCqsdL/LrRk/xqN?= =?us-ascii?q?vYAwciPAOvxOrnDNR91pgCWWKUGKOZK73dvkOS6uI0PeaMYI4VuDDgK/kq/PPh?= =?us-ascii?q?kX84mUUAfamyx5cWZmq3Huh9I0WeZ3rgmNABEX0FvgAmVuzllEWCUSJPZ3a1R6?= =?us-ascii?q?8z+Ck7B5i8DYfCXYCgm6SB0z2hHp1XfWBGElSMHm30eIqaQfsMbziSIsB5mDwe?= =?us-ascii?q?SbehU5Mh1Q2ptALixbtnL+7U+igGupL5z9V16fPcmgw19TxuFcudy3uNT2Z2nm?= =?us-ascii?q?wWWzA2wLpzoUtnyleMyaJ4meBXFcRP5/NVVQc3LZDcz/ZgBND0Rg3Bf8yJRU2j?= =?us-ascii?q?QtW+ADE9V8kxwtEVY0pnHNWilB/D1TKwA7AJj7yLGIA08qXE0njyPcl9yHHG1L?= =?us-ascii?q?Q6glklWMRPNmqmhrNl+wjUHY7JnF2Tl7y2eqQEwC7N6GCDwHKUs05FSg5wULvK?= =?us-ascii?q?XWoEa0TMsdv541nOT7i0CbQoKgFB09KNKrNWat31ilVLXOvsN87aY22vgGewGR?= =?us-ascii?q?aJxrSXYYrxZ2od3TvSCE4YkwAS53mKLw4+CTm9o2jGFjxhCUrvY1/w8el5sH67?= =?us-ascii?q?TlE7zwWOb01mzLe1/gMVheCbS/MWxL0IoiAhqy97HFylxdLZF8KApxZ9fKVbed?= =?us-ascii?q?49+1lH1XjetwxmIpytNLtihlgZcwV5ukPhzRN3Bp9Gkcc0sHMg1BByJr6A0FNd?= =?us-ascii?q?azOY2oj9O7PNJWn24BCgdbTW2krF3daI5KgP8u83q0jmvA2zEUoi6Xpn2cFP03?= =?us-ascii?q?SA/pXKEBYSUZXpX0Yr6hd1urDabTM5547PyXJsNqy0vSPY1NIyGOsp0BCgcMlD?= =?us-ascii?q?MKmcDg/9D9UaB9SyKOwtg1WpaBMEPORW9KEqJMOrbOGJ17CxPOZnhj6min5H4I?= =?us-ascii?q?9l2EKW6yV8UvLI34oCw/yAwwSITSv8g02/vcD5loFJfi0dHmqlxij+GI5eeLdy?= =?us-ascii?q?cZwNCWiwP8293s9+iIL1W35E6F6jAEsL2NGoeRWOc1z92hdQ2V4Lrnynniu4yT?= =?us-ascii?q?N0niotrqqe2izB2f7idB0dNm5MXmligk/mIZKogNACQEiocw8pmQOh5Ub73Khb?= =?us-ascii?q?uL1zL3LNTkdMfij2KXxiU6Sru7qZe85P6ZUosSRLX+Sne1yaTKDyowcC2SP5A2?= =?us-ascii?q?Re3Cw7dy2tupjhhRx6j2adLHJto3rDZc5wwhne6cfHRf5MwjUGXzN0iT7NBliz?= =?us-ascii?q?J9Op58mbl4/fsuCiUGKsToVTfjP2zYOErie0/3dmDga4n/C3ht3nFg463DT+19?= =?us-ascii?q?V2UyXIqwrzbpPt16ukLeJtZlNoC0Pk68pmBoF+lZM9hJQU2XQDmJqV+2EKkXnt?= =?us-ascii?q?PtVf3aLxcmANSSQNw9HL/AjvwFdjIW6Rx4LlSnWdxdNsZ9qkbWMQwSIw9MNKB7?= =?us-ascii?q?mS7Lxfmyt6vEa4oRjWYfhnkTcX0eEu52ICg+EVpAotyT2QAqgIEklFOSzjiQyI?= =?us-ascii?q?4Mq4rKVLemmva6O91Fdlnd+/FrGCuRtQWG3+epc/By9/8ttwMFzL0H3p5YHrZs?= =?us-ascii?q?PcbdQNuR2Iix3AlfRaKIotlvoWgipqIXz9vXs4xOMgkxxu24y1vIidJ2Vr4q25?= =?us-ascii?q?HgZSNifpaMML5jHtkaFek96O34+1A5VhHi4GU4fpTfK0EDMerPrnOByIEDEmrX?= =?us-ascii?q?ebA7XfFxeF6Eh6t3LPD4yrN3aPKXkazdRiQAeSKVdagAATUjU6kIA2Fhy2xMzh?= =?us-ascii?q?d0d54y4e6kT+qhRS1uJiLwP/XXvHpAe0djc0T4CSLBRM4QFE+0fVNsme4/l9Hy?= =?us-ascii?q?5G45KhqxaNJXaDZwRSCmEJWFKLCEz/PrW04tnA6eeYDPKkL/TSebWOtfBeV/CQ?= =?us-ascii?q?yJKg0otp4yyMN8WXPnl+CP02wUxDUm5lG8TChzoAUTQXmDzXY86duhi85jV9rt?= =?us-ascii?q?qj//TzRALv+YyPBqNPPtVp4R+7mrqMN+iKiypjLjZYzJwMz2fSyLcDxF4Slz1u?= =?us-ascii?q?dz61HLQaqCHCUbndmqBSDx8UcS9zMtVH774k1AlXJcHbks/11qJ/jvMtEVdJT1?= =?us-ascii?q?LgltusZcMQJ2G9M1PGCV2RO7uaID3H2cb3YbmzSbdIluVbqwWwuSqHE0/kJjmD?= =?us-ascii?q?kSPpWAq3MeFUlyybMh1euJumchZxB2jjTdTmZQe9MNBrjD0527k0imnNNW4GPj?= =?us-ascii?q?h2a1lNoaGI7SNEnvV/HHRM4Wd+LeaagSmZ4PPYJYwIsfZwGSR7jeFa4Gkgy7RP?= =?us-ascii?q?9i1EQOF1mC3Iod50ul2mju6PyjlnURpJsDpLgpyEvVl6M6XD6pZAQWrE/A4K7W?= =?us-ascii?q?iIEBsKptRlCtrpu61L19fAirn8KDZY/NLS58ccANLUKM2fOno7LRXpACLUDBcC?= =?us-ascii?q?TTOzL27fiFZSkO+M+XCOqZg6sobjmJwLSrBBVVw1EugVCkNqHdAYJ5d3RDwkm6?= =?us-ascii?q?aBjMEU/Xq+sAXRRMJCs5DbUfKSBO/jKCyejbhFeRQIx6j3LZ4UNoLl2ExvcUV1?= =?us-ascii?q?nIPPG0XMR99NuTFhYhUyoEpT7Hh0Vncz1F79agOx/H8TEua5nh4qigt+ZuQt8S?= =?us-ascii?q?3j40wsK1rPpSswjFMxlsv/jTCWaj7xI7+6XZtKBCrsq0gxLpT7Th5zbQKsh0Nk?= =?us-ascii?q?MCzJR7FWj7t7aWBkkgncuYBMGf5dV6FEZgEfxe2PbfUyzVtcsjmnxVNA5ebdE5?= =?us-ascii?q?ttihAqfoC2oHJaxw1jbMU4KrfRJKpT01dQgayOvjey1u8vwA4SPUAN/32OeCQQ?= =?us-ascii?q?okwHKqEmJza0/uxr8QGNhiFMeHYNV/U3ufJn7VkyO/6azyLn3b9DMV6+OPCCL6?= =?us-ascii?q?ODumjAic6JTkk21kwWi0lP5aJ23ts7c0qIS0Avy6OcFxoTNcXcNA5VdNBd9H7P?= =?us-ascii?q?fSaJquXA2oh6MJm4FuzySu+OrqkUiFq+HAk1B4QM8tgBHp603UHcKsfnNqAKyR?= =?us-ascii?q?Ms5QTsP1iFA/JJeA+RnDcAucG/w4d93ZNBKTEFHWV9LSK3667MpgA0hPqDXdE2?= =?us-ascii?q?YmoVX4YfKn02X8i6lDJDsHRbEDm7yOQZxxae7zXkvCTfECH8b8Z/ZPeTfR5jFc?= =?us-ascii?q?25+TA486iwlV7b747TJ3/kOtR4u9/O6OQap5CdB/NSU7Z9r1/Wm5NESHyyT27P?= =?us-ascii?q?Ddm1KoDza4k2bd37EHC6UkC/iz8uQMfxO86tIbSSjQHuW4lUrJGR3Co/Os+lCj?= =?us-ascii?q?EeBxBwqvkf5KJ9YA0DZIY7YR7otgklKqO/IQeZ3c+1TGq3LztZUeVfx/2gZ7NL?= =?us-ascii?q?1yoscvO6yHw4Q5E11em460gNRI0RgxHfwvaiaY9eUTTzGnNDegXPozY5mHZ7Nu?= =?us-ascii?q?ooxOcw3g/Iu0EGMz+XbOxpdHBEv9YkCFyIJXV2C3Y3SEGEgorG4g+s2bcS/y1H?= =?us-ascii?q?kNtPyuJFsWLxvpnGbDKiRayns5PVvDQ8bdI+ua1+LZTjIteatJPZhjHQV4ffsg?= =?us-ascii?q?ueXSGgCvVahMZfIDhDQPZSg2EkOdYKuY1b6Uo+Ts0+PaBACLEwprC2bjppFTQS?= =?us-ascii?q?zSkYV4yc3DwCheO826DCmBmJbZosKgAJvpJZj9QBVC52Zz8Rq7W4V4XKjWOETH?= =?us-ascii?q?YEIBsL5wRW+A0AjpNwfvzi4IfQUJBMySRZrO5vXyTXEZlo81/7SmCIjljiVPWu?= =?us-ascii?q?jfCm3QJIwPLryNkbVwZ1CVJByOZOiksoNLZ3JrEKvoHQqD+Iclj1sXnxyOu8Pl?= =?us-ascii?q?ZR19Pbd1n5DIrDumr8Viwc+XIURY9TxnHQD44Skw9jZKYtulpMPJiselzi6Dw8?= =?us-ascii?q?24RpA764WNirxlk/tnYJXSKqE9tHC+x9sVLXRCdqY4u3p5r/IZlSRHFf+IGFoV?= =?us-ascii?q?dDjEptKzK5yYZbK8xV7D8ARiRAoTWcvNu3Sc1Mw8x2AoQNIthhpXjyBrlIOJ+L?= =?us-ascii?q?o305orbv0GPW+yggsFemwzW+A7e4T+Vd/2IEAAUoKWOeqk0hD+Y392fS9VfNsk?= =?us-ascii?q?tq8OhHHLiPil5xoC18HpBICTZFz3elL058THNeqeVVNLzVc9BAQ/k1fRKgIQY+?= =?us-ascii?q?FeMg30CT/kF5hnb5Yy1ztgtG4C/RRQ80WjcJgr31gz0RttmnOSMGS5JPdTghcy?= =?us-ascii?q?DFKweAlCBLoBpfblplV4ofAtlb57ERxZFU8dbaSUawNSEFWwRvNgIi3vpFj0FD?= =?us-ascii?q?tFiXdDvAAgW2bfbPqgN4fcOPo86zNvj5+x1Hioz/uuAi66oDX2GmmRGqQd3Gr4?= =?us-ascii?q?/8scOFtkWQe6fiKOC8YGHOQybSghyqgrckFZbK9TDJMAVHM5l61WYkYZ/5BG7J?= =?us-ascii?q?OhRJObkWKFdFWqBhd9pGuPxaaNF5d6oT/69iGA6HTAv1GIOztPlGMkrTRTPGIi?= =?us-ascii?q?qa/OywvZ7f4L7AReXufcGD23HHQ6drMZhg8jn7B63m0YlA9Urqwv1t7F91SUDa?= =?us-ascii?q?MyCdq9TsPhkL69e/eUvipJIpASjbAJN3kHrz2E5MadYYQyq3/5sG0p9Z7mj/Sf?= =?us-ascii?q?5g2EjprOJS76Vk6ZUw471x0ce0PrvSJu5Hvk97GRWUHQJq9og3AGdjWW9RZPMR?= =?us-ascii?q?KO3LcqQdl8zurPr3F6MP4h2P5+NZccfHJ13GmsSnFjGcUwJLkxkcpjMBMwuc0+?= =?us-ascii?q?KFm7VuRsa7pOj53UYt7EaiLhIcy7Bt/4iE8LKSpODLdxvR0aQEWq/yS8P2tLss?= =?us-ascii?q?v0eS6uM4lL4SYGN6eRaqEO4DWc4B3Wfv0bolzToyHM/ZGbLv5uJDXWojnj38g5?= =?us-ascii?q?B9A0kWGvQMELqJ54tehGA4m/fdNtIMbKBPgWOPFQOgEr8eyH6k9yqXL3NjghHV?= =?us-ascii?q?yR3wRnmz7FDupy9iXSTM18vjklZSVrSvB0ddRSypOUFisDOIIQXnqsH6ubgv40?= =?us-ascii?q?EwKWzks8iBlG2/N7NLB8f/PsCTITEopFILi508XtOv2Z0aGdq5JNce7nR+Y+DD?= =?us-ascii?q?5Gy1iCBBor1Ih4zE7sGS4PXXEmGqj7eGpLWV2DBY1n84sEk56tCkLfzO5tuKQ/?= =?us-ascii?q?Gy22YQSSd/tRHBUASuqrzHtVAUJFCE0FvWmIwQIN5Vx3441lvp5OI7WtI86B1e?= =?us-ascii?q?FprcZ/MFvT3zPTz0wVCDY9I4SCaTyD5XHlPvHll+Bqc8xGzxvMXTlXfT4F0kXI?= =?us-ascii?q?9weFL7hRZvFYU3NVot6EQLwioECQUNbQubDLSoCEn+I4sLS1UMaROd3LegYqc3?= =?us-ascii?q?x0pzwrGx6+DPcexwHa0NNuxSjgSWhlhUBooWsbECQLJ7Y1Jd8arXqRbnC4jgQf?= =?us-ascii?q?fmkWE9NfKrTcBd6sAZr2Et4hq+RxW67ZdD7rAbiIyWea5AZZjMvc984Flh5TET?= =?us-ascii?q?aCNBmh5/gA2lUeoEvuDs/sDbsIa06uapTKstXP8Y9wYuCGRxkZTwm0suocrN2O?= =?us-ascii?q?dCUILVhprw8BtXL36MponazwF2KfASJIKzYLZg63IHKjAcJ3IPONqbcPw87DFt?= =?us-ascii?q?MTrN/VxCA8UMZdwCMMrLhw9UllXjWKtP+crDBl+YF4Bzetgp72v20j8664czX/?= =?us-ascii?q?376DCoOZDQ8U1CM+lEjCV2m9LIvPIVzubKCCgL/XmZbAB4zTiDy5mWBff/5+eM?= =?us-ascii?q?yNDIV1MeBCE2ToNdKSGe9gygW+W6io/mUh6O6s/0mpIxblicRnurnKQKqqxMC/?= =?us-ascii?q?JPij3n3jhCEYD4n+qVvMCw6GRLtl1GHoFz7QfGGKlGJZV0JxD4lsitRkhhCSry?= =?us-ascii?q?Y9nUeQAyuOWKxucN7eJ+N1H9ZYMBIRIL1aj66XxLQQtqUrL2uUyZXe0Jbtt8VP?= =?us-ascii?q?zEtmxV6Z5nK6IXIFidvoLlrjNSp1AwHgAkc6I/rj1VdknPgA1aQb30t6QaigsB?= =?us-ascii?q?S9J5v1FDGX6oMmIk+zXHTbhVjLWWCPEN/TWcVLYOXFt0MiN+WB613JRue6e3kv?= =?us-ascii?q?BHqGxGgzh9rOIs0zN4WBu2oTfsqL4V2TI85LG4sy0MuXNbQeWYjyfIDlJDwPMR?= =?us-ascii?q?jagCD3bi6Fq8YGQMbYbp5LloO97g9Ik77HglZxUsYTEGV/y6Cy7sl6OIHpCPsN?= =?us-ascii?q?VEiR6LucXBcbizLSwIObQm0x7jRn990g/FnBZz62YLRzqt7dA+KIW6I8YlyTKi?= =?us-ascii?q?GXLHe1YU/qNJrMzxuEYETOQqclNh23xv3NWISCMLRczPHXs1jwc/ZGVLdZJM8x?= =?us-ascii?q?kaGLcyjjaPpKlG8RkeYC3IHYS95onQgcDI1GE/TddtxmLWoLeJiY8q0H1hhtN7?= =?us-ascii?q?8y+PuHUUd+zDUM9sA2P+1pleyezgffqttv0ISIp8xLSnTvACLtGp+XGq15VyRk?= =?us-ascii?q?+l2rMeEkK4MO8d3LjbVTyoSWmFWeuWcmiMmC05PlT15RmyIV09cN1KoFMlMuve?= =?us-ascii?q?mp5ckBXsUbFqSSWeq1/byHcuMO0AeAIwpoinZxYGTOgPaOiAPeIu2uExCEMQb3?= =?us-ascii?q?/VGit7E+C2sVqqnIl1JXpg5UH6bP/28gDhNtuSGwULHZTcrpFv5fywXniBNmN4?= =?us-ascii?q?zB1uIEl08P/SF1Yxtu5ca5aRmtzQh9Vn0eEbbPptNCw9usIJmo1984WU192KcR?= =?us-ascii?q?7JxJboOd7VuuSYA+HYz0kyZmFaU78ZbBjp54U7ItE5WKPcHb9DsRQaG6c6XIQr?= =?us-ascii?q?N33t+6FsMANzbgnRaayxgsnrpeKLZZxUqmTU7l0qLyfcvBsDxeKyTQBhaZClmW?= =?us-ascii?q?nyKogqRj1dt91tFgdmHIxXFswbsQWnBYKUlbqgi9+1/EN6p/MKsbTuBf/Xzti5?= =?us-ascii?q?2J9xX5dC70yRIDnRHLVrglhijumqjPfPzJ3xCcL6edwaT+V6Q2/FarrDHoqhMD?= =?us-ascii?q?KOPtzzd1RB876G37JzSg+RazzhX6qaqC2kM+1p4Esjyoxiferc0CIi4qre2Nvz?= =?us-ascii?q?e2FbvDmsoWSONJtF41zAHfbeUA5MSfqZ7GZlGrUabYzw9OgQKtEi2Nyc7BNo7D?= =?us-ascii?q?Re0cuKP7ShrlXS1U1lb57bKlXm2zohU4kQPBu/KVcsgXPeqnnFBXRcL86kKdRi?= =?us-ascii?q?gdqMChzt5lJxmX02ZmNaG2rnX9GROW8B18K5fg2K+xpBD8wfkO6vZU44qqqyRP?= =?us-ascii?q?FzOppbneWqtbMHkctmKi3IS8ZaIyHQI6FsPjVPFuXAvkMlYh0avLgvXIc6e5yO?= =?us-ascii?q?L1gaMEeP0y/yyhHC0ULsfdy2yKmJODoW8mlAz7/d1ThMphK5ueqCj8ziSbDZao?= =?us-ascii?q?v5UOTUMCU7SjGQXS4yHlqx+Ve4p/oEu+KVIWIFrV8IYiKSCQgTpqd0oNjOD2/T?= =?us-ascii?q?n/NsfJkLhPCcRiDxRzd0lK0oBiZErUqMWeYMFRHKb3/9h2pRoA6iKeVP/XLidL?= =?us-ascii?q?KV3bdVW+oKAotMdf2ZXtTYefBCJzsykDUWJvq8dcXGr7klylLIUXcZE67Q+V2R?= =?us-ascii?q?VkGZWeacxzP1UoURpIU0pC4o9cjLni92DqTEJbCfqCCy8oSgliaXpfXeVnUxY0?= =?us-ascii?q?wymO8CAmyBwB5aKGEeCtEVo1rgQqiaaEZJyn0piPhi2xgWeAR8SnduyGFZnO6h?= =?us-ascii?q?Gs1FTl4ZlH2hQP8BbFB3CjMw5kiK4gvpbNwPo8DTWnFe+aUWSYYHKvkn9pXXMr?= =?us-ascii?q?MKwPk1xDJmvDA6syKFAlNGgAKF9rbfEaN/y7BZ+2k34et2XkCOQjPYdGjL0Iym?= =?us-ascii?q?BNxTxS12u3Dry9LUvvxxNLtdv4x5AlAKASRyJt3G+DBOT3z72AW1vxahADuRPi?= =?us-ascii?q?gV4DAVKiwZJa5JyLpgvRLJcMvRwV+BvKIm7k2wAECEDaTn9oZMD5TP1A6/bSBQ?= =?us-ascii?q?ORSsEItt4qJLld0VZao8I4m5BEvaBg2iHkSfoS9ap0uimaiiEccfmjZWqa4rMt?= =?us-ascii?q?y8GtBSAA=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2HWBAAfxTRY/wHyM5BdHAEBBAEBCgEBFwEBBAEBCgEBgw0?= =?us-ascii?q?BAQEBAR+BWbtDJogeUwEBAQEBAQEBAgECXyiCMxqCHAIEAQIkExQgDgMJAQEXK?= =?us-ascii?q?QgIAwEtFREOCwUYBIhMBAGxaD0qAoNoh3CGPoh1EQFohRUFmk6Bdo58iieGEJF?= =?us-ascii?q?yVV4VPYUkcYVegi4BAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 22 Nov 2016 22:26:47 +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 uAMMQkAP010799; Tue, 22 Nov 2016 17:26:46 -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 uAMMOKkl031695 for ; Tue, 22 Nov 2016 17:24:20 -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 uAMMOHjt010064 for ; Tue, 22 Nov 2016 17:24:20 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1C+AAAxxDRYhyIeaIFdHAEBBAEBCgEBgzgBAQEBAYF4tziELIgjUwECAQEBAQECEwEBAQoLCQkdhRkGJ2JRVxmIbQQBsWI9hBSHb4Y+iW+FFQWaToF2jnyQN5FygUiDFQyCQHGIDAEBAQ X-IPAS-Result: A1C+AAAxxDRYhyIeaIFdHAEBBAEBCgEBgzgBAQEBAYF4tziELIgjUwECAQEBAQECEwEBAQoLCQkdhRkGJ2JRVxmIbQQBsWI9hBSHb4Y+iW+FFQWaToF2jnyQN5FygUiDFQyCQHGIDAEBAQ X-IronPort-AV: E=Sophos;i="5.31,682,1473134400"; d="scan'208";a="5839394" 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:20 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3AyhKmqh0zlQySON9xsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?se0fKfad9pjvdHbS+e9qxAeQG96KsLQe1qGP7v+ocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDSwbalsIBi2ogndq8kbjIl/Iast1xXFpWdFdf?= =?us-ascii?q?5Lzm1yP1KTmBj85sa0/JF99ilbpuws+c1dX6jkZqo0VbNXAigoPGAz/83rqALM?= =?us-ascii?q?TRCT6XsGU2UZiQRHDg7Y5xznRJjxsy/6tu1g2CmGOMD9UL45VSi+46ptVRTljj?= =?us-ascii?q?oMOTwk/2HNksF+jLxVrg+vqRJ8xIDbYo+VOeFicq/BZ94WWXBMUtpNWyFHH4iy?= =?us-ascii?q?b5EPD+0EPetAt4f9pkcBrRy6BQa2H+Pk1zxGhnjx3a0hyOQqDAbL3AohH90St3?= =?us-ascii?q?TUqM/6NLwIXeC0y6nIyi7Db+hN1Df454XJfQotofaWXbJ/aMfcz1QkGQDdjliI?= =?us-ascii?q?tIDpITeY2v4Qv2SH4OdsT+yih3I9pwx/rTWj3sQhhpTTio8Uy13I7zh1zJgpKd?= =?us-ascii?q?GiVkJ3fdypHZ1NvC+ALYR2WNktQ2RwtSY61LIGvZm7cTAPyJUo2hLTceSHc4+M?= =?us-ascii?q?4hPjSOaePyt3hHJjeLK+nhay7Favxvf7Vsmu31ZGtitFkt/SuXARzxHf99aLR/?= =?us-ascii?q?9n8ku8xTqC2Brf5+9YLUwum6fWJIYtwrsqmZoStUTDEDX2mELzjKKOa0sq5vWm?= =?us-ascii?q?5/j/b7rpqJ+SKpR0hxn/PaosgsG/BOs1MwcUU2ic4+S826Xu/Uv4QLpWif02lr?= =?us-ascii?q?PWsIvAKcQaoa65BBRV0p045hmkCDemzdIYkmUZI1JeYh6HiofkOl7ULPD/F/e/?= =?us-ascii?q?jEygkC13yPDeIr3hHpLNI2DYkLj/ebZ96khcyBc8zN1E+5JVCq0OIPL0WkPrst?= =?us-ascii?q?zYFQU2Pxa7w+bgFtUunr8ZDHmCBq6fLbP6rU6D5uVpJfKFIoASpmXTMf8gstjv?= =?us-ascii?q?hng9kERVXK6uxoBfPHa5FfNiKl7fYH3rmcwpFDsa+A0kQ7q52xW5TTdPaiPqDO?= =?us-ascii?q?oH7TYhBdf+AA=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0F8AQAfxTRYhyIeaIFdHQEFAQsBGAEFA?= =?us-ascii?q?QsBgw0BAQEBAYF4tziELIgjUwEBAQEBAQEBAgECEAEBAQoLCQkdMIIzGIIeBid?= =?us-ascii?q?iUVcZiG0EAbFoPYQUh3CGPolvhRUFmk6Bdo58kDeRcoFIgxUMgkBxiAwBAQE?= X-IPAS-Result: =?us-ascii?q?A0F8AQAfxTRYhyIeaIFdHQEFAQsBGAEFAQsBgw0BAQEBAYF?= =?us-ascii?q?4tziELIgjUwEBAQEBAQEBAgECEAEBAQoLCQkdMIIzGIIeBidiUVcZiG0EAbFoP?= =?us-ascii?q?YQUh3CGPolvhRUFmk6Bdo58kDeRcoFIgxUMgkBxiAwBAQE?= X-IronPort-AV: E=Sophos;i="5.31,682,1473120000"; d="scan'208";a="1234206" 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:18 +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 2A8FF56481F for ; Tue, 22 Nov 2016 23:24:18 +0100 (CET) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 2/5] libsepol: do not crash when a symbol does not exist Date: Tue, 22 Nov 2016 23:23:39 +0100 Message-Id: <20161122222342.16771-2-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:18 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 reads an invalid policy module where some scopes use required symbols which are not defined, the program crashes with a segmentation fault in required_scopes_to_cil(): Program received signal SIGSEGV, Segmentation fault. required_scopes_to_cil (decl_stack=0x6040b0, block=0x607780, pdb=0x6042e0, indent=0) at module_to_cil.c:3479 3479 for (j = 0; j < scope_datum->decl_ids_len; j++) { => 0x00007ffff7a7b1a8 : 44 8b 58 10 mov 0x10(%rax),%r11d (gdb) bt #0 required_scopes_to_cil (decl_stack=0x6040b0, block=0x607780, pdb=0x6042e0, indent=0) at module_to_cil.c:3479 #1 block_to_cil (pdb=pdb@entry=0x6042e0, block=block@entry=0x607780, stack=stack@entry=0x6040b0, indent=indent@entry=0) at module_to_cil.c:3622 #2 0x00007ffff7a85a18 in global_block_to_cil (stack=0x6040b0, block=0x607780, pdb=0x6042e0) at module_to_cil.c:3738 #3 blocks_to_cil (pdb=0x6042e0) at module_to_cil.c:3764 #4 sepol_module_policydb_to_cil (fp=fp@entry=0x7ffff79d05e0 <_IO_2_1_stdout_>, pdb=0x6042e0, linked=linked@entry=0) at module_to_cil.c:4051 #5 0x00007ffff7a86b55 in sepol_module_package_to_cil (fp=fp@entry=0x7ffff79d05e0 <_IO_2_1_stdout_>, mod_pkg=0x604280) at module_to_cil.c:4080 #6 0x0000000000401acc in main (argc=, argv=) at pp.c:150 (gdb) p scope_datum $1 = (struct scope_datum *) 0x0 Detect such errors and exit with an error return value. Signed-off-by: Nicolas Iooss --- libsepol/src/module_to_cil.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libsepol/src/module_to_cil.c b/libsepol/src/module_to_cil.c index ab3ac03d7895..1c2c51c614ab 100644 --- a/libsepol/src/module_to_cil.c +++ b/libsepol/src/module_to_cil.c @@ -3469,6 +3469,10 @@ static int required_scopes_to_cil(int indent, struct policydb *pdb, struct avrul key = pdb->sym_val_to_name[sym][i]; scope_datum = hashtab_search(pdb->scope[sym].table, key); + if (scope_datum == NULL) { + rc = -1; + goto exit; + } for (j = 0; j < scope_datum->decl_ids_len; j++) { if (scope_datum->decl_ids[j] == decl->decl_id) { break;