From patchwork Mon Dec 26 21:18:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9488821 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 1691560860 for ; Mon, 26 Dec 2016 21:19:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 06DF91FF60 for ; Mon, 26 Dec 2016 21:19:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EFE211FFBD; Mon, 26 Dec 2016 21:19:36 +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 4A44B1FF60 for ; Mon, 26 Dec 2016 21:19:36 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.33,413,1477958400"; d="scan'208";a="1846730" IronPort-PHdr: =?us-ascii?q?9a23=3Az15CuRSzxaPZ929P8dNE3NvMwNpsv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa68ZxCAt8tkgFKBZ4jH8fUM07OQ6PG7Hz1aqs/d7zgrS99lb1c9k8?= =?us-ascii?q?IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBo?= =?us-ascii?q?KevrB4Xck9q41/yo+53Ufg5EmCexbal8IRiyowjdrM0bjZVtJqosxRbEoGZDdv?= =?us-ascii?q?hLy29vOV+dhQv36N2q/J5k/SRQuvYh+NBFXK7nYak2TqFWASo/PWwt68LlqRfM?= =?us-ascii?q?TQ2U5nsBSWoWiQZHAxLE7B7hQJj8tDbxu/dn1ymbOc32Sq00WSin4qx2RhLklD?= =?us-ascii?q?sLOjgk+27ZkMxwiL9QrgynqRJx3oXYZJiZOOdicq/Ye94RWGhPUdtLVyFZAo2y?= =?us-ascii?q?cZYBAeQCM+hfrYb9qUMOoBmjCQSiC+zg1jBGiWHt3aAhz+QsExvL0BA6Et4Srn?= =?us-ascii?q?jZqsj+OqcIUeCyyanF1S3Nb/JK1jf67IjHaAshquyPU7J3dsrR0lIvHB7Cg1WW?= =?us-ascii?q?qIzqIzSV1uAXvGiA9eZgVOWvi2k8qwFquTWvw8ghi4bTioIS0FDE+jx0zYAoLt?= =?us-ascii?q?O7UE52ecOoHZRfui2AN4Z6X9kuT39ntSok0LEKpIa3cSYXxJg9xRPTceGLfouH?= =?us-ascii?q?7x75WuucLjF1j29/dr2lnRa9602gx/X5VsmzzVlFsDJIksLJtnARzxzT7dWHSu?= =?us-ascii?q?dl8kehxzmP0wfT5/lYIU8uj6rbKoMhwqUqmpoPsUXMAi/2mELsgK+Qakok4fSn?= =?us-ascii?q?5/7iYrXnop+QL450igfgPaQygsGzHOs1PwcUU2Wb5OiwzqPv8ELnTLlQk/E6iq?= =?us-ascii?q?zZv4rbJcQfqK65GQhV0oM75hakETim1NUYnX8aLFNKYR6IlI/pO0zIIP/kE/i/?= =?us-ascii?q?mE+hkCtrxv/aPr3hBY/BLn7YkLj7Z7p95ElcyBQrwdBF+51UEq0BIO70WkLput?= =?us-ascii?q?3YDxs5MwmqzOb9E9h92J0RVn+IAq+DKqzSqUWI5uUtI+aSeIAVpCzxK/8/5/7h?= =?us-ascii?q?lXU5g0MSfbG13ZsLb3C1BulpLFmcYXrrhNcBDXoGsxEgTOP0kl2CUD9SZ3G0X6?= =?us-ascii?q?4m4DE0Fp6mB5/ZRo+xmLyBwDu7HppOa29bFlCDC23oep6YVPcLbSKdPtVukicY?= =?us-ascii?q?VbS7TY8uyw2uvhfgy7V7NurU5jEYtZX72dl15uzTkhcy+CdxD8SZym2NTmd0kn?= =?us-ascii?q?kORzAsxqB/ok19ykmd3qRihfxXC8BT7etTUggmLZ7c0/B6C9fqVw3fZteGUkym?= =?us-ascii?q?QtS9ATwqVtI+2cUOY0dmG9W6ihDMxTalDKEPm7yMHpw0/brW32LtKMZl13bGyK?= =?us-ascii?q?4hgkEoQstVL2KmgLJw9wnIB4PSlkWZj6eqeb0H3C/D72eP122OvFtXUARoS6XK?= =?us-ascii?q?QWgfZlfKrdT+/k7CTKWhCbcgMgtc0sOCKbFFat7ujVVbXvvjP87eY22pkWeqGR?= =?us-ascii?q?mI3q+MbJbte2gFxirSFVIEkwEN8nacLgUxHDuuo2fEADxpD1LvbFvm8fNip3Oj?= =?us-ascii?q?Uk800waKYlVh17Wr/h4VgfucRugX3rIZpCchrDB0E0yn09LREdqAqBJrfL9Abt?= =?us-ascii?q?Ml/FdHyWXZuhRmPpyuNaBigUUecxhsskP10RV3DYtBkc0wo3Ms1gZyL7yX0E9Z?= =?us-ascii?q?fTOCwZ/wIqHXKnX1/B23Za/ZwFXe0MqI9acV8/Q1sEvjsx+zFkU57nVn1sNZ03?= =?us-ascii?q?yG5pXFFAASS47+Ul4r9xhmoLHXejU96J7J2n1tK6a0tiTP1M4uBOsg1hmvZcxf?= =?us-ascii?q?ML+eGA/0DcIaG9CkKPY2lFixchIEIOdS+bYyP8Onc/uG3LCkPP17kT28k2tH+o?= =?us-ascii?q?d93liL9ypmRe7Cx4wFzO2A3gubSzf8i0+sst72mY9YeTESGXC/xTL4C45RYa1y?= =?us-ascii?q?e4kLBHyqI822wNVxnYTtW3lC+F6kHVMG19ejeQCOYFzlwQ1QyUMXrGSjmSu51D?= =?us-ascii?q?x0jyglrrGB0yzKwuTicgcHO2FQSWl5lVfsII60j9EGU0izdQQpkgWq5VrizahB?= =?us-ascii?q?uKt/N3XTQVtPfyXuNWFiVa+wtr6cbM5V9JwotitWXf+nYVCHVrH9uAEW0yT5H2?= =?us-ascii?q?tR3Do7bS2luo3lnxxmj2KQNG5zo2DEecF03xvQ/sbQSuVW3joCWCl4jj/XC0O5?= =?us-ascii?q?P9W1+9WUkIvMvvq4V22/Sp1ZaTPrwp+YtCun+W1qBgWyn/W3mtH+Dwc61zT218?= =?us-ascii?q?d0WiXMqBbzfJPr2768Me15YkliHEX85NZiGoFijoswg4kd2XsEiZWT5noKimTz?= =?us-ascii?q?Pstd2aLlanoCWyILz8TS4Aj/101pNmiJyJ7hVnWB3sthYMG3Yn0Q2i0g9M1KFq?= =?us-ascii?q?GU46FEnSdvpFq3sx7Ra+BnnjgB0fsu9GIag+YRtQo11CqdH7QSEFJEMiztixSJ?= =?us-ascii?q?78myrKtNa2apa7Sw01B+nd+5BrGYvg5cQGr5eoslHSJo9MVwLU/D3Wb86oHhd9?= =?us-ascii?q?jcd9QTuQOIkx3YlehaNIoxluYWhSpgIW/9pWcqy/M/jRNwxZG1po6HK3lz86Kj?= =?us-ascii?q?GRNYKyb1aN0J+jH2l6pehcGW3521Hpp9BDoLUpzoTeinED0Mr/jnMRiBECEkoH?= =?us-ascii?q?eBBbXfBROf6Fthr3/XHZCkLXeXJGUezdVnXxSdKlJQjx0TXDUghJE5DhqqxMvj?= =?us-ascii?q?cEhn+j8R+kT0qhxWyuJnLxP/SHvQpB+0ajcoT5iSNB9W4RtG50fRL8Oe8v5zED?= =?us-ascii?q?tC8ZC6qgyCNHCbZx9UAm4TQkyLGUrvPr+w6tnc6+KYHPaxL+PSYbWSruxTT+2I?= =?us-ascii?q?yYih04d8+jaDLMGPPn5iDvAgwEVMQXV5F97emzUVRCwdjzjNYNKDpBeg5i13qd?= =?us-ascii?q?iy8PLxWA31/YuPE6BfMdtu+xCsmqeDK+CQhCd/KTlC0JMD2X7Ix6Ib3FIIjCFu?= =?us-ascii?q?bTatG6watSHRVKLQhrNXDxkDZiNrKsRH9Lwz3g9MOc7HjdP4zb94geArBFhbT1?= =?us-ascii?q?DhndupZcMSKWGnKFzHHFqLNKiBJTDT3s73er2zRqdfjOVOrRKwpy2WE1T5MTSA?= =?us-ascii?q?ijnpTQqgPftIjCGGOhxRopu9fg9xCWjkT9Lnahq7PMVxjTIo3b0+nmnKOnIEMT?= =?us-ascii?q?hgb0NNqaWd7ThCjfVhAWNB4WRqLfKfliaC9ebYNIwZsfR1DSRvje5a5mo1y6dN?= =?us-ascii?q?5iFeWPN1gDfSrsJpo1y+ieaPyzVnUB1IqjtQmY2Eo15tOaTD+ZlGQ3rE+wgN7W?= =?us-ascii?q?qIARQQu9RlEsHvu7xXytXXjq3zJy1N88zK8sYHAMjUMNyIMHwkMRXzGT7UCBAK?= =?us-ascii?q?TTmkNG3FgExdiv6S/GWPrpcmspjshIYOSrhDWVwpEfMaD15pHMYFIJZ2QDwkl6?= =?us-ascii?q?WUjNQP5XWgrxncX9lVvpfCVv2OG/rvMyqZgaNCZxQW3bPyNZ4TOZHj20x+dll6?= =?us-ascii?q?m5zHG0nQXNBJvCJsdQo0oEJD8HhwUGIzx17lagOq4H8WC/G4hBg2hRViYe417j?= =?us-ascii?q?fj/083JkbWpCs3iEQxmNPlgSyPfz71MqiwWJ9ZCzbut0kxKZ77RB51YhO0nUxh?= =?us-ascii?q?LjjERrZRgKBndWFkkgPcvoFPGfFER61efBAQ3e2XZ+kv0VlErCWo21VI5e/eBJ?= =?us-ascii?q?thkwsqaoKsoGhG2wJ4b941JLbcJKxXwVhMnqiOpDOn1vgtwA8CIEYA6HmSdzAT?= =?us-ascii?q?uEMWLLYmPTan/ux35AOZmjtDYnUDV/0kovJy7EMyJeSBwzjm07FdNkC7L/afIL?= =?us-ascii?q?+Bu2jcic6IRUs92V4Pl0lD+7h5zNksc06VV0001rSeCQ4JNc3YJQFSdcpS+2DZ?= =?us-ascii?q?fTySvuXV3ZJ1I4K9G/j1QuCUqqYUg1+rHB0yEosW9MQBBJ6s0U/DLcj5MLEF1A?= =?us-ascii?q?8t5AX3JFSFFvhJfgyEkCsfqcGl0JB3xZVdJi0aAWhlPyW3/KjYqRIxgPWZWtc2?= =?us-ascii?q?fnAaXpAfO30sRMK6njRVv3NaDDm4yugZ0hSN7yfgpiTMCznxd95jZPCOZRxyDt?= =?us-ascii?q?G3+DI//rO5iV7R75XSPWb6Nc5tutXX8+MVu46HC+9ITbl6q0rcgJdXR3irU27J?= =?us-ascii?q?DN60KIP9ZJUrbdzxFnm1SEe/iy4vQ8f3ItmtMrCCgRv0SoZMrImbwDcjONe+Fj?= =?us-ascii?q?EEGxZ/vecD5L58ZQAYbJo7ZgbouBgkO6y5PgiYzs2kQ3yxJjtOU/lf0eK6aqRL?= =?us-ascii?q?zyota++6z2cgTpE6zuSs7EENRZELgQvFyvq5YYlRTzTzEGRHewrTvSo5i3RhNu?= =?us-ascii?q?Eqz+glxBPIsEUTPC6Te+xsaG1EudY8BVWILnhtEWU4RkWTjYza7g6iwrAe5S1d?= =?us-ascii?q?kMhI0eddqnjxooffYC6wWKyssZjaqDQvbd49rqJrLIPjPNWJtInFnjPFVpnRsh?= =?us-ascii?q?eJUCmgF/pVgtJQOj5XQOFUmWE5PswLoYVB6VcwVsc6I7xAFqwsq6u3ZjV6FiES?= =?us-ascii?q?zDUWV4Wa0DwFmOe81KPQlg2Mf5Q6LBwErJJCj8MHUy5wYyMRuK+jV4LSl2+fUm?= =?us-ascii?q?YFORod4x5Q6QwHjYJ/Yufl4I/UQ5BW0D5Wv+h4Ui3VGZl071H7UH2ZgUDkSPW9?= =?us-ascii?q?lOykxR5dzPD23dYHQxNwFU9dx+JSlkspNr53MbUQsZDWvT+Ib0/6u3jtyOS+Ll?= =?us-ascii?q?lL1cLUb0H4DJbCtWfkSC0T42cURYhUx3zECZQSiRB2aLg1q1VIIYCmfEn+5zgl?= =?us-ascii?q?x4RmH7m4Sc6ryEw/rXYDXSuqFcROC/1+ulLNRDJle4yrqIniO5hKTG5c4oGSq1?= =?us-ascii?q?dYkEVoMi6205lcJtpM4jESQjdAvy+RvNyoSM1MwcV2FYMDIs9ju3fhH6NJIIKe?= =?us-ascii?q?o2crurzp0HPZ+CsxsFa7xDWyB6+3VPhV/2sAFQU1P26esFUgD/Mw8mfO9VDAql?= =?us-ascii?q?90//1BCbiJkUV8uzd9HpdABzZPyXClL0p8THhAs+VGNqvVadZQQ/8sah+zIxY+?= =?us-ascii?q?D+Ip31SV/UFomnf0ezBytgxf+y3GQwk4SSwVjaz3lT0YtM6nJScQS4hUYjU5cy?= =?us-ascii?q?fFNwWblDhXvBlFcUFlQZQZDcte9r4Gw4RU5tLCRlioKS4bRhxuLAU40eBQlURb?= =?us-ascii?q?qkWXZTjdDRa0dfbIqhB3f8CRo9CyIfvk4ghHkZ3osPok96odWnKqgwutTs7Cr4?= =?us-ascii?q?XkrN2FqlOOdLvkM+27eXLOVzbMggysibomEpXH8TPePxZcK5l/1XUre4PhCXLR?= =?us-ascii?q?MRRAOa0bO1JRVbpmZtVevuBae8hkdb4T+aBzGx2HRgngGJC0oflCKVbTWyrRIz?= =?us-ascii?q?ud/ey4vI3c86bRSe7+acyQ33zHWb54Po9m6TnnHLfnyZde+lHq2vh360x6VUPL?= =?us-ascii?q?MzuGrNT8PAME+Netdk3+vp0zBzzWBI18kH33xkFPb8AXWTGl8IwEyJNF73b9Uf?= =?us-ascii?q?540lLtv+JM6rZp8pQ347R1yceuP6jSN/VasUhjAheKGgVm7JItAHJwR2pJeO8e?= =?us-ascii?q?NO/RfbgFjcDps+34CqoX5weO9uNEb9vIPVvNms6lCjGTURZEhhsOqSYGLguA0P?= =?us-ascii?q?6Ig610Rty/pej+wUIt50KxLgAdwbBo+IeE/raIpO7LYBvQ17cEXLPqStn0rrQ2?= =?us-ascii?q?tEOY/eckm6IWemxpfw2nF/AQVswHyWfmw6Aq1yUsHN7dEL/75P5MTXQ5ninnm5?= =?us-ascii?q?xnGVUZBO8UF6KR/YtChmc4h/DZNtoOf6BEnmaCDh+kErkHyXKx6iuXJmdlggvU?= =?us-ascii?q?3BHrXWOz9kL2ojNkQSvR1dfsjFBZVr6tBUddRyCpI1N3sCuTPAr0s9r6oaI17E?= =?us-ascii?q?AqPWzjsNKCjnChNKlWH834I9ycOjI0qUkSjJA+Sd2jw4cbGcCyIN0J6nFxcuPe?= =?us-ascii?q?63+3ky9Gu6pIm5DR4sWL9fXMAXmhj6qapq6WxD9Ey3g3o1c/6syhNv7U/dGKRe?= =?us-ascii?q?qn13oJRSdlpwTBRwK1qqDcr10MPUyLy0LLlYwRM9FXw3Y3y0bm5PI5T9Ir7gVe?= =?us-ascii?q?EYTAaO0eqjDvIjf0xkyfY90vXCmEzzRXBk71EUV/GKUk2mLwvcfJmGzV+1I2Ro?= =?us-ascii?q?h/aVbnhR1xD4U3M04t7kYYwjYbGwgXdR+bFK2oBVjiLYYcVEgCaA6I06Kmdaos?= =?us-ascii?q?xk183K+v6/HPYuBmAKoNLPldhBaUnFdHApIWrbEeQLVkdlBG9a7XvQbjBJLlX/?= =?us-ascii?q?jniXowLee6Qt1e8c0Cq3Qi5RuwSAS65pde9bYbj4qIebRebZjLpsB84F9t5SQT?= =?us-ascii?q?eSxVnBh/kxS5XPgEpO/5/tjUrJqo6+ipVKY3ROUb7gM0CHp6j5vxhlAjvN7W2v?= =?us-ascii?q?xESoLPlYTw7ABNInCNuIbA0BlwM+kOJJyxfLZm6XoHIzISJ3UUPdqZc/M8+TNi?= =?us-ascii?q?MC3P51xeBcMBfc8YPNDTlgBQkELpXq9c+9HGFV+ZBIdzdtwo4HDsyD8v65s8T/?= =?us-ascii?q?zs6DmoKpDD91tNJe9MjD1wlNLeo+gY2fXSBzIN4XaHdxh1wjiPy52MC/bs4+qM?= =?us-ascii?q?yMvbV04dHiIsVYdSOiaC8xS9RuWpjJXpTh+U6sjrjZIxak2QQGCxnKMCsqpLCu?= =?us-ascii?q?5PlCH73jlYFoDoiPOYqN6s53VNtlxHCol/9xvFF7tDPp9jIxT3itGrRlRgBiv4?= =?us-ascii?q?YMzUcx0uuOyKxucD/epzLE7+ZY4BLRIC1b369XRUTgx0SL71pVaVR+QRa8V6SP?= =?us-ascii?q?nctHBa9ZpgK7MTPFiavJHqoStHqEstAAMwdbE+oTpUdkjInA1IVKf5o7EAig4G?= =?us-ascii?q?Xt5/p0BAA2WwOHgx5zDfT6RakLGRCOAJ8jWUVqEOUUJoMiN4Qx+vxJpue7+pne?= =?us-ascii?q?1avWJHnyN9puMq0z9nRBanpy3sprwN1igk+L6ltTUNo3pFQfuCky3QE1VM0OwK?= =?us-ascii?q?jbsAC3bl8VG8YWcDY5H04LR8IcTg6JQu43U4YRU4ZSEGWv6gCy7ohaOSHoOPqM?= =?us-ascii?q?5chAKKuMjWb7+8MyYSNro5yR/4SXlyyA7ekwh08GcRRDWv8sMkLp2nOck53iqo?= =?us-ascii?q?BXTbdFEU76NGtMvxslAKQ/UyaVNl22hjyc+HRisMRMPTAWo1iBYraXlcepJZ9R?= =?us-ascii?q?AaD7UogiqPvqRe/AEUYDfVEpyi+onUnMfIxWcyQMxvxmLXuq2FnI0l3Gdim9Nu?= =?us-ascii?q?4S6EoG4SePDAU89wHnjz0Z9SyePjZ/Wsr+8HT5BryKi7UPAcNMmj5XG52JFwVU?= =?us-ascii?q?+j2rseHkC2PPUFxrjFTyevUXeYVviTc2iQgzY5NVb/5QWpLl0yc8pKs049PffB?= =?us-ascii?q?hpFCkw3tS7V0STuMpVXD1mwsLfsadx4quIegYwEKSe8RZ+ufJegp2/A+CkEDb3?= =?us-ascii?q?zOHStwFeC2t0ShnI5lNHV8+U/6e/ji8hj6MNuOHRkJCZXVoYB3+fymXW+BIntg?= =?us-ascii?q?zBpuPElo6efQCUk+uvVbc5aLktjan8573vIdd/dxLS09vcYemppk6YmQysiKax?= =?us-ascii?q?/QzpH2JdHbufWYBvrfz0Mxem5ETrUZewT1554hPt44Xb3TEqFVvRMGBag1WJYh?= =?us-ascii?q?LXv+9LloLANvdQ7cfLq0jdfupuKKfptbuWTb71MxLCfZvh0M1Oa0TQhlYJywgH?= =?us-ascii?q?XyOp8wTCpbr9JxEhtmAJdPG8QYogqnH56UmKa7i9qr9ENhoOIKtKvwCuzQ1Nun?= =?us-ascii?q?xYlxWIJa5UOTNjbLGKZrmlhljvi1gvrY3JjxEdniedIYW+dlWWPFb77GHpmlKj?= =?us-ascii?q?2QIM78fFRG87GE2rJjThqRfDz5X7aBtCC8M/Vk5Vs0x5dgfOrX1jMt9K3b2Nru?= =?us-ascii?q?aGFHvCess2CGOIFZ7FPUGezURwhURuad8GZ5Aa0XapP59OMPMdwk3did7BB/7D?= =?us-ascii?q?BD0MueP6ihtVTB2kNhepLdK0vlwSE5WZMFIB6nK0sjnXfZqmjBAXRbNsWkMtdi?= =?us-ascii?q?gNKUDhzr+klwlmYhaGFdGmroW9iRI3YU29qkawCR9wJEEcwDn+ipdk48raKyVO?= =?us-ascii?q?ZoNo9CmeWwu7UNicxpJD3XRMhGIyHQK6d7Pj5QDuXUuFgleR8Fs6EzWogvf5SO?= =?us-ascii?q?Jl0IMFuYwyPo0QTCyVH0d8Cr1KuRJSYZ6GlIz7LE0ThKoAm0ouiZgszlUL/HaJ?= =?us-ascii?q?H2XfjSMDcqVz2AQjQyC0mp80++u/UYpPqYPXsfolcMbyKQEgETpadvosPLA2/O?= =?us-ascii?q?n+1jYJ0KhPeHWyD/SC14iLA+BiBVukCQW/ADDxXZb2f9gGpAvwyvPuRD8mniY7?= =?us-ascii?q?2cx6pVQPAWApBWfv2CXdTXZepSJyw2mTUdOea8ecDcrrki313UTWoZCbTI9EaE?= =?us-ascii?q?QE+YWPOc2ynrXYITv4QuvSoo4N3QlDdtE6vUJ7afuyKu8omggSaXo+LRTXMtY0?= =?us-ascii?q?0rj+IGG2SB3h1AJ3sfC9EUpUHhWKiAaFhQ1Hgxk+JhxwcMeBhvUn1pynBWnvO9?= =?us-ascii?q?GspDSV4OjWOuW+YLbFZtAzM140CK4xf+YdsaucDcX2Ve7KcDSZIBLPk074naIL?= =?us-ascii?q?AQwPgs3D16oSE3sD6QD01DgQKf8qrRHaV8xrtY6Wk+4f52QlmFQynDfWjf1oqm?= =?us-ascii?q?F8VPyD9soXDj0crUuvtgNL5EqI5kDlcKBjh2KczD8jxbV2H7xhey7F6HG2GFLT?= =?us-ascii?q?YY5isbDTAUfeZyielguVDHcciSx1mXsvcHqUCsDQ+QQpuz34dQQpXv1A6/bSBQ?= =?us-ascii?q?NzSsEIttgvMRhJAVe6xxNtv2OEzIMgWrVlHQgCsL7hW/5+3zAA=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2HYBAAsiGFY/wHyM5BdHAEBBAEBCgEBFwEBBAEBCgEBgww?= =?us-ascii?q?BAQEBAR+Ba45ErH0mh1lTAQEBAQEBAQECAQJfKIIzGoIcBgECJBMUIA4DCQEBF?= =?us-ascii?q?ykICAMBLRURDgsFGASITwQBrT06KAKDaIcNhkiIcwsRAYV9AQSafYF6jziKSYY?= =?us-ascii?q?akj9YaB9Rg2YcgV9xhnCCLgEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 26 Dec 2016 21:19:35 +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 uBQLJYxx018365; Mon, 26 Dec 2016 16:19:35 -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 uBQLIpOJ146204 for ; Mon, 26 Dec 2016 16:18:51 -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 uBQLIkww018050 for ; Mon, 26 Dec 2016 16:18:51 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1AnAAAsiGFYmCIeaIFdHAEBBAEBCgEBgzcBAQEBAYIKjkSobIwQUwECAQEBAQECEwEBAQEBCAsLBx2FGQYnYlFXGYhwBAGtPTqEEocNhkiIc4EFhRUFmn2Beo84kGOSP4Feg2YMRRyBX3GJHgEBAQ X-IPAS-Result: A1AnAAAsiGFYmCIeaIFdHAEBBAEBCgEBgzcBAQEBAYIKjkSobIwQUwECAQEBAQECEwEBAQEBCAsLBx2FGQYnYlFXGYhwBAGtPTqEEocNhkiIc4EFhRUFmn2Beo84kGOSP4Feg2YMRRyBX3GJHgEBAQ X-IronPort-AV: E=Sophos;i="5.33,413,1477972800"; d="scan'208";a="5890789" 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; 26 Dec 2016 16:18:50 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3Ac+W68x9WjcQSb/9uRHKM819IXTAuvvDOBiVQ1KB4?= =?us-ascii?q?2+McTK2v8tzYMVDF4r011RmSDN6duqgP0raJ+4nbGkU4qa6bt34DdJEeHzQksu?= =?us-ascii?q?4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1?= =?us-ascii?q?Ov71GonPhMiryuy+4ZPebgFGiTanZb5+Mhq6oRjeu8QUnIBvNrs/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/BuWO6zkWIqpQ58riChy8sxkIXEhJgZxk3H+Ch22oo4K9?= =?us-ascii?q?K1RUhmatC+CpRQrTuVN45uT8MiXW5ovCE6x6UDuZ+0YSQG0ownxxnba/2Hb4iH?= =?us-ascii?q?/A7sVOaXITd5nXJlZaywiwy18Ui6xe3wTsi00FBUoSpZitTAq24B2hjJ5sSaVv?= =?us-ascii?q?dw8V2t1DiT2wzJ5OxJLlg4la/BJJ4gxr4wmIATsUPGHiLuhUv4kLKYelk89+iv?= =?us-ascii?q?8OjoYbfrq4eeOIFwkgz+N6sjm8OlDeQ/KAgOUHCW+eK91LL/+k35RK9FjuYsnq?= =?us-ascii?q?nYt5DaIt8bprWiDgBO1YYj9hC/ACu439QDh3UHKV1IeR2dg4juIVHOL+j0De2j?= =?us-ascii?q?jFS0jDdr2/fGM6X6AprTKnjDkbHhfaty6kNH1AoyzcxQ55JTCr0bJvLzQVX+uM?= =?us-ascii?q?bXDh8+LQzni9rgXc5w0oIYRHKnHr6SMKSUt0SBoO0oPbqifogQ7RD8IP8h7uWm?= =?us-ascii?q?rHg+gkRVKa+o1pwTYWv+H/NhOF6xZCb8xNAbHjFZ7UIFUOX2hQjaAnZobHGoUv?= =?us-ascii?q?dk6w=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GYAAAsiGFYmCIeaIFdHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgwwBAQEBAYIKjkSobIwQUwEBAQEBAQEBAgECEAEBAQEBCAsLBx0?= =?us-ascii?q?wgjMYgh4GJ2JRVxmIcAQBrT06hBKHDYZIiHOBBYUVBZp9gXqPOJBjkj+BX4NmD?= =?us-ascii?q?EUcgV9xiR4BAQE?= X-IPAS-Result: =?us-ascii?q?A0GYAAAsiGFYmCIeaIFdHAEBBAEBCgEBFwEBBAEBCgEBgww?= =?us-ascii?q?BAQEBAYIKjkSobIwQUwEBAQEBAQEBAgECEAEBAQEBCAsLBx0wgjMYgh4GJ2JRV?= =?us-ascii?q?xmIcAQBrT06hBKHDYZIiHOBBYUVBZp9gXqPOJBjkj+BX4NmDEUcgV9xiR4BAQE?= X-IronPort-AV: E=Sophos;i="5.33,413,1477958400"; d="scan'208";a="2280409" Received: from mx1.polytechnique.org ([129.104.30.34]) by emsm-gh1-uea10.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2016 21:18:50 +0000 Received: from localhost.localdomain (private.iosenag.net [31.7.184.34]) (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 DBCCC56469F for ; Mon, 26 Dec 2016 22:18:48 +0100 (CET) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 5/5] checkpolicy: free id where it was leaked Date: Mon, 26 Dec 2016 22:18:32 +0100 Message-Id: <20161226211832.7165-5-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20161226211832.7165-1-nicolas.iooss@m4x.org> References: <20161226211832.7165-1-nicolas.iooss@m4x.org> X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Mon Dec 26 22:18:49 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 Several functions in policy_define.c do not free id after handling it. Add the missing free(id) statements. The places where free(id) was missing were found both with gcc Address Sanitizer and manual code inspection. Signed-off-by: Nicolas Iooss --- checkpolicy/policy_define.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/checkpolicy/policy_define.c b/checkpolicy/policy_define.c index 780e325af65d..19f3a5631465 100644 --- a/checkpolicy/policy_define.c +++ b/checkpolicy/policy_define.c @@ -1232,6 +1232,7 @@ int define_typealias(void) free(id); return -1; } + free(id); return add_aliases_to_type(t); } @@ -1263,6 +1264,7 @@ int define_typeattribute(void) free(id); return -1; } + free(id); while ((id = queue_remove(id_queue))) { if (!is_id_in_scope(SYM_TYPES, id)) { @@ -1459,25 +1461,25 @@ static int set_types(type_set_t * set, char *id, int *add, char starallowed) type_datum_t *t; if (strcmp(id, "*") == 0) { + free(id); if (!starallowed) { yyerror("* not allowed in this type of rule"); return -1; } /* set TYPE_STAR flag */ set->flags = TYPE_STAR; - free(id); *add = 1; return 0; } if (strcmp(id, "~") == 0) { + free(id); if (!starallowed) { yyerror("~ not allowed in this type of rule"); return -1; } /* complement the set */ set->flags = TYPE_COMP; - free(id); *add = 1; return 0; } @@ -1570,8 +1572,10 @@ int define_compute_type_helper(int which, avrule_t ** rule) (hashtab_key_t) id); if (!datum || datum->flavor == TYPE_ATTRIB) { yyerror2("unknown type %s", id); + free(id); goto bad; } + free(id); ebitmap_for_each_bit(&tclasses, node, i) { if (ebitmap_node_get_bit(node, i)) { @@ -2008,6 +2012,7 @@ int define_te_avtab_xperms_helper(int which, avrule_t ** rule) (class_perm_node_t *) malloc(sizeof(class_perm_node_t)); if (!cur_perms) { yyerror("out of memory"); + free(id); ret = -1; goto out; } @@ -2043,6 +2048,7 @@ int define_te_avtab_xperms_helper(int which, avrule_t ** rule) } } + free(id); ebitmap_destroy(&tclasses); avrule->perms = perms; @@ -2389,11 +2395,12 @@ int define_te_avtab_extended_perms(int which) id = queue_remove(id_queue); if (strcmp(id,"ioctl") == 0) { + free(id); if (define_te_avtab_ioctl(avrule_template)) return -1; - free(id); } else { yyerror("only ioctl extended permissions are supported"); + free(id); return -1; } return 0; @@ -3090,13 +3097,16 @@ int define_role_trans(int class_specified) role = hashtab_search(policydbp->p_roles.table, id); if (!role) { yyerror2("unknown role %s used in transition definition", id); + free(id); goto bad; } if (role->flavor != ROLE_ROLE) { yyerror2("the new role %s must be a regular role", id); + free(id); goto bad; } + free(id); /* This ebitmap business is just to ensure that there are not conflicting role_trans rules */ if (role_set_expand(&roles, &e_roles, policydbp, NULL, NULL))