From patchwork Fri Mar 24 11:40:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tetsuo Handa X-Patchwork-Id: 9642759 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 6CD52601E9 for ; Fri, 24 Mar 2017 11:54:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 546AD27F17 for ; Fri, 24 Mar 2017 11:54:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 493212816B; Fri, 24 Mar 2017 11:54:30 +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=unavailable 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 5777327F17 for ; Fri, 24 Mar 2017 11:54:29 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.36,214,1486425600"; d="scan'208";a="5207667" IronPort-PHdr: =?us-ascii?q?9a23=3A4O7woBW1Do1rdsYmvCsH65o0YG3V8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYYheDvadThVPEFb/W9+hDw7KP9fuxBCpfvN3b4DgrS99lb1c9k8?= =?us-ascii?q?IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBo?= =?us-ascii?q?KevrB4Xck9q41/yo+53Ufg5EmCexbal8IRiyrQjdrMsbjIttJqovyRbCv2dFdf?= =?us-ascii?q?lRyW50P1yYggzy5t23/J5t8iRQv+wu+stdWqjkfKo2UKJVAi0+P286+MPkux/D?= =?us-ascii?q?TRCS5nQHSWUZjgBIAwne4x7kWJr6rzb3ufB82CmeOs32UKw0VDG/5KplVBPklC?= =?us-ascii?q?EKPCMi/WrJlsJ/kr5UoBO5pxx+3YHUZp2VNOFjda/ZZN8WWHZNUtpUWyFHDIy8?= =?us-ascii?q?dY8PBPcfM+heoYf2ul8CoQKjCQWwAe/izCJDiH3r0q0gy+kvER/I0hEuEdwNt3?= =?us-ascii?q?rUtNf4OLocXO+60KbGwivMb+hN1Dfh6oXFaAwtrOuQUb5ud8fa1EkhFxnCjlWV?= =?us-ascii?q?sYHrIS2a1vgWs2iG6OprSOChhHQhqw5suDek28AhipHXiYITxVDE6CR5wIAsKd?= =?us-ascii?q?27VkF7e9ikH4VUtyyBNot6W8ciQ2Z2uCkk0LEGooS0fCsXyJQ93RHTcfqHfJaS?= =?us-ascii?q?7hLhTOacODF1j29mdrKnnxu+7Eetx+LmWsS0zVpGtDRJn9bSunwXyhDf8tWLRu?= =?us-ascii?q?V880u7xzqDyQLe5vtZLU07l6fXMYMtzqMtmpcVrE/NBDX5mF/sg6+Tbkgk/++o?= =?us-ascii?q?5Pn5bbj+vZ+cMpN0ihn5MqQzhsyzGeQ4PRYKX2ic4em8yKfs/Vf4QLVXlf06iL?= =?us-ascii?q?XZsZDGKsQboa61GQlV3Zo46xmjFTum1dUYnX0fIFJEfhKIkZTpNknTLP33Avqz?= =?us-ascii?q?mVShnCpxy/zYMbDtHI/BImXbnLfkZ7l96kpcyAQpzdBY4pJZEqoBL+z3Wk/wst?= =?us-ascii?q?zYExA4PxWvzObgFdV90J8RVnyUAqKCLKPTsUOH5uIoI+WWYo8VoyzyJ+Iq5/7p?= =?us-ascii?q?k381gUUdcrWx3ZsLdHC4GexrI0eeYXrqmNgBDWcKsRA4TOHxil2CVjhTZ3OoUK?= =?us-ascii?q?In+jE0FpimDZzZSoCqmryB0z+xHodKaWBeFlCMDXDoep2GW/cOci2dPsxhkicD?= =?us-ascii?q?VbinSo8hywqjtAH+y7p6Ievb4TAYtZT/1Nho/eHTkgsy9TNsBcSHz26NV310nn?= =?us-ascii?q?8PRzIuxKBwv1dyxUmF0ah5n/xYEsde5/JXXQgkK5HQ1et6C8r9WgjZZNeGVE6m?= =?us-ascii?q?Qsm6ATE2Vt8+3tgOY0B7G9q/kB/D2yuqDqQPmLOVHpw09bjQ33/rJ8Zy03zGzr?= =?us-ascii?q?Uuj0E6QstTMm2rnrNw9xTJCI7TiEiWi6GqdaEA0yHX72eD0XCCvEdGXw5sSa/F?= =?us-ascii?q?R2wQZlPKrdTl4UPPV76uCbI7MgRfzc6NNK5KZcP1jVVcRPbuI9PeY3qvlGe2AB?= =?us-ascii?q?aH3LKMbI7xdGUa0yTREk8Ekxoc/XyeLwgxGj+ho37CDDxpDV/uY0Lt8e54qH6g?= =?us-ascii?q?S080yxiGb0xn17av/B4an+acS/AS3rIapigtsTN0E0ih39jOEdqPuxJhfLlAYd?= =?us-ascii?q?M6+FpIy3rZuBZnPpyhNKBvnUYefB5tv0PvzBV3EoFAntI2o3w01gZyLriY0FxZ?= =?us-ascii?q?fTOCwZ/wIqHXKnX1/B23Za/W21Xe0NOI9acV8/k4pUvssxyuFko46Xpny8NV03?= =?us-ascii?q?ye5prUEAUSTYj9UkEt9xh1v7vaeDUy55vI1X1wNqm5qjHC28gzC+sj1hmgfsxf?= =?us-ascii?q?PbiBFA/qEs0WHtOuKeIxm1SzaRIEJu9S/rYuP8y6b/uGxLKrPOF4kTKll2tH44?= =?us-ascii?q?d90l+X+ip/UOHI3JEFw+yC0guATTf8g0+rstrrloBceTESAm2/xDD+C4FMfK1y?= =?us-ascii?q?fJgECX21LsKt2tp+goThW3lC9F6sH1kGwtOmeQKOb1zh2g1dzVgYrmajmSSm1D?= =?us-ascii?q?x0jzEorq2E0SzV3+vidQQIOmhXRGljl1jgO460gM4GXEKwdQgmiAOl5Vrmx6hc?= =?us-ascii?q?vKl/L3fcQUNMfyjxNGxiVrawtqaFY85K8pwkqyJXUP6zYVqCUL7yvwMa0z//H2?= =?us-ascii?q?tZ3D07bD+quo/+nxxhlGKQN21zrHzeecB+wBfQ/trcSeRX3jUYWClykSPXCUSk?= =?us-ascii?q?P9m14dWUkI/Os+6kWGKlSp1cbzPrzZibuSul+2JqGwawn+22mtH9Fgg6yyD73c?= =?us-ascii?q?FwVSrUtBb8fpXr16OiPOJ7Y0ZnGV785NB+GoxljoQwg5QQ1mQAiZWO4XoLi2Hz?= =?us-ascii?q?PstH2ajmdnoCWSYLw8LJ4AjiwEBjKHOJx4b9VnqD2ctsfMO1bX0M2iI69cxKD7?= =?us-ascii?q?2U7LNclytvvlW4tR7RYeR6njoF1/su6WIVg/0OuAo31CmSHrASHU5ePSzjjBmI?= =?us-ascii?q?69G+rKNNa2a1dri8zk1+ncquDLuauAFTRG75eos+HS939sh/NFPM0Gbv6o39Y9?= =?us-ascii?q?nfc9YTthySkxfdgOlYM4kxluILhSphOGLyoWYlx/Q9jRNwwZGwpJKHJHl1/KKl?= =?us-ascii?q?Hh5YMSX4Z9kU+jHpiaZRgNyW0JyoHpRvATgLR4boQu6zED4IsvTnLQmOGiUmqn?= =?us-ascii?q?iHAbrfAROf6EB+onLXCZ+rKnWXKGMDwtl4XxadI0hfgBwTXDU8hZM5ExymxMrm?= =?us-ascii?q?cEhl/DwR4ED3qgdUwOJyKxb/SnvfpBuvajosS5iQMhxW7hpZ6kfWL8Oe6PlzHy?= =?us-ascii?q?dG8Z29tgCNLXabZwtQB2ETRkOEH0zjPqWp5dTY6+iXHPe+L//QbrWWs+NeUeuI?= =?us-ascii?q?yoy10oZ94jaMLduAPmN5D/EhwUpDWm15G97FlDoRRSwXkDjNb8GFqxum/C14sN?= =?us-ascii?q?y/+uzxWA3z/YuPF6dSMdJ39hCoh6eMKvWdhDh/KTlF1pMA33nIx6YD3FQKkSFh?= =?us-ascii?q?ayGtEagctS7KVK/QgrVYDwMfay5oKMRI7r483wlUNc7VkNz10KR0jvkvC1dKTV?= =?us-ascii?q?bhgN2mZdQWI2GhM1PKHEWLNbSCJTLV2Mz3ZKS8SbNejOpKqx2wpTabE0jmPjud?= =?us-ascii?q?jTXpUQ6gMf1UhiGBIBNeoJ29cgpqCWX7QtLpcBu7MMNwjT0z2rA0iG3FOnMbMT?= =?us-ascii?q?hmaUxNtqeQ7SRagvphB2NB8mBpLe6emyaW9+PYMIoZseN3AiRokOJX+Gk1y71P?= =?us-ascii?q?4yxfWfN1njHdosRpo1G8nemF0iBnXwZWqjZXmIKLul1vOb/E+ZZdQnvE8xcN7G?= =?us-ascii?q?qKBxQMudRlFsXlu7pMxdjXiKLzNDBC/srO/ccGCcnYMseHP2AlMRruGD/ZFxEK?= =?us-ascii?q?QiKuNW3FgExdiv6S/GWPrpcmspjshIYOSrhDWVw7DPMVFFlqHMcYL5dxQjMklq?= =?us-ascii?q?WbgdUS6nWiqRndXsJavorIVviKG/XgNC6ZjaVYZxsP2b74K54TOZfj20x6cVR6?= =?us-ascii?q?koXKG1DLXdBRrC1hbwk0r19L8HdiT208wUblZhmq4H8JGv6+hgQ2hRdmYeQx6D?= =?us-ascii?q?fs5E86KUfRpCQuikYxls/ljiqPcDPqN6e/R4JWCzfut0crKJ/7Rxt1bQuokkx+?= =?us-ascii?q?LTvEW7VRj7hgdGBskgPcv4VAGeJER61efBAQ3e2XZ+kv0VlEsSqnxEBH5ezDCZ?= =?us-ascii?q?Z5iQQlb4Wjr3Na1AJldtI1IrbQJKVRxFhKmq2OpjOo1vw2wAIGPUkN/3mdeDAW?= =?us-ascii?q?t0ETMbkmPzSn/upp6QOYmjtDfHMDV/0lo/5w8UM9IeuAxTr607FfMkCxK/CfL6?= =?us-ascii?q?SBtmjcks6IR0k81lkPl0hE47d219wsc1CTV08xz7ucDAgGNc3HKQ5JdcVS72TT?= =?us-ascii?q?cTyIserT3ZJ/J5+9GfzwTe+SqKYUhVqpHAA3EIsW6sQMBZqs0EbDLcf7NrEFzw?= =?us-ascii?q?4t5AfqJFmfCvRGZg6Lmi8do86j1J93wZVdJjYFDGVnLyq3/ajYqRUwgPWfXNc7?= =?us-ascii?q?eWwVXooeNn0rX826lTZZv25eAzi3yO4ZzhaN7yPkrCTKEDb8d8ZjZOuTZR50Fd?= =?us-ascii?q?654ys/86mrhl7M6ZjRPXv6Nc5lut7B8uMVuYqIC+5OTbl8r0fdm5NUR3q0XG7T?= =?us-ascii?q?CdS1PYT/a5EwbdzoDXa3Sli/izUvT8jvOtasL6+IjBrnRYZSrYmXxjcjNdWyFj?= =?us-ascii?q?sGARd/u/kD5L5gZQ0Ee5c7egDntwA/N6y5PQeZ3c6jTHqqKTtTU/ZQ1/66Z6BN?= =?us-ascii?q?wyoqcOC61GMqTosmwOmv7U4NWJYKgwnDyvm/YoleVi7zGmBAdwjUuyo2iXJhNu?= =?us-ascii?q?czw+c4xhPEq18cPC6XdOZxcmxLo8k8BU+OIXVxEmc4REWcjIrZ7Q6qw7AS/zBQ?= =?us-ascii?q?n9lT0e1drHfypJnfbyywWKazs5XarzIgbcQ6o612KYHjPsqGtJbZnjzDTJnRsh?= =?us-ascii?q?aIXzO7F/tagNdfOzhUQP9WlmE5IcYGo5ZO6VItVsciILxCEKYspqqwZjpiES4f?= =?us-ascii?q?1i4ZV4SO3TwEnue826XVlhaWcJQ+LhMEqo9Ogt0DXC5qeikevrOsV53Kl2+YTW?= =?us-ascii?q?gGOB0c7QBN5A0ciIB/ZuXl4YrOTJ9LzT5Zuel5XTDKFpZy8Vv3U2+WgUXiRPWn?= =?us-ascii?q?jeOpwRpYzOjw3dkDRB5/FU9dyv5NmUQ2LrF6MLMfsZPUsjCWb0P6p3jiyPGmJV?= =?us-ascii?q?VLzs3UbVL4BpLftWXgSi0c5WEURYhXxXHFE5QSkhZ2aKYspFVIO4CoYl/w6SE+?= =?us-ascii?q?yYl1GLe1Ttykx1EgrXkaXSiqCMZBB/tgsF3JRD1ve4qrp4n9O5VOXm9Q/4WQpE?= =?us-ascii?q?tbkEp3LyG00oZTK8ZJ4j4IXThAvy+dvMesR8Jf2c96FZgMIs1wu33lAqNLJICR?= =?us-ascii?q?o2Equrzo0nLZ4SozsE29xDqoAKK4U/hZ8HcAGgo3I2Seq08vD+Qo8mfT/VDNsk?= =?us-ascii?q?x0/+lBCbiViEV9ujB9EY5SBjxRz3CqM0xzTGVas+VdMKnUfdZQTOUyZR+uPhw+?= =?us-ascii?q?FOQp30+S8EF1g3j2fTJ9uhFd+yDHUAk+TTMVjav1mT0CtsGnPicXS4pPbTUldS?= =?us-ascii?q?jFMQyamSdTvBZRcExqXpcZAtFe+74FwYRU5M3CSV23KSEEWhxiORg00f1FlU5M?= =?us-ascii?q?qE+YYzzSDRK0dfbTtR16Zd2erNS0LPT/5gtHiZjqsOE596UCW32pghehQdbAoI?= =?us-ascii?q?/grteKrFeBdL/kM+2gZn/MVCTMjRe1hbo/E5nG4y3TPxFBJ5l813UkfYDrCXTX?= =?us-ascii?q?MhReO6IbO01bWLh6adpcuOBVfctkd7sS9KBwGB2HXgvvF5KrrPZYNFbfXzPeLz?= =?us-ascii?q?+O8uanu4Lc8aTdSfT8ZsyL33vHQaV3MYlh5DbmBbjqypFR+lDq2vhz60x2U17G?= =?us-ascii?q?PD6drN75PAME+NGidlf+vp0uBT7ZG5lwn2bxykxCasYaTTan/4gfyJNc9Hn/U/?= =?us-ascii?q?l40lTpvO1U6bZk9ZE946p1xsesOafSNfNavFd9AheKGwpq9o8iAHRkSmBVZe8R?= =?us-ascii?q?NunecboFgsDptu/4CbYb6BuL9OxFcdHHPV3OmtGjCjGAThxJhB8BqSUGLgSGyv?= =?us-ascii?q?GFh7R5Sd2ipejkwEIi/0axLhgazLB3/4iE/rCEpOjNbxve1bIEQLTlRtvvrrQw?= =?us-ascii?q?vEOf/eEklKQQdWNrfgKqC/UdVsoBxmf6168q0yMsE8THH73+5P5PTXU5nijvm5?= =?us-ascii?q?plBVUZBusUHaaX/YRZhmo4nvbWNtkScq9chmaPCQSrHaUZxH6t9SSXPHJljQ3U?= =?us-ascii?q?3BHoX2y/9ln2ojFkQSHU1dfsjlJVVqWrBUdVRyepO1V3sCmIPArzsNr4o7o14V?= =?us-ascii?q?ozMmz5sNKNiGqhN69WH8LlItycOjM4pFUNjJ0+Xtavw5wUGcKhINcN93Fzdvne?= =?us-ascii?q?5Hmtky9PuadHgJfR7d+O9/XLB3agibaaq7KXyDBe1Hc4oUk16sq8OfHW+92KX/?= =?us-ascii?q?Oo2n4eTydiugvBWxq1paLer10PJEOEzlzEmI0QMdFfx3U40Vvm5Oc7StIp6Ape?= =?us-ascii?q?DprAZ+8FpT3rPjv0xU2SY9MxVimbyTdXH1T1EVdiGKcmw2LwoNjJlWrM9F00W4?= =?us-ascii?q?lwbVLoiQZwD4UiJkIn8EIXzTYbEQgRdRCbC6mlBUHiLYsCSUgDZgqI0aO/eqc2?= =?us-ascii?q?x0JzxK2g5PPdbOx7HaoNNe1dghSInFdFBpIcqbceT65ke19B6K7XoRDvC4z8X/?= =?us-ascii?q?jjlXc9LvO1Td5H/sAerXst+B6/RwCn6ZdB8bkUlIyIerRDYZjWs8B2911n6iIX?= =?us-ascii?q?dixRnBh/iAu0UfsGq+D9+Nfbv4Sn6v21WaY2XeoX6QI7B2tggJvrmlwjp8/Y1/?= =?us-ascii?q?tEQI3PlYv/6BxNI2KNuIvC0Rl8KO8OJpmufLl+93QIOTIeJ3MIPdqZcfU85TFi?= =?us-ascii?q?MCnL7VxYHswMfc8YPNbKmQ1Mi03oWatc+dDHFVKDEId8adwo4HTrxzwv9ps8SO?= =?us-ascii?q?ng4iesJZ/D91FNI+9DjCJ0md3ZpegV2vTTBzIV4XmYdxh12jmNy4SJC/vr4eqM?= =?us-ascii?q?z8zbWE0cES4rSYddIyCC9ha9SuqyjpXpXRue6tXvj5ImaEKQWnuxkbwdsqlWDe?= =?us-ascii?q?5PliX73zZZFoDvhPKZqsGs53VTtl1GFoZz8BLEFb5HPpphJRT3ismrR0Z7Bivl?= =?us-ascii?q?e8HYbBkut/SMxucK/ep+M1HyZYgBIhIL07j682ZaThNySL7quVaURf4RZMF4R/?= =?us-ascii?q?PAtH9V75xvJrQSM1icq5zqrytIp0otAAAzcr8wsyZWdk/Qkw1JQ6z0oqIPihMA?= =?us-ascii?q?Ud5lvk9BAW2wN3gk5zXZSaRVjLKcCPgU8jWPUKMOU19nMj5lQx+v3pVhZaepl+?= =?us-ascii?q?hdsmxahiN9vOQq0zt+SRuzpyLsob4N2TUn+L2/rzUOp3hFTuSYkyfVBlRO1/AK?= =?us-ascii?q?grkGC3fi81Owen8DY5Xu4LN/P8Tv6ZEh42gjYRUkZyAGW+WgBD33j6OMGIOPq8?= =?us-ascii?q?hQhB+KuMXJdr+zNjMfNrEyxBPsXXR91RLenBlw+msRXjqg9MMkJJm6Ocs9ySqn?= =?us-ascii?q?BXPbdE0V7q1Uv8X/s18LTO0raVJu22hj3c2HSTcLRMPRAWo1iRIkaWpcepJZ9R?= =?us-ascii?q?AaD7UogiqPvqRe/AEUZzfUEoK/9obMncfI3WQ9Qsprx2LXoK2FnZAq0Hx+ltNq?= =?us-ascii?q?7y6Opm4dd+jFXM9tGHTz0JlQyfDmbfW3ru8HUJdmyKimUPIaM8mj53G52JNxV0?= =?us-ascii?q?+h27QRAlu5MOgYxrvBVCelU2KYU/yRc2eQhzY5LlLy5R6wI101dshKoUE9Mu/Z?= =?us-ascii?q?i59SjQLhV617RjmKqV/d0mMjLfsQdxgqt4e/ZwwKUOkRavCTJegqx/0/BkUDb3?= =?us-ascii?q?vNHSZtEO+2tlitnIlnNHl650X1f/jt+Bj8MNSOAhkEDZLarplp9Py4RmKAOWdg?= =?us-ascii?q?zBp2PEl16+fQCU88tupdc5aNh9jfmc530ekfd/diKSc9oMIcmpp/6YmI18eHaQ?= =?us-ascii?q?3Rzpf3JdzOvviYAuHQz0c0dWFeSLYZZx3655kiNN4jR7LTBadZvQgbBaUiRZwh?= =?us-ascii?q?NmTx9KJzLA5ocA7efre0gs7spu2VYJtYvXnW4UwsLC3EoR0M1uS0TRBnb5Ctn3?= =?us-ascii?q?j9O44/RjRdr9B2ERtmGIxPG98crwq5HZGbhbu3i9ir+0N1o+UKq7b/CujW1NSl?= =?us-ascii?q?2IV8R5Za6lKPPDbQHKlknF9oj+WzgvfF15n+F9niedcaW+RhRW7FcLDGFJ2lKj?= =?us-ascii?q?2SIsL8Z1JG87mE3bN3ShWRfiH5ULaYuyC/MfVk4Fk7ypZmc+bJyzwt9b7b0sPo?= =?us-ascii?q?Z25HviejsWKJNJxH4VzNAezRQQlZSeKB8Gl/Bq0XcYr0+/sSMdw43teT/RN/7D?= =?us-ascii?q?Jc38uZO6KhtFPD2lpndZLHK0vkwyI5WYgMIBSiPkogmGvZqnXGAXRANcipMsht?= =?us-ascii?q?j8yTDhzq/UVxnnstZmFZEGryWdiRIXQb2965ZACS7wJEEdIDn++xeU4luay+Tu?= =?us-ascii?q?ZmOolFmeq0rrUIj85pJDvUSchZIS7QNrl2MSRVDurUuVgobQQIs78vWoc6fZKO?= =?us-ascii?q?Ol8IMF+cySPuygvPyUj0eMaw26aJISYW9HJHwqnb0ThNoQm2p/KZgszlULDEY5?= =?us-ascii?q?D6RvnSMDAqVjuCXzQ9DV6p+Uu4u/oDpPeYI30QolMTYi2JEwMTu6ZvrcTQDm/U?= =?us-ascii?q?hO1jc50KhOyAVyD2ViJ4iLI4BjxXukCUX/oDCQ7WYmf6j2VHvwCiIv5M/Wn5b7?= =?us-ascii?q?2D3KZVQPIZDZdWfv2CXdTYffFeJzE1ljQWI+uzY93dr6wk0lLTV2cYHbPH9EGF?= =?us-ascii?q?TE6RRPyQ3TXrXZ8av4IsoCon5srQnjNrE6TPJ7ufqCSh/ZWijCaZp+LeUnIgY1?= =?us-ascii?q?IxgO0YG2mBwQRAJHsCC94LpEHnWrSAaFpU1HI1leJu3AcBeB99Un1rznJbnfWw?= =?us-ascii?q?F9ZHSVEKlmOuQfwHbFdxDD8q+0+F/BHya8Qauc/PX29e6qcMSY0FIfkq74nXPq?= =?us-ascii?q?8Qze0s3D14vSM6vSKdD0lBgQ2b6abQGrxzxqERrVU/qup7WkCJXiP3bnnMyo3g?= =?us-ascii?q?DdlGgyhpvzSs08vSo/AoL7ZRupt4HEZPBCV6O9TQ1S5OXHuy2waouRu/WjOEL2?= =?us-ascii?q?E3+jEOcBAIav1oyKdbuRDEf56V8U6WuL8grg6oBByNB76c2dlPDd/kkx6xajRR?= =?us-ascii?q?eHOtGtZ0sqAex54pfao7aN3mUBj6JQ/kA1fd4nlU+Q=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2HtAAC7B9VY/wHyM5BdGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwApgWyOZI8sAQEBAQEBBpIVhgYFUSiJJ1cBAQEBAQEBAQIBAmgogjMiA?= =?us-ascii?q?YJHAiQTFCALAwMJAhcpCAgDAS0VGAcLBRgEiCGBOAwBqzs6JgKKHAwmhgmJWhE?= =?us-ascii?q?BhgEBBIcVB4F7B4ZCf06LLJJNhSyFQ4Y9AkiTHVhLMQgkFnWEWB2BcmaHQIIuA?= =?us-ascii?q?QEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 24 Mar 2017 11:54:28 +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 v2OBsRvR006838; Fri, 24 Mar 2017 07:54:27 -0400 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 v2OBfiM8265232 for ; Fri, 24 Mar 2017 07:41:44 -0400 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 v2OBfhTF002411; Fri, 24 Mar 2017 07:41:43 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1C7AQC4BNVYfUhhtcpdHAEBBAEBCgEBgyt6gRuOZI8vAQEBBpIVgkiDPgVaGoYIgyRXAQIBAQEBAQITAQEWOYVyUoEAPxKIQoE4DKtBOop2hgmMVAyDDQWHFQeBeweGQn9OiywckjGFLIwAAkiTHVZMOSQWhH1QHYFyZoluAQEB X-IPAS-Result: A1C7AQC4BNVYfUhhtcpdHAEBBAEBCgEBgyt6gRuOZI8vAQEBBpIVgkiDPgVaGoYIgyRXAQIBAQEBAQITAQEWOYVyUoEAPxKIQoE4DKtBOop2hgmMVAyDDQWHFQeBeweGQn9OiywckjGFLIwAAkiTHVZMOSQWhH1QHYFyZoluAQEB X-IronPort-AV: E=Sophos;i="5.36,214,1486443600"; d="scan'208";a="5991231" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 24 Mar 2017 07:41:42 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3Aw0I8NxZxjv050DgNugontbj/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZrs66bnLW6fgltlLVR4KTs6sC0LuL9f+9EjZQqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRo?= =?us-ascii?q?LerpBIHSk9631+ev8JHPfglEnjSwbLdyIRmsrwjctsYajZVhJ60s1hbHv3xEdv?= =?us-ascii?q?hMy2h1P1yThRH85smx/J5n7Stdvu8q+tBDX6vnYak2VKRUAzs6PW874s3rrgTD?= =?us-ascii?q?QhCU5nQASGUWkwFHDBbD4RrnQ5r+qCr6tu562CmHIc37SK0/VDq+46t3ThLjlT?= =?us-ascii?q?wKPCAl/m7JlsNwjbpboBO/qBx5347Ue5yeOP5ncq/AYd8WWW9NU8BMXCJDH4y8?= =?us-ascii?q?dZMCAeofM+hFoYfzpFwAoACiCQWwHu7j1iVFimPq0aA8zu8vERvG3AslH98Wrn?= =?us-ascii?q?rbssn1NLwPUeCy0aLGzy/Mb/VL1jjn9YPFdQghru+KXbJ/bMrRyE8vGxrGjlqO?= =?us-ascii?q?s4zlOS2a1uAWvmaY9uZgUeWvi3A5pA1rvzai2sIihYfViI8J0FzE8zt2zJw3Jd?= =?us-ascii?q?2gUUN2Z8OvHphItyyCKYd6Xt0uT3t1tCs517EKo5q2cSoQxJkl2RLTc+GLf5aJ?= =?us-ascii?q?7x75SuqdPzV1iGh4dL+whRu+61WsxvDhWsSyzV1EtDBKksPWuXAIzxHT6taISv?= =?us-ascii?q?96/kq51zeO2Q7S5v9FLEwqj6bbMIQuwr0tlpoJq0vPBCn2l1vsgK+UbkUo4umo?= =?us-ascii?q?6+L5bbX6vpKQKZN4hh/kPqgzmcGzHP40PwwMUmSB++mwyqXv/UjjT7VLiv02nL?= =?us-ascii?q?PZsJffJckDvq62HQlV0ok+6xa+CTeqydcYkmcdLFJDZh2Hi5PkO1DXLPD8Cve/?= =?us-ascii?q?nUqjnC1wx//cPb3hH4/NIWLZnLfnY7lx8UxcyBIrwdBF+51UEq0BIO70WkLpr9?= =?us-ascii?q?zXEBs5Mw2yw+b6B9RwzZ8eWGKTDa+ZN6Peq1mI5vk1LOWWa48Vvyj9IeA/5/Hy?= =?us-ascii?q?lX85hUMdfa6x0JsMdX+4Be9rI1mZYHXwgtcBFn0GvgwlTOPwklGCXjlTZ2jhF5?= =?us-ascii?q?47syo2DIOgEJfrWpGmgLvH2jyyWJJReCQODlGKDGetbIiPRu0NdDPXJ8htjzgJ?= =?us-ascii?q?faauRpVn1hy0sgL+jb19Ibn64Cod4K7uyMNo4KXznBc+/HQgF8mb3HyMSSR3k3?= =?us-ascii?q?kOSjse/eV7plJwjGyq8pVCqrpeGJpR/6UaAU8BKZfAwrkiWJjJUQXbc4LMEQ7+?= =?us-ascii?q?Tw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0FpAQBoBdVYfUhhtcpdHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgwB6gRuOZI8vAQEBBpIVgkiDPgVaGoYIgyRXAQEBAQEBAQECAQI?= =?us-ascii?q?QAQEWOS+CMyIBgm1SgQA/EohCgTgMq0Q6inaGCYxUDIMNBYcVB4F7B4ZCf06LL?= =?us-ascii?q?BySMYUsjAACSJMdVk05JBaEfVAdgXJmiW4BAQE?= X-IPAS-Result: =?us-ascii?q?A0FpAQBoBdVYfUhhtcpdHAEBBAEBCgEBFwEBBAEBCgEBgwB?= =?us-ascii?q?6gRuOZI8vAQEBBpIVgkiDPgVaGoYIgyRXAQEBAQEBAQECAQIQAQEWOS+CMyIBg?= =?us-ascii?q?m1SgQA/EohCgTgMq0Q6inaGCYxUDIMNBYcVB4F7B4ZCf06LLBySMYUsjAACSJM?= =?us-ascii?q?dVk05JBaEfVAdgXJmiW4BAQE?= X-IronPort-AV: E=Sophos;i="5.36,214,1486425600"; d="scan'208";a="4267856" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from www262.sakura.ne.jp ([202.181.97.72]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-CAMELLIA256-SHA; 24 Mar 2017 11:41:41 +0000 Received: from fsav104.sakura.ne.jp (fsav104.sakura.ne.jp [27.133.134.231]) by www262.sakura.ne.jp (8.14.5/8.14.5) with ESMTP id v2OBfO30022266; Fri, 24 Mar 2017 20:41:24 +0900 (JST) (envelope-from penguin-kernel@I-love.SAKURA.ne.jp) Received: from www262.sakura.ne.jp (202.181.97.72) by fsav104.sakura.ne.jp (F-Secure/fsigk_smtp/530/fsav104.sakura.ne.jp); Fri, 24 Mar 2017 20:41:24 +0900 (JST) X-Virus-Status: clean(F-Secure/fsigk_smtp/530/fsav104.sakura.ne.jp) Received: from ccsecurity.localdomain (softbank126227147111.bbtec.net [126.227.147.111]) (authenticated bits=0) by www262.sakura.ne.jp (8.14.5/8.14.5) with ESMTP id v2OBfJE0022250 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Fri, 24 Mar 2017 20:41:24 +0900 (JST) (envelope-from penguin-kernel@I-love.SAKURA.ne.jp) From: Tetsuo Handa To: selinux@tycho.nsa.gov, linux-security-module@vger.kernel.org Subject: [PATCH] selinux: fix double free in selinux_parse_opts_str() Date: Fri, 24 Mar 2017 20:40:59 +0900 Message-Id: <1490355659-13787-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp> X-Mailer: git-send-email 1.8.3.1 X-Mailman-Approved-At: Fri, 24 Mar 2017 07:50:34 -0400 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: Cc: Tetsuo Handa , Stephen Smalley , Eric Paris MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Combination of memory allocation failure injection and syzkaller fuzzer found a double free bug. ---------- BUG: Double free or freeing an invalid pointer Unexpected shadow byte: 0xFB CPU: 2 PID: 15269 Comm: syz-executor1 Not tainted 4.11.0-rc3+ #364 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:16 [inline] dump_stack+0x1b8/0x28d lib/dump_stack.c:52 kasan_object_err+0x1c/0x70 mm/kasan/report.c:166 kasan_report_double_free+0x5c/0x70 mm/kasan/report.c:193 kasan_slab_free+0xab/0xc0 mm/kasan/kasan.c:584 __cache_free mm/slab.c:3514 [inline] kfree+0xd7/0x250 mm/slab.c:3831 security_free_mnt_opts include/linux/security.h:175 [inline] superblock_doinit+0x2a3/0x430 security/selinux/hooks.c:1165 selinux_sb_kern_mount+0xb2/0x300 security/selinux/hooks.c:2783 security_sb_kern_mount+0x7d/0xb0 security/security.c:331 mount_fs+0x11b/0x2f0 fs/super.c:1233 vfs_kern_mount.part.23+0xc6/0x4b0 fs/namespace.c:979 vfs_kern_mount fs/namespace.c:3293 [inline] kern_mount_data+0x50/0xb0 fs/namespace.c:3293 mq_init_ns+0x167/0x220 ipc/mqueue.c:1418 create_ipc_ns ipc/namespace.c:57 [inline] copy_ipcs+0x39b/0x580 ipc/namespace.c:83 create_new_namespaces+0x285/0x8c0 kernel/nsproxy.c:86 unshare_nsproxy_namespaces+0xae/0x1e0 kernel/nsproxy.c:205 SYSC_unshare kernel/fork.c:2319 [inline] SyS_unshare+0x664/0xf80 kernel/fork.c:2269 entry_SYSCALL_64_fastpath+0x1f/0xc2 ---------- selinux_parse_opts_str() calls kfree(opts->mnt_opts) when kcalloc() for opts->mnt_opts_flags failed. But it should not have called it because security_free_mnt_opts() will call kfree(opts->mnt_opts). Signed-off-by: Tetsuo Handa Reported-by: Dmitry Vyukov fixes: e0007529893c1c06 ("LSM/SELinux: Interfaces to allow FS to control mount options") Cc: Eric Paris Cc: Stephen Smalley Cc: Casey Schaufler Cc: James Morris --- security/selinux/hooks.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index d37a723..7f81d17 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -1106,10 +1106,8 @@ static int selinux_parse_opts_str(char *options, opts->mnt_opts_flags = kcalloc(NUM_SEL_MNT_OPTS, sizeof(int), GFP_KERNEL); - if (!opts->mnt_opts_flags) { - kfree(opts->mnt_opts); + if (!opts->mnt_opts_flags) goto out_err; - } if (fscontext) { opts->mnt_opts[num_mnt_opts] = fscontext;