From patchwork Mon Feb 27 22:16:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William Roberts X-Patchwork-Id: 9594327 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 3EF0A604A2 for ; Mon, 27 Feb 2017 22:16:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2E64E28179 for ; Mon, 27 Feb 2017 22:16:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 22D5828492; Mon, 27 Feb 2017 22:16: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.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=no version=3.3.1 Received: from emsm-gh1-uea10.nsa.gov (smtp.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 C8A5928179 for ; Mon, 27 Feb 2017 22:16:48 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.35,216,1484006400"; d="scan'208,217";a="4300786" IronPort-PHdr: =?us-ascii?q?9a23=3ApRH8RB/+ZGhvZv9uRHKM819IXTAuvvDOBiVQ1KB5?= =?us-ascii?q?0OsUIJqq85mqBkHD//Il1AaPBtSGragbw8Pt8InYEVQa5piAtH1QOLdtbDQizf?= =?us-ascii?q?ssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1?= =?us-ascii?q?JuPoEYLOksi7ze6/9pnTbglSmjawY655IQmrownWqsQYm5ZpJLwryhvOrHtIeu?= =?us-ascii?q?BWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbO?= =?us-ascii?q?SxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDtU7s6RSqt4LtqSB/wiS?= =?us-ascii?q?cIKTg58H3MisdtiK5XuQ+tqwBjz4LRZoyaOuB+fqfAdt0EQ2RPUNtaWyhYDo69?= =?us-ascii?q?aocCCfcKM+RFoInnv1YBrxW+CwmiCu3s1zFGmGf20K8n3+kvDQ7JwhcgEskLsH?= =?us-ascii?q?jIttj4LrseXfy3waTO0D7Nb+lW2TD46IXQch8hoPWMXbZxccXLzEkkCh/LjlKL?= =?us-ascii?q?poP7JTOVyv8NuHWc4uV7VOKvj2onpxttrTS13McsjZLGiZwPylDY7iV024k1Jd?= =?us-ascii?q?iiR056Zd6oCodftyafN4ZvRM4pXmJmuD4ix7EbtpO2czIGxZQ6yxLFdfCKfJaE?= =?us-ascii?q?7gj+WOqJIzp1i2hpdK+hixuy60StyfPwWtOp3FtOoSdIlMTHuGoX2BzJ8MeHT+?= =?us-ascii?q?Nw/kKm2TmSyQ/e8vpEIUUolarDLJ4h36IwmoITsUvdGi/2n137jLOMeUU+++io?= =?us-ascii?q?9v/nbq/6pp6cK4B0igb+Pr4omsOjGuQ3LhICX22a+eS4zLHj/Ev5T6tWjvAuj6?= =?us-ascii?q?XUv5/XKd4bq6KkGQNZzIku5wilAzu7yNgYmGMILFNBeBKJlYjpPFTOLejjDfih?= =?us-ascii?q?h1SskTFrx+3JP7H4GZrNKWXDkLH9crlj8E5R0xYzzNBD6JJUDbENOvTzWlTru9?= =?us-ascii?q?DCAR85NBK0z/79CNphzoMeRX6PAqiBPaPQtl+I4PggI/WMZIAPvjbwMPol5/no?= =?us-ascii?q?jX88g1AdZrWp0oUNaHCjBPhmJF+ZYXX0iNcbDWgKphY+TPDtiFCaUz5TZWy9UL?= =?us-ascii?q?4/5jEgD4KmC4bDRp62jbyP2Ce7A5JXaXtbClCKDXfoap+IW/AWaCKdOsVhiCAL?= =?us-ascii?q?VaC9S4890hGjrBf6xKR8IeXK/C0YtI7j1N9u6u3Six496yJ7A96a02GXQGF+hn?= =?us-ascii?q?kISCMu3KBjvUx9zU+O3rV/g/xeE9xc+u1GUgM7NZPH1eN1FcryWgXbcteOUlam?= =?us-ascii?q?Tc2sASstQdIp398Of0F9Fs2/gRDfxSWqGaQYmKCMBJwx7q3TxWPxJ9pnx3bAyq?= =?us-ascii?q?Yhk0EsQtFTOm2+mq5/6w/TCpbIk0Wfi6ala6Ac0zDI9Gid0WqOpkFZXRV3UaXd?= =?us-ascii?q?Q38fYE7Wos745kPGVLCuDrsmPhFGyc6YJatAcsfpgkleRPf/JNTeZHq8mmexBB?= =?us-ascii?q?aPwLOBd4/qe2EE0CXcDkgIiQYT8mycNQg9ByehvXzRACZoFV3xf0Pm6fN+p2+j?= =?us-ascii?q?Tk8o0wGKaFVs2KSt+hEPn/ycSugT06kcuCg7sTV0HU2938rSC9WauwVuYr9QYd?= =?us-ascii?q?Qn4FdIzWjZrRByPoS8L6B+gV4Tawp2v0Lq1xVyFIpAi9MnrH00wwVvLqKYyklO?= =?us-ascii?q?dyuC3ZD3OL3YNHX9/Ay1Z67RwFHe386c+r0T5/Qgt1XjoAapG1Is83V9ydZV1W?= =?us-ascii?q?eT5pTRDAcJVJLxSkc3+wFhp7DUeSkx/YTU1WdjMaOsqD/Nx8opBPc5yhanZ9pf?= =?us-ascii?q?M7mLFAz1E80HHMWuK/Ylm1uubhIZJuxS87Q0P8y+ffucxKGrJPpgnC6hjWlf+o?= =?us-ascii?q?9yz1iM9ytiRe7SxJsK2e2X3g6dWzf7llehvdj9mZpYajEKAmq/1S/kCZZNaaJo?= =?us-ascii?q?eYYEF3yuI9G3x9V5nJPtQGJX9F+9CFMAxM+peACdY0b73QJOyUQduWanljegzz?= =?us-ascii?q?xojzEpqbKS3CzQzOTmcBoHPXVGRG1/jVfwJoi0isoVUFKvbwgzmxuv/Vz6yLRD?= =?us-ascii?q?pKRjM2nTRl9FfzP4L2F4VauwraaCbtVU6JMutiVWXuG8bkqcSrLnpRsVzT/jFX?= =?us-ascii?q?NExD8nbzGqpon5nxtihWOTNnlzqGbZdt9qxRfE/9HcW+Be3iAdSylljDnbHF+8?= =?us-ascii?q?P8Om/d+MjZfMrvi+V369Vp1UaSTr0Z6Puza65WJwBR2yhOy8mtriEQcmyyD7zM?= =?us-ascii?q?VqWT/OrBnifonhz766Pv5/fkl0GF/87NJ3God/kos0gJEfx2Mai46P8nUZi2fz?= =?us-ascii?q?Ns9X2aXkbHoCXTQL2cLa4BD52E1/KXKE35z5VnSBzct9YNm6eHka1T4978BNDq?= =?us-ascii?q?eU46dJnS90olq+tw3Re/99ki0ayfs0534Qm/sJtxY1ziWBHrASGlFVPSjtlxST?= =?us-ascii?q?89Cytb5Xa3ircbix0kp+gN+gAaqZogFEWXb5fJYiEjNr7sllNlLDzmHz4Jn+eN?= =?us-ascii?q?bMddITqgGUkxDYguhPL5Ixkv4KijR9OW3hun0kxfU2jQdz3Z6mp4iLMWJt/Li2?= =?us-ascii?q?AhRALD36e9sT+i3xjaZZhsuWx5qgHohlGjkRRpTkV+mnEDUWtfT7MAaOFiYxqn?= =?us-ascii?q?KHFbrZGg+Q9F1qr3TRHJC3L3uXPmUWzc1+RBmBI0xSmAMUUys8np4iDQ2qx9Lu?= =?us-ascii?q?cEFi5jAX+FH4tgFAyuVyNxnwSm3fvhunai8oSJiDKxpb9hlC6F3IMcya8O1zBz?= =?us-ascii?q?tX/pu9rAOTMGyWfBlIDXoXVUyeHFDvJKKu5d7d8+iCGuWxMfXOYbKUqexRSfiE?= =?us-ascii?q?35Sv3ZV6/zyULMWAImFiD+En2kpERX15BcLZlCgURiwJkSLCcs6bqA26+iJpss?= =?us-ascii?q?C16O7rVx735YuTF7tSNs1i+wisjqeeM+6dnzp2KTdE1pIM3HPIxqIQ3FgIhyFp?= =?us-ascii?q?bTmtHqwKtTTRQ6LIhq9XExkbZjtwNMpI66IzwBJAOcvcitP72L53kOI1C0tFVV?= =?us-ascii?q?zmn8Gme9YGI2ejO1PbHEyLLqiJJSXXw8HrZqOxUbNQg/9Stx2svjabFlTuPjqd?= =?us-ascii?q?mDb0UBCvK/tDjDmBPBxZuoGybApiCXT5QNLhcB27P8d9jScqzr0smnPKKWkcPC?= =?us-ascii?q?BhfENLtLKd9j5XgvNlFGBb6XplN+aEkT6D7+bEMpYWredrAiNsmuJA/Xs11qBY?= =?us-ascii?q?7C5BRP16gifSqMBho02+mOmV1jVnSAZOqipMhI+Tp0VuI6vY+oNFWXne+BIN6m?= =?us-ascii?q?WRBg8QqNR5D93joadQysLAlKjrMjdN78rU/dcAB8jTMM+HPmAhPgT0Fz7PFgQF?= =?us-ascii?q?SyKrNWbEh0FGiv6d6niVooI9qpj2l5oEUqVbW0AtFvMGFkRlG8QPIJFtXjw+ib?= =?us-ascii?q?6blNUF5XS/rBnLX8Vaop7HVvOUAfr1LjaWkbhEaAEMwb/iKoQTLIL70VR4alZm?= =?us-ascii?q?hITKB1bQXddVryJ8dQ87vl9C8HdkTmIpxULocRit72UQFf6phB45kBFyYeAw9D?= =?us-ascii?q?fq+Vg3PEPGpDc3kEkymdTlhiqdcDjvI6esRYtWETb7t1AtMpPnRAZ4dRa9nU1r?= =?us-ascii?q?NDfDQbJclKZven5whw/do5RPH+RQTapeYB8f3fuXfekn0UxAqiW7wk9K/fHKCZ?= =?us-ascii?q?R4mws0b5GhtHVA2xp9Y94zIKzfPqtJzlxLiaKJsS6kzOcxwBURJ0wV6mOdZDYI?= =?us-ascii?q?uFAUNrkhPyeo4uts6QmYlztZf2gNVuQlovRx+UMnPOSP0SHg3qVfJUC2MuyQM7?= =?us-ascii?q?mWu3PclcKSRFM/yF8InVFf/bdqyccjb1aUV0c3wbuXCRsGL87CJBpWb8pV73jT?= =?us-ascii?q?YTyBsePWwZJ2PoWxDOboQvGStKwMmEKrAB4pH5gQ7sQGBpSsyl/XLdz5I7Ef0x?= =?us-ascii?q?Ui+ATrKU6eA/RIYhKEjTAHo8+nzJ9tw4ZcJisRAWNjPiWr/rzXvBMlgOKfXNcq?= =?us-ascii?q?ZXcXRpYLOWgoWM27hiFZpG9NAyOt0uIDzwiD4ST8qTrMAznhddpjZeuUZBN2BN?= =?us-ascii?q?Gw5zo/77C8iUTL/ZXGO2H6KdNit8fL6eMdvZaIFfVUTLh6s0rHlIlYQWGqX3TI?= =?us-ascii?q?Ed6vKJj6c5MsYsDsCnamTly/jCo4T9zvM9apL6iIhxzoRIlPvYaH2zAjMNOyGS?= =?us-ascii?q?sFGxdsve0D4rxzZREbaZohfRHorxg+N7C4IAqAz9qhX2OtKTxQT/lD0Om3fKJX?= =?us-ascii?q?wDQ2bu+7yXogSZc6w/Ox8UETWJEAlgveyuq7Z4lCTSjzHWRQewbVpSs5jWdhMP?= =?us-ascii?q?oywuckzRPHtlkcKyyEePZvaGNao9E2HUmSLmluCmokW1+cipLO4hKt37AX+Ctd?= =?us-ascii?q?g9ZU0O1evXfjv5/eYCijV7expZXTrSUgccAso7dtPoz7PsuGqJTekyTQTJnKqA?= =?us-ascii?q?KFVjK6GuFbmthXLiNYRuVImWE7NswHv4pB9VQ+Vt0kK7xJFqYsuqigaSB4Ai4K?= =?us-ascii?q?0S8ZS4SA0SQYjee42rvVigmff4wnMB0EtpVChd0dXDRtbywFpa+sTYPWm3aKSm?= =?us-ascii?q?gWOgsT6xpD5B4YnI9qYu/l+JbITINLyzNOuP17TC3LG4Jy+FTmVGGZn0L4SO67?= =?us-ascii?q?nOyz3QNe1vXs0sMUWBRnE0hS2/5Wllc0KLFwM6QQpIjKsj6UekP6u2LtzPCmKk?= =?us-ascii?q?FIx8PJbVP1EI3LuHHgXS0b/H0bWZVAyGrDFZgIlQp2drorrk1WII+6Ykb++yAk?= =?us-ascii?q?x4NxErakV8Ck3UoqoG0aSCetF9pBD+Bmv0zNWD15fZ+ktJXlN49VQm9K952Xs0?= =?us-ascii?q?1Zn1l1My6l1ZpcLNlA4iQWUzhVpjWSp8C/SNFZ2cBsEZ8DPNN/u3b7GKNLPJiR?= =?us-ascii?q?onI2urzzyn/X4T88qlK6yC+1G6CmU+JT53ceFRkxJ2SCtkkvCPMh82nI/l/Rsl?= =?us-ascii?q?B0/uJbBrmVgkVyuzt9H45BCShX2ny/KFRzVnZGuf1AKKvJa8xcX+UyZRi3Nhwm?= =?us-ascii?q?Ev4m21aG/Vt6nHf+ZyxyuBBX+yXaXwkzTikanKvimScZqsG8Ij8aSpRIbTo7Yy?= =?us-ascii?q?fCMQKbljhdvAxDZEFyR5AZHtFF9qkB0otO48rCT1ygKSIeURxjNwI40OZfmlVZ?= =?us-ascii?q?vEWeZy/dERKidezTvR1vYceRsMmpIezl/AdAj4Pqq/w4+7kGR3K9gwGtR87Rr5?= =?us-ascii?q?PkvN2QqkSObLv4M/G7YXLZTDjDlwqwiq0gD5bX5CXcLRRUK4FiyXU6ZZjuF3TL?= =?us-ascii?q?MQ5BJ6IBKEpRTbp6ZsleouBGe89kf74E+a1qBh2ZXR7gBZKgrOJYIVbJWTTRMT?= =?us-ascii?q?iO/va5oY3N8bzXUfLgadCUx3bbX6J3OY935iL1G7j2zYNT+Ff61/l2+0xmTljG?= =?us-ascii?q?NjyOo876JgMX/sWicFXtvoExFzPMHJhwiGbtxl1Hd8cPWS2l7okXyJND53bsUu?= =?us-ascii?q?941k/zsPNM+LV69YY35K1mxtmuKafUN/tarVdtAgKICQVy6pUtHG9/SnhJYu8K?= =?us-ascii?q?NPfeZ7kWjdz1puDsEKwX9QeV9PBHZtvBO0HBgNOwCjWGRRxDhgcBpiYQLhGA2P?= =?us-ascii?q?6dh690VcGlqPDl2kI3/VexMAMJwatw5YeA5qqIvvXYbwXQzbgDXqjlWN/zoq4r?= =?us-ascii?q?u0OI6v0ujKQOdXBtYw27DOgdUdYQxmL6wqAuySIjDd/DH6769/FZTH85mCzvm4?= =?us-ascii?q?xmH1oKAPwUBaSE8Z5Ynmgmh+zTLscWfbxammaTCR6kFacPyXyx5CuNJ2llmRXO?= =?us-ascii?q?3AvuQW6o6V/2sCt4QTfNz9j/k0paTL+3BVxIUyquI094vyuFPBD0u9rvpaQ18E?= =?us-ascii?q?Y2P3TmtN2XkmuhNqlXH8riK9OCOiQ0uEgYjJsqRtyow4wbH8SyIMsJ+nFkcvTe?= =?us-ascii?q?83+rkzNGo6pfiIre/8CV+vHTHXa+iq2XsKiCyy5DxXg5p14/7MqsNvbU592FW/?= =?us-ascii?q?6ozXoeTz9juwvdWB64srrbr1QPNEyK1kfLnZYGPtBf3Xk2zEHp/vMjQM4p9AVD?= =?us-ascii?q?ConAe+4CpSrtNzfuxlafed03XDGE0zRLBlL1DUV4GK8k1WL1u8LJk2vQ+1I2SY?= =?us-ascii?q?RrckznhAZ4D4MmJkIx5lkXxTADEQsWaRyBCrGnG1jlJ5MeVUcfcRSHwKS6eqAv?= =?us-ascii?q?0E132bOv4e/eYPdyB6UTK/ldiRSOk0JDGpIMtq0eQqxzdENB9KLNoQjiEYfnVe?= =?us-ascii?q?D8lXUsLf21Xtxa8ccBuns5+Am/WQCv6Zhd4LYAk52IbbRLYYbWs8Bz8Uhn/iQD?= =?us-ascii?q?dipTjxhjlxm5S/wTpPj/4tjHt5ql8uSuVKcoR+gM8hg7GWR/gIXqgFAip9HX2P?= =?us-ascii?q?1QSovLhoTj6ApNOWKFuJ7G0xlgLuoDM4Orfbd6+HodOycTPGkOMsSKa/Yi/yBh?= =?us-ascii?q?KjLT50ZNAskUf9MXINLNmRxIik3uQLxc7cvbGkSWCohpdcAo7nb3yCgv/pshVu?= =?us-ascii?q?bt8yO5JZfC4F5TJfxDkT9slNXYpOcP2/bSDzIX4XaBYRhv3iyC04WNC+r3/eiU?= =?us-ascii?q?0NHbTU8GETI2U4ZTIzqC4w+nSvOulJr3VgOU68nzgI8xdU+LXny+hrgFvbpMEe?= =?us-ascii?q?9OjSX7xDteGpr2h/2Lqdqs7nVYtlldHIZ09x3FF71VPo9nNhTgismrWk98CzPj?= =?us-ascii?q?eMHOaBUuvPCZxuES7OhlKkT+ZIAbIhMYy73g8npaVBFuSKPsslafQ+0ReMNsSO?= =?us-ascii?q?nYoXBN9YJgN6gPMUCSpJPwtDdHtkw2AA8yZb80rzxaalfBnA1PVKbpo74MkA0c?= =?us-ascii?q?XsBluUVUA2K/JHo+5ybbVaRSlKSRB+Ia8jOPTqwJVEVkNTh+TA2x2JVvfbupgP?= =?us-ascii?q?9Gv3hCnixjuvgr0yZpSAG6uSLyu6IHwSgg962gtDUdpXxFSf2TkyjUBlVY1/QG?= =?us-ascii?q?lLoSBXnk51y9ZnkDcYTz7aJoJcTl74Yh5WowbQ8kfy0cUuSqEzvwgL+QAoyTrN?= =?us-ascii?q?JcgwaAuMfJbb+zKygeLKgyyRLnR3hgzwffnRdo8G0QQjWj7d8pP5u9Occ7xiWy?= =?us-ascii?q?HWjUaVcM7rlPsMTvqV4BVPE2Zk95wGV/zsiHQTUARM3RG2kviAgpcmFEcI9e5h?= =?us-ascii?q?8bEKkomSyEvq5c/gEbeD3UCJiq+pHMncfU3nkwVdVqyXzYpq2LgpMny3NklMly?= =?us-ascii?q?7iGQpHQeberYXNFwAnLrzIdQ1fT+Z+mxsuAAUIZmx7ChUPgMM8a9/Wu23I5nWl?= =?us-ascii?q?SixrQYHlq2LPUPxrHFXCe5UWeYQ/iEc3CQnzYlNU7//RuoLl03acdSqE89NurC?= =?us-ascii?q?hoJCmAD6VLN0RzmQpUXFw2A5NuMabQ02sp+9ewMWVO4Re/ScJe82zf0iCVsMam?= =?us-ascii?q?TEHTd3C+Cqsl6igox7N29m4UrkfeTn6hrmP8eKGhkYDY7aqYZ8+fm7RmKCOn9g?= =?us-ascii?q?ywZ/PEtu+OfcEFQxsPFTc5CLkdjWmdt7zfYPd+1xPi0lpt4ThoVj5JGP38iUdx?= =?us-ascii?q?HR0o3/JcrRovifH/3f01oqdX9HXbYDZgP1/Yo6NMYjW7LPBbtZoQgcBa8iTZwv?= =?us-ascii?q?KWjx8KB0LBttfQPKZbW0g8zqpueVaZtOo3/Z8Eg8LCDGux0M0va0VxB0b4i2h3?= =?us-ascii?q?XuJ5A9XjxAr8V3ChtnAIRABdgNrw+mA56IgqG0lcW9+0Rgu+8FqaDwEOzF1Myl?= =?us-ascii?q?34VtWJhX/UuLPDLPC6RwmkRliv69guzc0pnwFcziZckEW/ZlTWLfbL/JAJm/IC?= =?us-ascii?q?qUOs3gY05G76Kc0LVhXxWVZSD5WbeGtSK9OPVg4EU70ZB4fPHIwTws9b7b3tzy?= =?us-ascii?q?a3tcpie5on6DLIFf40DSBezCQxJUTuKI8H17Eq0TbIv08voOMNMlzNaT/wlz7C?= =?us-ascii?q?pN0NGbLKi5tEDBwUF7eozBLEvvxSk5XZIFIAmwMUc2hm/ZsHvdC2xGLse4Mclt?= =?us-ascii?q?nMqVDhv16kl0g24iem5BGmvuRdeWImUbxcO+ZAuU+wJPDtYDmfO3eEEiuq21U+?= =?us-ascii?q?loNY1Pmf+2u7UfjdZpNybPSdBYPy7KL792OSFeA/7SpFgufh4Es781Wpo6ZZiO?= =?us-ascii?q?PEMLKkGAxj3uzQHay037a8Ss1LqVICYR6nhI1KnK3T9Ipwm4ovaZntbjXKrCbJ?= =?us-ascii?q?7oQPHeKjElWS+eRTQzF0ap5FiltuEYs/uYO2cfv0sUbjicCQEJuqBvtt/QDmnJ?= =?us-ascii?q?le1kZp0Ki+iQWzrsRy1giKoyGiFLuFiDQ/UZDgbWdX7hj3RYuAG5OP9M+Wjqb6?= =?us-ascii?q?aZxqpIQeAWBJVDcuGBSdvCZf9ePysolikeOOukfd3cqrE50kjSTWsYCKnF71ue?= =?us-ascii?q?Q1STQvOCxjLnR4IVv5I7uiAw4NLfgjd3E7jUP7aYvzOu6YC4jCOEtuDfVWQgeF?= =?us-ascii?q?I1j/wYAGmAwRhAL2cEB8sTuE7zXq6Kf1xM224xieJyxx8Mfxx+Un9p0n1QmPaw?= =?us-ascii?q?AchZRkAJg2OgR/0Gdkx4Ay0q8U+M/ALyfY9IhMbIWmUL87INTZYafsIl7IjRJb?= =?us-ascii?q?tVxPsgwj9OvD0xsyLbCUhUyA2C7fnsG/dax7ZF4WAjt9BxWVqUC2fZc2PAzoO9?= =?us-ascii?q?TcNIwjx1iXW4x4zTpO87Z5VAoIQsP1YOBSN/I5jn+jpMS33vkF+4vhK/Wj/YOj?= =?us-ascii?q?UT7SwXPgQKc+90y6lwtxOeJYWJ0l+Zq6908BjjMg2MELfhncUTVMw=3D?= X-IPAS-Result: =?us-ascii?q?A2EpBwBFpLRY/wHyM5BeGgEBAQECAQEBAQgBAQEBFQEBAQE?= =?us-ascii?q?CAQEBAQgBAQEBgyWBElgHg1SKe5lojgU6KAGIIQdXAQEBAQEBAQECAQJfKIIzB?= =?us-ascii?q?AIDGQEECD0NLwEBAQEBAQEBAQEfAislAQEZBgECIB0BDQ4SCwECAQIJAQEFAwI?= =?us-ascii?q?EBwIxBAICAwEeAQ4DAQUBCxEGCAsFGASJOgEDFZMZkRY/jAOCBAUBHCYCgmEFg?= =?us-ascii?q?2YKGScNVYMTAQEBBwEBAQEcAgYSiymBT4JXEQGDIoJfAQSQUItOkieKYoY2kWo?= =?us-ascii?q?UHoEVWHkIIRQfUxeEKYIuVIdsR4FnAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 27 Feb 2017 22:16: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 v1RMGBIb022228; Mon, 27 Feb 2017 17:16:18 -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 v1RMG6dE022465 for ; Mon, 27 Feb 2017 17:16:06 -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 v1RMG6vT022221 for ; Mon, 27 Feb 2017 17:16:06 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1AECADOo7RYf8JSfUpeHAEBBAEBCgEBhGJYB4NUpGOKLIQchiICgh0HVwECAQEBAQECEwEBCQsLChuFIgMDIx0BDQ4SCwEDDAYDAgQHNwICIgEOAwEFAQsRBggLHQSJOgEDFZMXkRY/jAOCBAUBHIMJBYNmChknDVWDEwEBAQEBAQEDAQEBAQEBGgIGEospgU+CVxEBgyKCXwEEkFCLTpInkRiRahQegRWBUAghFB9TF4Qpgi4fNYdsgi4BAQE X-IPAS-Result: A1AECADOo7RYf8JSfUpeHAEBBAEBCgEBhGJYB4NUpGOKLIQchiICgh0HVwECAQEBAQECEwEBCQsLChuFIgMDIx0BDQ4SCwEDDAYDAgQHNwICIgEOAwEFAQsRBggLHQSJOgEDFZMXkRY/jAOCBAUBHIMJBYNmChknDVWDEwEBAQEBAQEDAQEBAQEBGgIGEospgU+CVxEBgyKCXwEEkFCLTpInkRiRahQegRWBUAghFB9TF4Qpgi4fNYdsgi4BAQE X-IronPort-AV: E=Sophos; i="5.35,216,1484024400"; d="scan'208,217"; a="5960375" 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; 27 Feb 2017 17:16:05 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3A6+Oy3x8N9NRAsf9uRHKM819IXTAuvvDOBiVQ1KB3?= =?us-ascii?q?1+wcTK2v8tzYMVDF4r011RmSDNidsa0MotGVmpioYXYH75eFvSJKW713fDhBt/?= =?us-ascii?q?8rmRc9CtWOE0zxIa2iRSU7GMNfSA0tpCnjYgBaF8nkelLdvGC54yIMFRXjLwp1?= =?us-ascii?q?Ifn+FpLPg8it2e2//53ebx9WiDe/fLh/MAi4oQLNu8cMnIBsMLwxyhzHontJf+?= =?us-ascii?q?RZ22ZlLk+Nkhj/+8m94odt/zxftPw9+cFAV776f7kjQrxDEDsmKWE169b1uhTF?= =?us-ascii?q?UACC+2ETUmQSkhpPHgjF8BT3VYr/vyfmquZw3jSRMNboRr4oRzut86ZrSAfpiC?= =?us-ascii?q?gZMT457HrXgdF0gK5CvR6tuwBzz4vSbY6bLvp+er7Wc80cS2RPQ81dUzVND4K5?= =?us-ascii?q?Y4YJEuEPP/tXr5PlqlQMoxuwBQeiCuDyxDFWmnD7xrc13/g7HAzcwAAsA9ADvX?= =?us-ascii?q?LJp9v1LqcSVuW1wbHIwjXCa/NW3Tb955LNchs8vf+MWql/ftTLyUkzDAPOk1Kd?= =?us-ascii?q?ppfkPzOR0uQBqXSU4/B6VeKokGEotRtxoiS0xso3hYnJg5gaylHA9Slj3Ik1It?= =?us-ascii?q?i4RVd9bNW5E5VQrzmXOol5T884Xm1kpiY3xqcFtJKlZiQG1ZAqyhHZZveaaYaH?= =?us-ascii?q?+AjjW/yUITpghHJqZra/hxGq/Eil0OL8V8203E9NripZjtXAr34N2wHX58WIUP?= =?us-ascii?q?d98UCh2TGA1wDX9O5IO1w7la3eK5I5w74wkIQcsVjbEyL0l0j6lrKaelsk9+Sy?= =?us-ascii?q?6OnrfK/qqoKYOoJ7kg3+N74hms27AeQ2KAgOWG2b9Pyn273i+U35RK9GgeEsnq?= =?us-ascii?q?nDt5DVPtoUprSlAw9OyYsj5BO/AC2n0NQch3UIMFVFeBefg4jzJ17OOOz4Deu4?= =?us-ascii?q?g1m0izdk2fTGPrznApXQIXnOi6vhfLZh5E5czwo/19Zf54lOBb0bL/LzXVHx55?= =?us-ascii?q?TlCAQkOVmxyufjFNIv7Y4aWGSSEuqdParMvHeU9+kvJK+Kf4ZTtzHjeMQistjv?= =?us-ascii?q?hng9kERVXK6uxoBfPHa5FfNiKl7fYH3rmcwpFDsa+A0kQ7q5pkeFVGtsZnK2Xq?= =?us-ascii?q?s5rgs8Ao+8EZyLEoqshLjH12GhGZdbfHxdIl+JGHbsMY6DXqFfO2qpPsZ9n2lc?= =?us-ascii?q?BvCaQIg72ETr7Vekxg=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0FPAgAJpLRYf8JSfUpeHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBhDdYB4NUpGOKLINZQ4YiAoIdB1cBAQEBAQEBAQIBAhABAQkLCwo?= =?us-ascii?q?bMYIzBAIDGQEECD0NLwEBAQEBAQEBAQEfAislAQEZAwMjHQENDhILAQMMBgMCB?= =?us-ascii?q?Ac3AgIiAQ4DAQUBCxEGCAsdBIk6AQMVkxiRFj+MA4IEBQEcgwkFg2YKGScNVYM?= =?us-ascii?q?TAQEBAQEBAQMBAQEBAQEaAgYSiymBT4JXEQGDIoJfBZBQi06SJ5EYkWoUHoEVg?= =?us-ascii?q?VEIIRQfUxeEKYIuHzWHbEeBZwEBAQ?= X-IPAS-Result: =?us-ascii?q?A0FPAgAJpLRYf8JSfUpeHAEBBAEBCgEBFwEBBAEBCgEBhDd?= =?us-ascii?q?YB4NUpGOKLINZQ4YiAoIdB1cBAQEBAQEBAQIBAhABAQkLCwobMYIzBAIDGQEEC?= =?us-ascii?q?D0NLwEBAQEBAQEBAQEfAislAQEZAwMjHQENDhILAQMMBgMCBAc3AgIiAQ4DAQU?= =?us-ascii?q?BCxEGCAsdBIk6AQMVkxiRFj+MA4IEBQEcgwkFg2YKGScNVYMTAQEBAQEBAQMBA?= =?us-ascii?q?QEBAQEaAgYSiymBT4JXEQGDIoJfBZBQi06SJ5EYkWoUHoEVgVEIIRQfUxeEKYI?= =?us-ascii?q?uHzWHbEeBZwEBAQ?= X-IronPort-AV: E=Sophos; i="5.35,216,1484006400"; d="scan'208,217"; a="3518774" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mail-ot0-f194.google.com ([74.125.82.194]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/AES128-GCM-SHA256; 27 Feb 2017 22:16:05 +0000 Received: by mail-ot0-f194.google.com with SMTP id y13so9860784oty.2 for ; Mon, 27 Feb 2017 14:16:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Q80DbaSLusANOHc1zqQ/KCSQrPzvu9vaZeMEbsJM7/I=; b=tNh2L5fnlN5Ld9OHU0U//AKsDdKtU3QU4KnEq2hM0t/9oJ8zD1r+UNAwp3UsmWN1GT GS+Bzllic1kjK/jooXD/rJeet6wzYJyqSHdaOT5v9h2KZLIpNQf5F1p2Yk2horBI2a2a KA1oK3XMw7gVJGGsVjqDxVH3ATWpFfN/7HxrnljghVjOzVKGCVSxKYmcbydfLQV1kMYW CzY/OMrjuMdXmaRt5dMkQ3aM0nxjLPPesP/mi/57QWw3yUlqr4PL7+Pa2J+UIkREc6tD oQBS09MbJTzRvDISNQXYiOo6C2Au+VkZEToITaHLzRpErGet1wmvf9IpXP0idBHAv8Sg H05A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Q80DbaSLusANOHc1zqQ/KCSQrPzvu9vaZeMEbsJM7/I=; b=XGLgnKNcCkykNB5UGi7QRWT+iVKSc8qAfQ2cuQJSAB/3qN+EEkDy1rpjDR6AsplXTC D7Nfxm26I7bJio8lp4BqayTYCmmDufJ8WNoX/A2Ip7Oj6sZowTmYAvk3mpJe7CylJD1j PtK5SKJ4RAmEcIK51Gtdse6gslfb9lFwEgvpuiGsy4W1qM0wVsPoktRALZxtJi2TLyCJ w/XyPfo3bX4BNRWuB7u7Q9nqM6PjoVYckSIXwBg1cCrxqy8Qbau56HlxU82c7Q9gQRDV wTRC7LJr17tIVTxO88kSXAzMmHpzsmH49w5Od2kPPz6opE5rvf+q/sQ5fdmB6sU5KTw9 Y2SQ== X-Gm-Message-State: AMke39k/GBRy4bhZvdT8RYYQpuiiTiHM0Q6wWBsxnqud8MJc+63dHm44d1ENffHuT+4410qWtXPvrg7EWtnDCg== X-Received: by 10.157.21.26 with SMTP id u26mr5394595otf.187.1488233764519; Mon, 27 Feb 2017 14:16:04 -0800 (PST) MIME-Version: 1.0 Received: by 10.157.58.67 with HTTP; Mon, 27 Feb 2017 14:16:04 -0800 (PST) Received: by 10.157.58.67 with HTTP; Mon, 27 Feb 2017 14:16:04 -0800 (PST) In-Reply-To: <20170227203935.23674-3-nicolas.iooss@m4x.org> References: <20170227203935.23674-1-nicolas.iooss@m4x.org> <20170227203935.23674-3-nicolas.iooss@m4x.org> From: William Roberts Date: Mon, 27 Feb 2017 14:16:04 -0800 Message-ID: Subject: Re: [PATCH 3/6] libsemanage: never call memcpy with a NULL value To: Nicolas Iooss 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: selinux@tycho.nsa.gov Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP On Feb 27, 2017 12:42, "Nicolas Iooss" wrote: clang's static analyzer reports "Argument with 'nonnull' attribute passed null" in append_str(), because argument t may be NULL but is used in a call to memcpy(). Make append_str() do nothing when called with t=NULL. Signed-off-by: Nicolas Iooss --- libsemanage/src/semanage_store.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) if (new_s == NULL) { return NULL; } -- 2.11.1 diff --git a/libsemanage/src/semanage_store.c b/libsemanage/src/semanage_ store.c index f468faba4b64..47ec93185e06 100644 --- a/libsemanage/src/semanage_store.c +++ b/libsemanage/src/semanage_store.c @@ -1194,8 +1194,14 @@ static char *append(char *s, char c) static char *append_str(char *s, const char *t) { size_t s_len = (s == NULL ? 0 : strlen(s)); - size_t t_len = (t == NULL ? 0 : strlen(t)); - char *new_s = realloc(s, s_len + t_len + 1); + size_t t_len; + char *new_s; + + if (t == NULL) { + return s; + } + t_len = strlen(t); + new_s = realloc(s, s_len + t_len + 1); Overflow possibility here?