From patchwork Wed Nov 23 22:06:45 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9444435 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 ED0DD600BA for ; Wed, 23 Nov 2016 22:13:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E6EC127E15 for ; Wed, 23 Nov 2016 22:13:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DBBA527E5A; Wed, 23 Nov 2016 22:13:51 +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]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 07F2A27E3E for ; Wed, 23 Nov 2016 22:13:50 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,540,1473120000"; d="scan'208";a="1271374" IronPort-PHdr: =?us-ascii?q?9a23=3AKI/dyxIF5n6dY2goq9mcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgQKf74rarrMEGX3/hxlliBBdydsKMfzbCJ+Pm9AiQp2tWoiDg6aptCVhsI24?= =?us-ascii?q?09vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7?= =?us-ascii?q?Ovr6GpLIj8Swyuu+54Dfbx9GiTe5b75+Ngu6oAfeusULgYZvJLs6xwfUrHdPZ+?= =?us-ascii?q?lY335jK0iJnxb76Mew/Zpj/DpVtvk86cNOUrj0crohQ7BAAzsoL2465MvwtRne?= =?us-ascii?q?VgSP/WcTUn8XkhVTHQfI6gzxU4rrvSv7sup93zSaPdHzQLspVzmu87tnRRn1gy?= =?us-ascii?q?gJLT459HzchNJ2gqxVvRmtowVzz5PIbI2QMvd1Y6HTcs4ARWdZXshfSTFPDI2/?= =?us-ascii?q?YYUIDeUBM/5Yoovgq1YAohSxGQaiC/30yjJTmn/737c33/g7HA3awgAtGc8Fvn?= =?us-ascii?q?TOrNXyMacfSfi7zKjUwjXEa/NZwyz945XLfBAmpvGMRqlwetfWxEkpFgPKklKQ?= =?us-ascii?q?qYj/MDOOzOgNsm+b7+17VeK0kGMnrg58oze1yscrkInJiZsYx1bZ/it62IY4Pc?= =?us-ascii?q?C0RUF0bNK+EJZcqjuWO5V5T888WW1kpT42x74btZKhfSUHyY4rywPBZ/CbaYSE?= =?us-ascii?q?/A7vWeSXLDxlnnxqYqi/iAy38UW4z+38UdS730hSoypel9nMqmgN1xvO6sibUv?= =?us-ascii?q?d9/lmu2TKI1w3L9uFLO1o0lavGK5462LIwipoSvljDHi/xgkn2irOZdl449eSy?= =?us-ascii?q?7uTnY7HmqoedN49ylA7+LrwjltGwDOk3KAQDX3WX9f6i2LDs40H1WqhGguUzkq?= =?us-ascii?q?bDsZDaIcobprS+Aw9Qyosj8AiwDzOn0NQegHkGI0tJdwmAj4j0PVHBPO73Deyk?= =?us-ascii?q?jlSwkDZk2/DGPrr7DpXLNXjMiq3tfbl6605C0AYz18xQ54pICrEdJ/L+QlH+tM?= =?us-ascii?q?TCAR8jMgy02P3qCM1n2YMEWGKPGbeZMKfIvlCU+O0jOe6MZJUauDzlMfgq++bu?= =?us-ascii?q?jWMlmV8aZaSp04EXZ2q+Hvt6IkWZemHhgtIZEWcLpwY+V+LriEaYXT5UfXayUL?= =?us-ascii?q?o25isnB4K+EYfDWoetjaSC3CihHZ1WYX1GB0uPEXjydIWEXOoMZDiVIs97nTwO?= =?us-ascii?q?TaKhRJM51RGyqA/6zKJqIfDJ9S0CtJLsysJ16vbJmh4u8Dx4FcOd03uCT2tshG?= =?us-ascii?q?MHWyc23LxjoUx60lqD0bZ3g/hcFdxU/P5JVho6NYLbz+x/Ed/+QAXBfs2GSFy+?= =?us-ascii?q?WNWpHSkxTs4tw98Je0t9ANuijgrE3yqxH78YjKeLBJoz8qPS2nj+PcB9x2zA1K?= =?us-ascii?q?Y/k1ksWtFPOnG+hq5j6wjTAJbEkkuDmKauaaQTwjTN9HyYwGqQok5YShV/UbjA?= =?us-ascii?q?XXwFYUvWt9v57FvYT7CyEbQnLhdBycmaJ6tWd9LmkFRGS+3nONnFf22xnGKwCg?= =?us-ascii?q?qSybOXcIrmYWMd0zvBCEIciQAc4W6GNRQiBiemu2/eCj1uFVbrY0zy6ulzs2m0?= =?us-ascii?q?QVEuzwGNdUFh0KC1+hENj/yGV/wTxq4EuDsmqzhsAVmyxc7WBMCeqApvc6RRes?= =?us-ascii?q?8y4Fdd2mLDqwxyIIagI7pkhlEAbwR9p1nu2AlvCoVcjcgqq2snzBRzKa2EzFNB?= =?us-ascii?q?cCmY0YrsNb3XLWny+h+vZrXS2lHf1taZ4L0P6PMip1XkpgGpGVIo82973NlNz3?= =?us-ascii?q?uc+pLKARIWUZLwSUY36wF2p6rEbSk55oPU02BsMKavvz/Zw9IpBe0lyhe8cNdE?= =?us-ascii?q?Kq+EEhH9E9ECDci0NOMqg0Spbg4DPO1K7q40OMemd/+Y166xIOlgmzyngH9c4I?= =?us-ascii?q?Bgzk2M7DBwSunS35YK2/uYxBeIVy/gjFe9tcD6gZhEaisPHmq70yTrHpRdabZ1?= =?us-ascii?q?fYYPFWeuJMu3y857h5LxXX5Y80KsC0kA2MC3ZRqYd0b90hFI1UQLvXynnjO1zz?= =?us-ascii?q?lwkz0wsKWf2jfDw/r8exoDPm5EWnNigU3qIYeqk9AQRFKoYBQxlBu5+Ub6wLBW?= =?us-ascii?q?pKdhIGnVWkdFZCv2IH9kUqursLqNfdJP5IkvsSVNX+S2eUqaRaLloxsGzyPjGH?= =?us-ascii?q?NTxC49dz63oZj5gRp6h3+dLHppqnrWZ91wzw/F5NPAXf5RwiYGRC5ghDnPHFe8?= =?us-ascii?q?It2p8M6ImJfCruC/V3utVpNJfint14+AszG75WJyCx2lg/+zgsHnERQ90SLjz9?= =?us-ascii?q?llTzjIrBLibYnzzau6N/5ncVdyBFLn9sp6AZ9xkpErhJ0KwngagYiV/WAbnmjt?= =?us-ascii?q?P9Vb3rj+bHUTSjIRxd7a/hTl0lV5Ln2V34L5Smmdwsx5atm0eGwW3D4978dPCK?= =?us-ascii?q?qP4rxLgzZ6ol2irQ3Lefh9hDAdyfkw53EGn+EFog0tzj+SAroKB0lXITTslwiU?= =?us-ascii?q?79C5tKhXa2avfqSq1Et+hdChELaCrxpaWHnnZpciBjN/4d9nMF3SynHz7J/reM?= =?us-ascii?q?XIZ9IJqhKUiwvAj/RSKJ8pk/oFny5nOWbjsn051+40lwZh0Iq8vIeZN2Vt5762?= =?us-ascii?q?DQRANjLrfc8T/C/ijbpGlMaMw4+vBolhGikMXJbwV/KkCjwTue7iNwmUFD08rX?= =?us-ascii?q?eaFKHFEgCD7UdqtXXPE4qkN3uPPnkW0c1iRAWBJExYmA0UWi86kYQhFgCy38Hh?= =?us-ascii?q?fkZ55ioK5l7kpBtMy+RoOAP5UmjDpQencDM0RIKYLBpM4QFI/13VPtCG7uJvAy?= =?us-ascii?q?FY+YWsrBSTJWOAeQtIC2AJWlCDB134P7mh+8fP/PaCCuq5NfvObq2EqfZCWPeQ?= =?us-ascii?q?2ZKvzoxm8i6ROcWUIHZtFfI72lBZUnBnAMnZgC8ASy8KlyLXdcGXvhO8+jBxrs?= =?us-ascii?q?+l6vTnQR7v5YyMC7pSNtVj4Ra2jrmfN+SIniZ2NS5Y1o8QxX/P0LUfx0Qdiz90?= =?us-ascii?q?eDmiD7sArjXATLnKla9JFREbZD18NNBS46I6wAZNJdbRisnp2b5gkv41F1BFWE?= =?us-ascii?q?T6lcGoaswKJGe9OUjaC0mVL7uGJCfEw8ftbaO7U71Qg/1etwestjaDD0/jIjOD?= =?us-ascii?q?miHzWBCgK+5Mkj+UMQdZuIGlbBltD23jQ8jnah2/K9B3ijI3zaczhnPQOm4WKS?= =?us-ascii?q?J8fF9Vrr2M8SNYhe1yG3BG7npgN+WEgSGZ7ujGJZYQqvRrGCN0mPxZ4Hkh17RV?= =?us-ascii?q?6yRES+BvlyvJst5iuVemnfeTyjB/ShpBti5LhJ6XvUVlIajZ9ZlBWXLa8x8W6G?= =?us-ascii?q?WQDBoKp9V7Bd3zp6BQyt/PlKftJztY9dLb49ccDdDOKM2bKHohLQbpGDnMAQsE?= =?us-ascii?q?Sz6rKX/Qh0hDn/GX6HKVsoI6q5j3lZoJUr9USlo1FvYABURkGNwNO5B3Xzw+nb?= =?us-ascii?q?6cls4I6mK0rAPNS8VCopDHSvWSDO3pKDmHl7ZEYwAFwbD/LYQIKo30wUpiakJ5?= =?us-ascii?q?nITLAUbQW85CojF5ZA8uvEpN6GR+TnE020/9cAOi/mQTGuCukR4slgR+Yf8g+y?= =?us-ascii?q?zt41ctO1XKoyUwkFErmdr7gTGdajjxI7msXYtOESr7q1AxMo/nQwZydQC9gEtk?= =?us-ascii?q?NDHCR71MkbRgcWFrhRTGtpRRA/5cSrdIYBgKxfGYf/8oy0hTqj27xU9b4uvIEY?= =?us-ascii?q?ZtmxE0cZ6tsn1AwBluY8QvJazKI6pIwENQibySsS+1zOAxwRMeJkYX/GOUZiEI?= =?us-ascii?q?pFQCNqM6KCqw4uxs9QuCliNNeGgWSfUlv+lq+Vk7O+ScyCLgyKVOJVqtOOyaNa?= =?us-ascii?q?+ZvHLAlcGQSFMqykwIj1VF/aRx0co7d0qUUFovw6WXFxUIMsrPMg5Vb8xP9HTJ?= =?us-ascii?q?eiaOq+rNy4pvP4qhDuDoUfOOtKEMj0K/AgkpG4UM7sIcHpijy0zXMcDnLLsZxh?= =?us-ascii?q?o3/wTrOE+JDPJXdxKXiD0Hud2wzIdr3YlBITEQGWZ9MT+357nNoA8qnPqDUcw5?= =?us-ascii?q?YncdRosLKmg6WMuklC5Fp35AFiW40voFyAie6D/xvjjQDDj5b9pkePeUZRNtBc?= =?us-ascii?q?qr9jU+86m5k0XY/o/YJ27kKdRoosXP5v8Cp5abF/NUSqFws0fbm4ZGSXylTXTP?= =?us-ascii?q?HMW0J5fudYYjc8b4CnGgUlywkzg1Vdv+PM6xLqiUhgHlXZxbsI2a3D8/K8CyDj?= =?us-ascii?q?QeGhd2p+EE4qJzfxYObIE6YRHysQQyLqK/IBqC3tWoXWmtNSNcT+NDwuWie7xX?= =?us-ascii?q?0y0sY/ehx3Q+SJE31PO4/lMTRJ4UlBHe3uysZ5NeUCTpHXxdYQrPrzIjl2d9Lu?= =?us-ascii?q?Yy3vs/wBTQvFkTLjCLdehpaGhasNE5Hl6dPGt5BXE5R1CGi4rP+Ams36od/yFF?= =?us-ascii?q?hdZbzfVFsGTivp/YeD+sQqqrqZTJvCogatgmp7ZxP5T6LMWbrp3TgjvRQYLMvQ?= =?us-ascii?q?2CVS61C+BVmsNMIC5CRvlHh30lM9QcuYVd8UoxSts+J7tXBak2u7+ldCFpDSEX?= =?us-ascii?q?zS4WTY+A2iINgvuk0bvAihiQaIgiMAADsJhantQdUTR5bT8FqaC/UIXWk2uESm?= =?us-ascii?q?kVLwcJ8QRD+h4Plo9qcuDi+orIQ4dGyyRKrPJsTivLCp5o+kPhSm6Mm1j4T+6u?= =?us-ascii?q?nve13QJI1v3szMcUWBp+CUhbyOZWkkooKL53K6kMsI7FqCWIdUbgsGLr1uSmOE?= =?us-ascii?q?FbydfIeF3gEIrFqW38XzUc+HIOXo9A0nTfFZUUkwdiaaYruE9DIJu6dUnk/TAk?= =?us-ascii?q?wZpmH6WgX8Cx21kltWoGRzutE9dZBeBqqk7YWD1kY5CuqZXqIZZST3RR+JKDtV?= =?us-ascii?q?hWjl9hMymjyZpTM8tN+CIDXCBToTWBu9u/UNdM2dVrD58KONt/uGzwGKJFOJiQ?= =?us-ascii?q?v305oabjynnH9DAgqF263im8G7ekT+JF+G0TAgopJ36EpUkpE+sh6WbS8lfDs1?= =?us-ascii?q?By4+dbBqaAjUR3oDZhAJ9OHCxF1Xa7IFRvVHNGqflVKLzJc8xARPk/fQOvOxs7?= =?us-ascii?q?FfM9w0yF4UR0kmzjbyx0qARa5zjXXxMoWikNnrfthToep9mnOTAAUZJHdzEhYD?= =?us-ascii?q?reJg2Ghy9XpA5fZF9uW58HGNZJ4bYb3ZFb/sDaU0ajNTkFXAB+NgI/yfdfl0lD?= =?us-ascii?q?v1uDdC/AEwWobujAsgdrfciPscGlNvL58xlbion/quA3670DR2G6mQ2qWd3RtI?= =?us-ascii?q?H8ucGWukaMaav1PfaxbmPGTDjJkR+/n6wkD4XQ8yjVLgVbN4FwyWA4bpj5FW7L?= =?us-ascii?q?IRNGKroBJ0VFSK96ac9JovxBas9gf6YJ57FiCgybSRPoBYOgsuNKLlDNSjTCNy?= =?us-ascii?q?+B6PCwoZrP7bzBTujtftSMx23bQ61tI5h69SL2G6zt0Y9D4Er5xuli9kVmSVjc?= =?us-ascii?q?KS+BqM7tJgQR5MmtbkHipIEmHSvKAJdsl3rg3l1Ad9AJTCK07ZsV045Z6HLsSe?= =?us-ascii?q?JiyEfzruxS975g6YYp/7Bl08C0Jb3dKf5Cq09oHgCUBhl29pUqGGVwWmZRbfUK?= =?us-ascii?q?JfjMe6QWl9riq+ftF6wY8BeV4fBWacPbJ0HdncmyEjOcRgZenAcGsj4aKhGT1+?= =?us-ascii?q?Celq9xVMalofT52kMx7Fi/NBEGyqtt6Z2D+qqSq+/ddwHRwqQcWqj2WsPzqawh?= =?us-ascii?q?u0GI6v0imr4OYGt1bBC5H+UGSs4S3GHgzbstzS42FcPMAa7g8uZZV30lhjLgh4?= =?us-ascii?q?x9H1IOF/MSGbqG5oVenmE9m+DDN90WdK5CmnyVGh6/Dr8C02Or5DeLIGl4mBHB?= =?us-ascii?q?zQv8QWSp7F/5tSV4WzfDz8//kkpJUbm6HUFSXyu1Nk9/tDOAJhHouMD2uaQy60?= =?us-ascii?q?E2KXfkucmIlGauN7JbBcr/JMaTISMsvlIYkIUxRsCz2YAcAdeyPM0e8HVgYfvF?= =?us-ascii?q?92OqkyhBrrxch4XC48Ga5PPXHWWhj6KAsbmNwi5XymQgt1El9t+gLu3O58GNQ/?= =?us-ascii?q?mw02YRVCJ/tgvaUh67tLPUslcUOVaR30fTgowKOdNZ0mck2UH6/uQjR8gz9ApG?= =?us-ascii?q?HIbae/wCvSzzOCfzwVuHZtI3UjeR0z5QHl3rFVl1A6c813z3vMLSjXff4UEoRo?= =?us-ascii?q?hqeEzjhBx3CZk4Jlwp6FgTwyoDHhYCaRaHA762H0jlK5ULVVQbYxSdwLe6Yrs3?= =?us-ascii?q?3VF0wr635u/TbOl8CrEINvlDjg+BgkJbGpMQsa0RWr58fUFS9LLPrAj4F4fnR+?= =?us-ascii?q?TmlWY3NfCtQ8Bb8NoWuGE+7QukXBqv94tD4KgHh5ySca5Ee5fMtthm70h7/T4P?= =?us-ascii?q?ajBNgB9nghyiUOAcv+7i7cLZsJqp9uauTLwiR/gT9xUvG2t+iIb/j045rtHKze?= =?us-ascii?q?dcTZfVhp7l/ABKOX6Kt57Q0wNgJuoWN4KrYLFg+m0fJycEO3IBIdqWavc74y93?= =?us-ascii?q?MzXf/kdCDd0IZdMZOsrNhA9Vh1bxWL5J6srUBl+YCol0d8Ay7Gr70jM1/oUmUu?= =?us-ascii?q?bm9jC2IYrT71ZXP/NMlC9sjs7NpPAJwfrODyga+WWZawJrzSOG0ZaNDej/8P6R?= =?us-ascii?q?x9HVWFMGHzI2XJ1GJDWY4wynW/C5lJP3XQOI8sXzmo4xdFqMRnytm6QIqqlMHv?= =?us-ascii?q?RaiirlwjheFpv4h/aUs9qw9mRXtkdIEJto7RHfHqVQIIl7Mwzilsa3Xkh8Gjf/?= =?us-ascii?q?eMbMexohpuWWwPsM4+J5N0f5fo8UPBYEy7P86XpIQQpjU7r2sUiDXeMRftRqUv?= =?us-ascii?q?XEoW5J6Yh4Ma8AIECdpID2rjdPsF02BQgpaLksrjxVaEbDhwhVW6fut74GlAQc?= =?us-ascii?q?TdB4uUhWGWKzI2Iy/TzHWrpJjKOJEvwa7i2TTrASU0VvKi5+TA+62I51e7ewgP?= =?us-ascii?q?5JvWVIniJ7oPg33D1rXxS8uSj2qKILxz0s4ra4tC8OuXZdVOWRjz/ICUlfzPQN?= =?us-ascii?q?laocCXHi6Vy6YHUZcITy4L1nJdn9+ogg4nQ/Zw4jfy4HXem7FSHwjr2IDZaLsN?= =?us-ascii?q?1BhR6BosPOYqGvLSIKLLQy1QrjR2Rh0gjZhBto8XULTS+m7NI/IIW9JNsqxiuv?= =?us-ascii?q?GWjAbloM5blJsMTpv14RUOQ2cU9hwHlk0sWfRC0CWsLPG2gxjgU/Z2RLapRD5g?= =?us-ascii?q?EGF6UyhDaHoLVG9BkOYDjICoSl5pXQncDQ1HkySddqwWzXqbOBhpMuy3BlgNR0?= =?us-ascii?q?7iiPuHsObeDYVdFjAmTr3IdF1eP+f+mtsvwASIZ+yrShUP8DMtGk+Wuy2ZVqRl?= =?us-ascii?q?Gqy68bH1q4LO8D3KnUXz2iSW2CVuSBa3KMkCohMk7u+RmoKUU6aNtLr084KebC?= =?us-ascii?q?mp9cmBHiUbxqQiWcv1nbw3I/MekCbQI5pJ+nexAWTO4Wf+WcIOkuwP49CFsLdH?= =?us-ascii?q?LJHzF5C+yxsV6rgod7PW9s4UPkbuTx6grmKsedGgEYEY7GqZ584ee1SXyHOX98?= =?us-ascii?q?1xByJ0109+DDF1QtqO9TbYuekcLXh9Rh3u4Pb+1tPjElut4PhoJj7pGZ0N+NcR?= =?us-ascii?q?HV1JnyP9/Uov+cA/3R1Ekqf2ZaUr0CYQzr+4o6JNk5W6bIHbtYuxQcCrI2QJs7?= =?us-ascii?q?N2f+7Kt0Nh98chbNZLSohcnnvuyLaYVQp3/X9lI/MjzRuhwCyvyxSAx0cYqqh3?= =?us-ascii?q?HsL5wqQTJBtdJtAAN8HIRTA8MAsxanA5mMlaG7l9+x+0R6u+oQvqrrEf3K0dW5?= =?us-ascii?q?35lrX5dE/0CLOyzRBKZziER/kuuymuvA0oX2Cc76d9IETPJ7Qm/ZZbDYBYi/Lz?= =?us-ascii?q?OOOt7me0FY6bKc16h5UhqJbiDjQ6WGrDGkNOlj4UgjzYx4ePTcwSc177HfwtTy?= =?us-ascii?q?fH1bpia/on6VLptQ8kLFCfbYXx1KVfqP6HxlErEPbYvo6OcONsQvwNyd4wl18T?= =?us-ascii?q?RD39KJI6ygrk/XxkJ7bonWLErz1CY/XokGOhO/MVEjgWXBsHTSHWxcLtS4Kclq?= =?us-ascii?q?mNuVFQLi501wmWEre25AFW3kS9iNOWgbxc2+fhOF9BpRANsYnO64Z1Q4tqusRu?= =?us-ascii?q?lsIZpFhOqquK8AkdZzJCHFXNJaMD3ILL9qIjpRCf3CpFwpYh4fr7g4QYY0ZYGI?= =?us-ascii?q?IEwdKkuAzz39zRfa203ua9OszLqJIDoR8nhfyrLKyyRDpwm4ufafhc3uS67ZbJ?= =?us-ascii?q?DwXPHMNColVzeaRSk9EEqz/lekofUEtuKCIWgDulAUfj6SCAkLq6Btt9fQDWjT?= =?us-ascii?q?lvZ4cZ0XgvCaRyDwSCpllKo9BiZLqVqAQ/wdGgnKd3XhmnZTuBS+Jv9Q+nLod7?= =?us-ascii?q?KYybBOVOwMA4tDbPmZTsDGefBaPTgojTQZOPumc93asbk5zkrCTXEFHKnQ6F2e?= =?us-ascii?q?UEmWT+SexzLuWoUVpZI0uisz+t/LmC94CaHIMKiepzK09Y64limYs/XEVmYxe0?= =?us-ascii?q?w1nP4CAG6ZzRZeKmEEDNEVuEf2Qq6HYUZBz30pifhz2x8SZgtzSGdi0ntIk/ah?= =?us-ascii?q?AsdZU0IbjHuyQP0aa1B6FCgw/UGP4gLuYNENutveR3FA+bsWSIocLf4o6I/NNK?= =?us-ascii?q?sW3vkpwCpsoDYmvCWFE1NdkgWF/rLSHKJ7wL1C4XI1//RoUU6STTPfdXLHxZa4?= =?us-ascii?q?BM5Vwydhv2zkhILoubV2Ob9boZxpKEsbCiJxYNbG9HZOVn+n9hG1ukOdHT+ZJD?= =?us-ascii?q?sCqBcMIjcePrJzzuR8tB/TMNfG7liLn6d9uA2sEwndWen844BCFsy8jVbwUiJM?= =?us-ascii?q?azj+Uskupw=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2F7BQCSEzZY/wHyM5BeHQEFAQsBGAEFAQsBgw0BAQEBAR+?= =?us-ascii?q?BWqUAAZZHKYgjUwEBAQEBAQEBAgECXyiCMxqCHAIEAQIkExQgDgMJAQEXKQgIA?= =?us-ascii?q?wEtFREOCwUYBIhMBAGwNz0qAoNoh3iGPoh0AhEBaIUVAQSaT4F2jn6KKoYTSZE?= =?us-ascii?q?tVV4XPYUrcYYIDxeCFwEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 23 Nov 2016 22:13:48 +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 uANMDiMc025602; Wed, 23 Nov 2016 17:13:45 -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 uANMDgn5049154 for ; Wed, 23 Nov 2016 17:13:42 -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 uANMDbNj025594 for ; Wed, 23 Nov 2016 17:13:42 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1DmAAAUFDZYhyIeaIFeHAEBBAEBCgEBgzgBAQEBAYF5pQABkj6ELYgoUwECAQEBAQECEwEBAQoLCQkdhRkGJ2JRVxmIbQQBsDg9hBSHeIY+iHR8hRUFmk+Bdo5+kD1JkS2BSoMcDIJAcYYIgj0BAQE X-IPAS-Result: A1DmAAAUFDZYhyIeaIFeHAEBBAEBCgEBgzgBAQEBAYF5pQABkj6ELYgoUwECAQEBAQECEwEBAQoLCQkdhRkGJ2JRVxmIbQQBsDg9hBSHeIY+iHR8hRUFmk+Bdo5+kD1JkS2BSoMcDIJAcYYIgj0BAQE X-IronPort-AV: E=Sophos;i="5.31,540,1473134400"; d="scan'208";a="5841783" 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; 23 Nov 2016 17:13:42 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3AvW2G+hUGazCJfl/E/c+PyI+3C+/V8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYYx2Et8tkgFKBZ4jH8fUM07OQ6PG7HzZfqs/c6zgrS99lb1c9k8?= =?us-ascii?q?IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBo?= =?us-ascii?q?KevrB4Xck9q41/yo+53Ufg5EmCexbal8IRiyowjdrNcajIltJqosyhbErGZDdv?= =?us-ascii?q?hLy29vOV+dhQv36N2q/J5k/SRQuvYh+NBFXK7nYak2TqFWASo/PWwt68LlqRfM?= =?us-ascii?q?TQ2U5nsBSWoWiQZHAxLE7B7hQJj8tDbxu/dn1ymbOc32Sq00WSin4qx2RhLklD?= =?us-ascii?q?sLOjgk+2zRl8d+jr9UoAi5qhJ/3YDafY+bOvl5cKzfc9MXXnZNUtpLWiBdGI6w?= =?us-ascii?q?c5cDAuwcNuhYtYn9oF4OoAOmCwmtGOzvzTtIiWXt3aYn0OohFgbG3Bc7H9kTt3?= =?us-ascii?q?nUqtT1O7sVUeCx1qbI1i/Pb/JR2Tf684jIaQssofSDULN/a8bRzlMvFwzcg1iW?= =?us-ascii?q?tIfrPCuV2/wQv2SF6+dsT/+jh3Iopg1rrDWj2t0gh4fGi44NyV3I6D91zYc0KN?= =?us-ascii?q?GiVUJ3f8KoHIFOuy2GNYZ7RN4pTXtytyYg0LIGvIa2fCgUx5QjwB7Sc/mHcoeV?= =?us-ascii?q?7h75TOaRJjN4hXJ5eL2hmxmy8U6gyuzlVsmpzllGtC1FksPDtnwV1hzT7NaISu?= =?us-ascii?q?dl80u8xzqC0xrf5vxYLU07j6bWJYItzqQ+m5ccqUjDGzX5mETyjK+YbEUk/e2o?= =?us-ascii?q?5vz6bLv6u5GQK5d5hBrxMqsumMOyGeU3PAsWUmie9um926fv/UrjQLVFlvA2lK?= =?us-ascii?q?jZv4zdJcQfvKG5GBVZ0ock6xa4FDemy88VkmIALFJYfhKIk5bmO0rULPD9Avq+?= =?us-ascii?q?jE6gkDBxx/DJJrHhGInCLmDfkLf9erZw81VcxxQ3zdBe4ZJUF74ALenvWk7xqN?= =?us-ascii?q?PYDhg5Pxayw+b8EtpxzIweWWWRAvzRDKSHqlKM5+QyM8GQdYQVv3D7MPFj6Pnw?= =?us-ascii?q?3lEjnlpIW6ii2p8ecziZGfN9OA3NZ3vnhdMICiELuQ0lV8Tv1E3EViRcMSXhF5?= =?us-ascii?q?kg7y02Xdr1RbzIQZqg1eSM?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GSAQCSEzZYhyIeaIFeHQEFAQsBGAEFA?= =?us-ascii?q?QsBgw0BAQEBAYF5pQABkj6ELYgoUwEBAQEBAQEBAgECEAEBAQoLCQkdMIIzGII?= =?us-ascii?q?eBidiUVcZiG0EAbA3PYQUh3iGPoh0fIUVBZpPgXaOfpA9SZEtgUqDHAyCQHGGC?= =?us-ascii?q?II9AQEB?= X-IPAS-Result: =?us-ascii?q?A0GSAQCSEzZYhyIeaIFeHQEFAQsBGAEFAQsBgw0BAQEBAYF?= =?us-ascii?q?5pQABkj6ELYgoUwEBAQEBAQEBAgECEAEBAQoLCQkdMIIzGIIeBidiUVcZiG0EA?= =?us-ascii?q?bA3PYQUh3iGPoh0fIUVBZpPgXaOfpA9SZEtgUqDHAyCQHGGCII9AQEB?= X-IronPort-AV: E=Sophos;i="5.31,540,1473120000"; d="scan'208";a="1030833" Received: from mx1.polytechnique.org ([129.104.30.34]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Nov 2016 22:13:41 +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 58949564A0E for ; Wed, 23 Nov 2016 23:07:37 +0100 (CET) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 4/5] libsepol: check decl_id bounds before using it Date: Wed, 23 Nov 2016 23:06:45 +0100 Message-Id: <20161123220646.23504-4-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161123220646.23504-1-nicolas.iooss@m4x.org> References: <20161123220646.23504-1-nicolas.iooss@m4x.org> X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Wed Nov 23 23:07:37 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 loading an invalid module which uses a declaration ID 0, semodule_package crashes in policydb_index_decls(): p->decl_val_to_struct[decl->decl_id - 1] = decl; gdb shows the following stack trace: #0 0x00007ffff7aa1bbd in policydb_index_decls (p=p@entry=0x605360) at policydb.c:1034 #1 0x00007ffff7aaa9fc in policydb_read (p=, fp=fp@entry=0x605090, verbose=verbose@entry=0) at policydb.c:3958 #2 0x00007ffff7ab4764 in sepol_policydb_read (p=, pf=pf@entry=0x605090) at policydb_public.c:174 #3 0x0000000000401d33 in main (argc=, argv=0x7fffffffdc88) at semodule_package.c:220 Change policydb_index_decls() to report an error instead: libsepol.policydb_index_decls: invalid decl ID 0 Signed-off-by: Nicolas Iooss --- libsepol/src/policydb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libsepol/src/policydb.c b/libsepol/src/policydb.c index f9b2ec379c33..38c38f42cd2d 100644 --- a/libsepol/src/policydb.c +++ b/libsepol/src/policydb.c @@ -1011,7 +1011,7 @@ int policydb_index_decls(policydb_t * p) { avrule_block_t *curblock; avrule_decl_t *decl; - int num_decls = 0; + unsigned int num_decls = 0; free(p->decl_val_to_struct); @@ -1031,6 +1031,10 @@ int policydb_index_decls(policydb_t * p) for (curblock = p->global; curblock != NULL; curblock = curblock->next) { for (decl = curblock->branch_list; decl != NULL; decl = decl->next) { + if (decl->decl_id < 1 || decl->decl_id > num_decls) { + ERR(NULL, "invalid decl ID %u", decl->decl_id); + return -1; + } p->decl_val_to_struct[decl->decl_id - 1] = decl; } }