From patchwork Fri Jun 9 15:53:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Carter X-Patchwork-Id: 9778851 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 C151860318 for ; Fri, 9 Jun 2017 15:54:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A2EA32022C for ; Fri, 9 Jun 2017 15:54:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 97B7B285A5; Fri, 9 Jun 2017 15:54:34 +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 (smtp.nsa.gov [8.44.101.9]) (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 A9C262022C for ; Fri, 9 Jun 2017 15:54:33 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.39,317,1493683200"; d="scan'208";a="6523474" IronPort-PHdr: =?us-ascii?q?9a23=3AvHG2JhP5MgJGpw3Yj+Ml6mtUPXoX/o7sNwtQ0KIM?= =?us-ascii?q?zox0LPzyoMbcNUDSrc9gkEXOFd2CrakV1KyI7uuwCCQp2tWoiDg6aptCVhsI24?= =?us-ascii?q?09vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7?= =?us-ascii?q?Ovr6GpLIj8Swyuu+54Dfbx9GiTe5Y75+NhS7oAXeusQVhYZpN7o8xAbOrnZUYe?= =?us-ascii?q?pd2HlmJUiUnxby58ew+IBs/iFNsP8/9MBOTLv3cb0gQbNXEDopPWY15Nb2tRbY?= =?us-ascii?q?VguA+mEcUmQNnRVWBQXO8Qz3UY3wsiv+sep9xTWaMMjrRr06RTiu86FmQwLmhy?= =?us-ascii?q?cdMz4y7X/ZhMp+gqlGpB6tvgJzz5LRbIyTKfFwfL7SfckCSGRBQMhfSiJPDIC7?= =?us-ascii?q?YYsXDecNIOhVoJfmp1YVsReyGROhCP/1xzNUmnP727Ax3eQ7EQHB2QwtB9YAv2?= =?us-ascii?q?7RrNrrL6cZTP64w7PSzTXfcfxWwyr25Y/KchEvvf6DR6hwcdbPxUQ0CwPEjkmf?= =?us-ascii?q?qYziPz+P0OQNqHKU4/BvVeKolW4qsgd8qSWsyMc0koTFm40Yx1/e+Sh53Yo5P8?= =?us-ascii?q?O0RUFlbdK+DZddsTyROZFsTcM4WW5ovT43yrgBuZGmYicH0I8nxxvDa/yfdIiI?= =?us-ascii?q?/w7jWP6RIThmgHJlf6qyhwqo/ki6y+38S9K03ExWritFjtbMtncN2wbV6sebUf?= =?us-ascii?q?ty4l2t2TOO1wDX8u1EIEY0mrTHK5M537I9mZUevV7DEyPrgkn6kqCbels+9uS1?= =?us-ascii?q?8+jnZ6/ppp6YN496kAH+NaEul9SkAesmNggOXm6b+fmz1bH65kL5R6hKjvsqna?= =?us-ascii?q?bHq5DXPtgbp66lDA9V1YYv8RC/Dyy839gCknkHK0xFdAqdj4f1I1HOPOz4DfCn?= =?us-ascii?q?jlSulzdrwerJPqHhAprXKHjOi7XhfbF7605Z0gUz1sxf6IxOCrEaOv7zXVXxtN?= =?us-ascii?q?PABB8jLwO02/rnCMl61o4GW2KPALWWP7/RsV+T4eIvJeiMZJEOtTbzL/gl+vHv?= =?us-ascii?q?gmQkmV8bYampwIEbaHeiHvRpO0+Ze2bjgs8dEWcWuQozVPTqh0OZXjFNYXayXr?= =?us-ascii?q?485jYgBYKnE4jMWJ6ijKaG3CehEZ1cfnpGBUyUEXf0a4WEXO8BZz+VIs9nlDwL?= =?us-ascii?q?SKauS4sg1Ry1rgD11aBnLu3O9i0fr5Lj28B/5/fPmhEq6Tx0E8Od3nmQQGFohG?= =?us-ascii?q?wIXSQ707x4oUx41liMy7N4g+BCGdxV+fxJTh8wNYTAwOxiF9DyRgXBc8+ISFag?= =?us-ascii?q?XtWpHzUxQcw0w9AQf0Z9AdWjgwvE3yqyHbAVkbmLC4Y18qLYxHfxIMl8x2zB1K?= =?us-ascii?q?k7gFksWtFPOnG+hq5j6wjTAJbEkkWYlqatc6QRxyvN9GOawWqPukFUSghwXr/f?= =?us-ascii?q?XXAcZ0vWs8r26lnET7CwFbQtKhFBxtKaKqtWdt3pik1LS+z4N9jZZ2KxmnywBQ?= =?us-ascii?q?qTxr+Wd4rlZXkS0D/GCEcalwAT/HCGNRUxByq6v23fDCZuFU/0Y0/2/+hxsm+7?= =?us-ascii?q?TlQzzwGMdUFh0KC1+hENj/yGV/wTxq4EuDsmqzhsAlm9x8jZC8CBpwp6Z6hcec?= =?us-ascii?q?ky4E1G1WLCrwx9OoavILx8iVIEdAR3pUzu3Q1tCopcicgqsG8qzA1qJKOW0VNB?= =?us-ascii?q?czaY0o7qOrDMJGn94g2ga6nM2l7EyNaW4KAP6PYmpFr/oAGlDE0i829o09NNyX?= =?us-ascii?q?uT+o3KDBYOUZL2Sks3+QJ6qKvcYiYh5oPUzmZhMayssj/Dwt4pH+Ukyg26c9dY?= =?us-ascii?q?KqOEGxf4E9cGCMi2NOwqh1+pYwoHPO9I9640ON6meuCF2KGxP+Zgmy+mgX5A4I?= =?us-ascii?q?Bn3UKG7zB8RfLQ35YZ3/GY2ROKWC3hg1e7s8D4h5pEaCoIEWWjzCjoHolRZrd9?= =?us-ascii?q?fYwTE2ehP9W3xslih57qQ3NX6ESsB1cY18+yZRqTb1v90BZL1UsLoHyohy24zy?= =?us-ascii?q?B1kz4ztKaf2jLBw/j6fhodJmFLXHVijUvrIYWslNAaUlKobw8ylBu5/kv63K5b?= =?us-ascii?q?pKNxLmnWW0hIeTL6L2d8XausrrCCedJA6Is0sSVLV+SxeV6bRaT5oxsGzSzjBX?= =?us-ascii?q?BeySsldz60oJX2hAF6iGeHIHZ0tnrZdtl6xQ3D69zEWf5Rwj0GSTFkiTbKG1e8?= =?us-ascii?q?PsOm/dGPmpjfteC+Un6uWYdIcSn314+AsjW05XFyCx2lg/+zgsHnERQ90SLjyd?= =?us-ascii?q?lqVDnHrAr7Yonxzai1LeJnfk5uBF/z8Md6HoB+ko0qi5EK3ngWnJKV/WAIkW3r?= =?us-ascii?q?K9VUxbr+bGYRRT4M29PV5Anl2FZ/Ln6Q3IL2SHGdwspnZ9mnbWIbwTk979hLCK?= =?us-ascii?q?eS7bxLgTB1rkC+rQ3Pffh3hi0dxuc26H4Gn+EJvxIgzj+aArAWGUlXIzbsmAiP?= =?us-ascii?q?79Gwt6hXf3uvfqSr1EZkmtChFr6CqBlGWHnlYpciATNw7sJnPVLUynLz94XkdM?= =?us-ascii?q?PKYt4JrRKUlBPAj/RSKJI3jfcKgDZrOWT6vXI50eI7iwJh3Y2itoidN2pt5L65?= =?us-ascii?q?AgJfNjDtZMMc5Dftjb1Fk8aVwY+vGI5hGjMVU5v0V/6oFygStfv/PQaUDDI8sm?= =?us-ascii?q?ubGabYHQKH8EdptW/PE5S1OHGPPnYZy8liSweHJEFEnQAURys1noQiFgyw38zh?= =?us-ascii?q?d1p55ioN6VHmpBtMzfhoNxbhXWvFogendCs0QoCFLBVK9gFC+1vVMcuG4+JtGS?= =?us-ascii?q?FX44asrBKLKmOGZwREF2cJVVKYB1r7JLmh+cHA8/SEBuq5N/bOea+BqfFaV/qT?= =?us-ascii?q?2Z2v05dm/jaVOsWBJHZiCec32k1ZXXB2A87ZgSkASzQLlyLRaM6WvBS8+y1zrs?= =?us-ascii?q?+h6/nrXQXv5YWBC7RMLdVv5xC2gaCGN+GOnip5LyhX1o8Uz3/S1LcfxEISiz1p?= =?us-ascii?q?dzS1H7QPryjNTL7Xmq9SFBMbZT18O9ZP76ImxAZNIdTbitT31rFmkvE1F01JVV?= =?us-ascii?q?v7msGmfcYKOX2yNEvbBEaXM7SLPSfLzNzqbq6nRr1QiepVuwe2uTmFD0/pJi6D?= =?us-ascii?q?mCXxVxCzLeFMizmWPAZEtICzaBptDHLsTNbhahy7K9J4lyE5wbguinPNL24cPi?= =?us-ascii?q?B2c1lRob2I8SNYnvJ/FnRP7np/M+aLhj2Z4PPeKpYKtvtrGT95mPhG73Q/0bdV?= =?us-ascii?q?6ztERPNtkivIstFuu02mkvWIyjd/VhpOsCxEhJqTvUh5N6XZ94NAWW3Y/BID7G?= =?us-ascii?q?WQDQ4Fp915Bd3uoa9QzsLDlKXpKDdN69jU59cTB9DIKMKbN3osKQfmGCXKAwQf?= =?us-ascii?q?Qj6rL3vQh1JGnfGJ7HKVrYU6qoL2l5YUTr9bSVo1GekACkh8ANwCJ5R3XzMjkb?= =?us-ascii?q?KBis4H+2a+pgHLRMpGppDHSu6SAfL3JTafjLlEYx8Izq3jLYkILIL0xVZial5g?= =?us-ascii?q?kITNAUrQUshHojd9YQ8svEVN7H9+Q3Uo1ELkZQOt53kTGOWpkREokQR+YP4i9D?= =?us-ascii?q?H271cwPFrKqzM6kFMtltX9nTCRbDnxIb+qUoFZESX0qVY+P4j8QwZtcwKym0lk?= =?us-ascii?q?Oy3FR7JVlLRgcm9qhBXbuZtVFv5WVbdEbwMIxfGLe/Uo1kxRqjmgxU9C/+fFE5?= =?us-ascii?q?xilQo0fp6qtH1AwQVjY8A2JaHLOKVJyV1Qib6UsS+zyuA92gkeKFgR8GmKYi4H?= =?us-ascii?q?pFQINqU6Jyqv5uFs7xKNlCFHeGUXVPoqpelq9l8nNOSG1CLg0L9DJlq3N+OBM6?= =?us-ascii?q?OTo3LAmtKQQlMsykMIkFFI/aJo3sc4bUWbTVovw6eRFxkSLsXCKBtVYNdV9Hjd?= =?us-ascii?q?ZSaOq/vCwJJvM4W7CO/oUfeEtLwIjUK8AAYpA4MM49wcEZa2zkHYLNroLKUexB?= =?us-ascii?q?o3/gTrPlKFDfpSeB2VjDgHvtu/zJ5r3YhdPD0dB3tyMTmv7LbNugAqmOaDXMsx?= =?us-ascii?q?YnoCWosEMWg2V9O8my9YuHRNFza30uQEyASY6D/8vCvQBiHmb9V/fPeUeQ9sCN?= =?us-ascii?q?au9DUk7ae2jV/X8pPDJ2D1LtltptjP6eYGqJmdEPNUUaNxs0HClIlEX3aqSXLA?= =?us-ascii?q?EcapJ5jsbIkhdcH7BWq/Uly4jTI1U9r9Mc2zLqeWmwHoRIdVsI6d3Dw5M8+yCC?= =?us-ascii?q?0eEQ9qp+4f/KJ8eREDY50jbB7rrQQ/N7awIAGE0tWuWGutJjxWT+FDwumgYbxY?= =?us-ascii?q?0TYsZPegyHQ8VpE60/W38UkVSZEWjxHewPGjZ5VeUSnzAXFSZgTPpCojmGd6LO?= =?us-ascii?q?oyxPkwwA/Qu1kGLz+LbPBpaHBDv9wkClOSO295CmwkR1KHjIrD5QCt37YO/ytd?= =?us-ascii?q?gdlU0OtFsGTgsZ/Fej6sXrKkqYnNuSo6cdcmu7FxMZDkIsaerpzemj3fQ4XOvQ?= =?us-ascii?q?KdVS67F/xamt9WIC1CW/RHgmAlNtYAuYZY50oxS90yJ7pRB6kwvrqqcyZrDTYO?= =?us-ascii?q?zS8FUIONxCcNjfm627bBjBifbYoiPwIesJVZmNQdSS53bjkZpK+5WIXcj3WERX?= =?us-ascii?q?QTIAcP8QRM4xoNlpV2fuDk/IXITJhMyzpNo/xsSyXFC4Nm+kf8RGyNnVf4T/Ch?= =?us-ascii?q?nPCz0gJJ0PLgyN8bVwBjCUJF3eZZilMoKK1rK6kXpoPFrj2Ielnms2/21OSmI1?= =?us-ascii?q?1RycnVd1LmForFqXTzXTEc+XEOQo9P0n7fH4wIkwVlcKYruElMIIe+d0bk/TMk?= =?us-ascii?q?3YNpEKKjWMC33VYqt2gGSDmuE9pADeFmv1bXWDxqY5CrtJXlNY9dQnVV+JGHrV?= =?us-ascii?q?dWjlltOTajyZVAM8FN/iIMXD9XrDSTpte9VM1D2c5zD58NONh/uGzwGKJaN5eP?= =?us-ascii?q?vXI6oLvvymXW+zokqle12C2zG7OkT+Je52AeAgIpJ2CEpUk1Aeos9WPS8l7Wv1?= =?us-ascii?q?Bx+OdbAaOPglttrzZnGZBOHS1J1XGjL1R8VnVGtP9aKKvNecxGX/YyfQOvOwA5?= =?us-ascii?q?FfM+xUOJ51x0nXHjbyxxrQZa+iHdXwgoVSYOmLvtnyMRqt2/Mz8AV51IdSkhbz?= =?us-ascii?q?vCKw+DhSBXuxNfZlp2W5wFB9ZK4KsX3Y1K8creUUysMz0KXAR+NgIk1vpSjU5D?= =?us-ascii?q?v1+CeS/HCQqnaO3CvQBpcseJtM6mMvD58xldio/9t+A47aoDTWW8mQKxWdDes5?= =?us-ascii?q?P8ttqSu0uMc6f3LfaxbmLfQzjXkx+wn6skAIfX8CTJNgpUNYV6w2I+YZf9EW7L?= =?us-ascii?q?IQhGJ6UDKkVAW6B1dclKr+JHa8JqY6sG5ahtBhebSRz1A4yvsONKLlDNSjTCNy?= =?us-ascii?q?+B6PCwoZrP7bzBTujtftaMyGjaTKJ3JJh69SL2G7Pt0Y9A5EX6xOti9kRnRlfY?= =?us-ascii?q?KSyBqsruJh8T7sm4akTipoEpHS/RAJpoiHrt3V1AeNAKTC2265kY05RZ6GvqSe?= =?us-ascii?q?1kzEfztvFS96N+5okz+bxpzt20JajKI/RArUBnGgSUBhlt9pg1HGh/XX5ebfEM?= =?us-ascii?q?J/rKYKQZidzuq/rtGKwJ6R2V/OhZZsXbJ03bncm/ED6cQwRenAgdsT4aMhec1/?= =?us-ascii?q?mdlq9xU8mloez51Vwx41iiNBEJ1qtg5YGa9aqUv+/YcwHezaAaVaTwQMP8sKgs?= =?us-ascii?q?sVuI5fI4jL4OZnB1Ywq/HegfTMEd3GDgzbsuzS02DcPOBLfg+ONHV3IlnzLvh5?= =?us-ascii?q?F9EE8QGvMPB7aL+p5enmggkezDKtIWarxCmnqIFRO8EL8N03ir6yWNIGlinx7B?= =?us-ascii?q?zQr9QX+p41/wti94RjHAz9H9nUpJTrO3H1tdXzK1OU9ktzOCJAXotMf2uaQx6E?= =?us-ascii?q?E5LGnkucmQm2S/I7xXHtfwJNqGLSkzvlIXg4U7Rsaz1oADBdq9PNAR/Wl4bvva?= =?us-ascii?q?8G6rkilBo6Jdi4rf5MGV9O/XEmO7j62GsbWN2SxXymQlvVEl9N+sLPbO58eFQ/?= =?us-ascii?q?6wzWYeUz9/uxfdXx6ysrHbqlcUOUqX0EfEhoMHJdRZ3Xgi2UHg+ucjXNwy9AJE?= =?us-ascii?q?FobDfPMOvzbzNyXowVyHedI4SjGe0ydLHlLyCVR4HLM82Gfwsc/Sm3ff5UAnRo?= =?us-ascii?q?5qd0P9nRx3FYI4KUAz51cL3ioPCw8NaQqUDLuwH0TqMZMEVVQfaRSAxLW6Yb04?= =?us-ascii?q?3VNpzbOg+uDTdvdxB7EXOfZDlAGOk0ZUGokMva0YXr18Z0dX9LTLqQj6F4jnQ/?= =?us-ascii?q?/mmGIyNf20R8BX6sUZuGUi4wmhXRqg6JFD77kBhJCOaKFEfYDGvNpg4Ed/+T4P?= =?us-ascii?q?aitNjQB+jxK4S+8Tvvzs78PAsJW29uahSroiS/8Q9xguCGR0l4Hwj0w7odHLy+?= =?us-ascii?q?dcTZXYhp/+8ABWLX+FooTa0xhgKeoWMY2rYbJg+m4bKCgZOn0BI8CZa+Qm4y9q?= =?us-ascii?q?KjXc/UZOAsQWZdMXJMDNgxxbilX1WLFP8crWAkeYBJ1vd88072r2xjc18YE/Uu?= =?us-ascii?q?r58z+5O5Tf71BLP/NegyRhj8rCq/IJwfXOCCgW736ZawJ2wi+YyJmCFezw/eOS?= =?us-ascii?q?x9HQTV8GGTQ2U4hFLjqY5QOnXva1lInuUg6M9s/zmowxdEaKSXy3gqsIqbtDEe?= =?us-ascii?q?9PiiX6wjhRDJv1iOiPs9qx8mdXsENIEJpr5x3fBKpfJol7OQj/lsSzSUhzHDH/?= =?us-ascii?q?d9/Idhouo+eWwuYM4/lgOEv+f4AbPwkEx6j86XVLUgtkUKT2sUqBXeINeNtmT+?= =?us-ascii?q?vJrn9L5oJmN68PO1+dqJvxrjhWrFA2AQkpaKI/rzFBcknBghdVWqbut7IajAsT?= =?us-ascii?q?T8J5s1dWGW2sIGI++ybHVaNNgamXCfwa7jKTTqgUXEVzKC9+QhS12JJ1e7uyhv?= =?us-ascii?q?1Ht2xLnyxnrPgtyTxmSwO2uTfwqKIVxTIg5La4uS0OuXNZVeWeiD7EB0hMwvoM?= =?us-ascii?q?jKccDWvi6FOnbXkMaYv9+r9nKtr6+Ykm+XQ/bg0pfzcaUuS4FyHwk6SID5SNsN?= =?us-ascii?q?JbhB6Nvt/CYqOzLSgWK7Qy1BPiR3l70gjFnxZo8XAGQiuh7N86Poq9Pdsqxiuy?= =?us-ascii?q?FWjdalkM/rtDsNHtul4TUOs2dVRhzX1i0siZXCINQtfCG2Iojgc5aGVEd4lD5Q?= =?us-ascii?q?UdF6kyjTaCprNG8R0MYDfIDoSl/ZHdncXW1nkzQ9dqwnnbp6OfiZMsznJlh8l4?= =?us-ascii?q?7iiQt3QOb+bYSdNjAmDv1odDzuzzf/qtsuQASIpo1ruhVPsCP9K4+Wux3pVqW1?= =?us-ascii?q?Oqyq4YH1WnLO8J3q3bXDu9SW2EReSLdHCBnzQ5Mk/y/RmoKVk3aMZWr0AjKebC?= =?us-ascii?q?g59clxH7UbxqXCmQokXbzGM7O+MAaw02oJunexANTOMJe+icJO0uzeYiCFsNc3?= =?us-ascii?q?DJHjV5C+usvV6rgod7J21q4V/mbuT17gDmLNySFwEBEY7brZ5x+vu6S3mDOXB6?= =?us-ascii?q?zx1yO090+PnZF1grsO9TbYqRl8DKh9tnye4Fa+ttMSolt9EIhI1j75WU3dyRcR?= =?us-ascii?q?HVyZbyOc3VouaGDPLC1UgqfXtaUrUBawPv+4o6JsI5W6HUHbZBsxQTG6w6QJ05?= =?us-ascii?q?N2jv76x1LQJzcgvUZLuqmMnqovyEaoFTp3/M4VI6ND3ctAEbyvyoUQx7aIinhn?= =?us-ascii?q?vqIJAqRzJOs8NiBwBjHItOB8MAtRSoD4STmKGhhN+741l6tPMSsarsFvDK08y0?= =?us-ascii?q?34J1X5dE/kGLJDLRC7NwgkR5j+S9nuvA0oPvBsz8Y98EUvZ0QnLdYL/cAoq/Mi?= =?us-ascii?q?6OOt77e0Ne976c0bR5UgieZSzgW6qGtTakNOl/4Uggy4x3ZuzTzDs347Hcwtvy?= =?us-ascii?q?aHlRpj2/on6RKJtf8FvKCPTFXx1KTfqF8WBlHbAYbIfz++kOLdwiz8aG4wZt9D?= =?us-ascii?q?RNytCII6u/oU/W3EJ0a5bbI1D02yY2Q4UKJw6/MUQ0i2/DtnvdGWhcLtSjKcR1?= =?us-ascii?q?hdaaFADi50lwmWErYW5MAXToRdaXOWcF38K+ZQuK9B9EDtoZmO63Y0E4vLWoSe?= =?us-ascii?q?Z0IpVFhfmqtLIfnNZrMS7PR89aMDrLIb9rODpREuXPpF81Yh4Ls7g1Rp05ZZ6Q?= =?us-ascii?q?L0MbKE2A0z/9zRPe0U3ocNyhzKmJLzwN/XVdzrLKzzxMqhKnufadmMLjS7HZbI?= =?us-ascii?q?zsUP7ULiUlSimQRS4uHkax5Vekp/0EseKaIWcapVAUeDiSCA8Ipq10q9jfFGrT?= =?us-ascii?q?lvNifJEQg/CaQS/wQjVilKUuHiZLqVyMQ/0bGAnNYX/hhXZTtQ2hK/JX43Lqca?= =?us-ascii?q?eYxqtUWuwRBItAaPuZTMXEeaMWGzB9jTgdOeChb/XAvr051RTOVmJfHK7Wp3OE?= =?us-ascii?q?S0vDYPWZyimjdowPo4Uu8n4q5dnZhDMtO7jZNLaY4Ti1+8i3izjO6r6WbXUkf0?= =?us-ascii?q?Fg2LFKO2KG2hQVbTtcBg=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2F+AgCYwzpZ/wHyM5BcGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwMrgV0Sjn+pBCuJBlcBAQEBAQEBAQIBAmgogjMkgkkCJFUDCQIXMQgDA?= =?us-ascii?q?WwFiAZOgUUNsjg6JgKLdZEXhScFgSwBnQ0CkzQNiyuGWQKUaliBCicJAh8pgUu?= =?us-ascii?q?DVEQcggJaiT8BAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 09 Jun 2017 15:54:08 +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 v59Fr3CL019097; Fri, 9 Jun 2017 11:53:19 -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 v59Fqx6g211628 for ; Fri, 9 Jun 2017 11:52:59 -0400 Received: from moss-lions.infosec.tycho.ncsc.mil (moss-lions [192.168.25.4]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id v59FqxgN018827 for ; Fri, 9 Jun 2017 11:52:59 -0400 From: James Carter To: selinux@tycho.nsa.gov Subject: [PATCH] libsepol: Fix neverallow bug when checking conditional policy Date: Fri, 9 Jun 2017 11:53:56 -0400 Message-Id: <20170609155356.17752-1-jwcart2@tycho.nsa.gov> X-Mailer: git-send-email 2.9.4 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: Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Commit 9e6840e refactored neverallow checking. In the process a bug was introduced that causes enabled conditional rules to be skipped. The bug is that the avtab key is checked by comparing the specified field of the key to the value AVTAB_ALLOWED. Since enabled conditional rules have an additional bit set as well, these rules are not considered to match. The fix is to use a bitwise AND (&) to only check the desired bit. Signed-off-by: James Carter --- libsepol/src/assertion.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libsepol/src/assertion.c b/libsepol/src/assertion.c index 27c39e7..ba8f927 100644 --- a/libsepol/src/assertion.c +++ b/libsepol/src/assertion.c @@ -222,7 +222,7 @@ static int report_assertion_avtab_matches(avtab_key_t *k, avtab_datum_t *d, void ebitmap_node_t *snode, *tnode; unsigned int i, j; - if (k->specified != AVTAB_ALLOWED) + if (k->specified & AVTAB_ALLOWED == 0) return 0; if (!match_any_class_permissions(avrule->perms, k->target_class, d->data)) @@ -471,7 +471,7 @@ static int check_assertion_avtab_match(avtab_key_t *k, avtab_datum_t *d, void *a avrule_t *avrule = a->avrule; avtab_t *avtab = a->avtab; - if (k->specified != AVTAB_ALLOWED) + if (k->specified & AVTAB_ALLOWED == 0) goto exit; if (!match_any_class_permissions(avrule->perms, k->target_class, d->data))