From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753462AbdCHN1l (ORCPT ); Wed, 8 Mar 2017 08:27:41 -0500 Received: from mail-ve1eur01on0098.outbound.protection.outlook.com ([104.47.1.98]:36944 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752867AbdCHN1h (ORCPT ); Wed, 8 Mar 2017 08:27:37 -0500 Authentication-Results: canonical.com; dkim=none (message not signed) header.d=none;canonical.com; dmarc=none action=none header.from=axentia.se; From: Peter Rosin To: Colin Ian King CC: Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , , , , Peter Rosin Subject: [PATCH v2] iio: multiplexer: fix unsigned check with less than zero Date: Wed, 8 Mar 2017 14:28:18 +0100 Message-ID: <1488979698-12545-1-git-send-email-peda@axentia.se> X-Mailer: git-send-email 2.1.4 In-Reply-To: <687fdd3a-4e0d-1eda-e8fc-27173c611909@canonical.com> References: <687fdd3a-4e0d-1eda-e8fc-27173c611909@canonical.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [81.224.171.159] X-ClientProxiedBy: DB6P193CA0013.EURP193.PROD.OUTLOOK.COM (10.175.237.23) To HE1PR0202MB2553.eurprd02.prod.outlook.com (10.168.183.151) X-MS-Office365-Filtering-Correlation-Id: 4a197fee-8315-4615-4b23-08d46626e0bf X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:HE1PR0202MB2553; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;3:EdQMeoxSWsibcMEcEy6UFaqfPgk1x4fiUUpU+ttP0TRfmHAPXvsboHj/hnQnqyogDB6shNqTq6TdEbPeYqziimwCh17f27wyLGp9wl3g/iT1JFUQ5ExyFqRthHksBavUUbL8J9RrLotrtXLf1mZzZH8IFSr5TXhCTwOvDc8AELGd518wDj7RSk9NVsMXDLEqrIxtjSrr5FVIX5LbIJ1WBjqjeci/0iRSS91NvnGbI09mLG5JaOUrdY/NGCfEcDKsOV+fMiTsBUjfDj79RQpEJA==;25:3Q04/IUbrtAd65GKnfSib+GLAUcHWRMJcePBFudUoFpBqNQRE8tSQTVMRqom34OT6YVH5QRp121XDgwZocNmI3LMINT83S+DryU7O4Wygswb3dfYmzeIbjLbmD9y70wIgy+SQftGWWk/aBsJtcreZDYM0Kk9gB8+GfOunrSeDcTZIooihvIlvPopg47vZ3D1XF0TsBQovpU8JDM11Fvr6c9eD62MX7fzm2qarWhQeDwazx4Ad5TiQe6y/G1aC6C31UUaEYJzfzEAAIg/Qi+a7M0Y+XOGB0IlzTL4gXf7vftIvY3HMqbNzoe5Y/D1ACO+16Vb/PUnJyybpZTmBnjHEIj3BZJAwlSPhoqnT65h6HD1HU36ZbLbWtVkKcNZRjJUljtPjbenpkB4xRV/WDVqDNp425AJ8pIxLlIg8XPpzFdnwP043JeU45dFVbGCZhnX X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;31:xNKzh9ZLSlCNQFqDWR3DOsT7MZrMeGqFELz/DjRHUJaRIXlXKhxSHHumlQdWIVkfoE3oPoLSnjR2xsQzaBuUP+IaC6tXyuWs0ZOSUz1XY0If5ctxkk7XTf7pKc6/QX7rLsHuy0DXyuK+a3jC6t0slHVN9n6B380dKFe8syUFbK5x9id7f8nutM0APKM371910MUVTTLtS1d4vv3jSfqN/Vt7RwuaKFjJfpvdbUeryGc=;4:a9UtNhHTuZeeaSs3aSuqRfRUpC+LCijYSC0zkvTTCzuQsfMIgC4XQD8GbJcIYa4LmWxUTV/LLG1avTAQ0U++2ZyNw7oXIDHp1I4qrU5U7udzBFmGsSuJRPrJxcVS1IHiP8sCa0ibw3hCEPfHi0GncgV5FfvYJMX5ckgeZddkFjChO0FjtgLdv8moii09aF/I4zsZtMDCjyeYFK6xpYtP+oNE49xf7R25dhcUMI1P88YiOTSZ4BExuMDvJP8ivnjSbUgdRB8URGQOxHxewzqkNgrUtj9Y+MOfIBSKmBNPlauTxThtLBQ5hNMoyEpqW+Y02bHbmuHZ3bBhjJ5R1dmFdyWjGSrZWu+3/o0QEkWkUhE9cImOOLsLsRC3lDQUeclmz6cOiiMq0tQBOglFTdyc3J/Tk2SrZvYJqJOOTOF2L/3c0X1HWVVTG9iUJkLZ6c4zWJEoGJHYsMAzKnGvNr20FNHEZNC9LRc9TpufjYOJ7VmgWyS3c2gZYDa/GQgJYWfkMWk3NfPRJtGeG7li9f38UY5P6644plP1yGoO28obQBO7VRcrUAWEUVhv3H1xcNXSiyMTnC4Tez9C5b5fsJFdjEGQxCTNL8A59+vvK8mH/iaoV4FeKr9E6jzerW+bRjttt7SeG6my4aZn0ImB+N9Q7eQR8xPKaVXlzKCPgSiJ2NlhzaSQTMZ9pOxNlp+XeHVg X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(198206253151910); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(2016111802025)(20161123558025)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(6043046)(6072148);SRVR:HE1PR0202MB2553;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0202MB2553; X-Forefront-PRVS: 02408926C4 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39450400003)(39830400002)(39410400002)(25786008)(50226002)(6506006)(7736002)(48376002)(8676002)(4326008)(74482002)(53936002)(47776003)(81166006)(5003940100001)(107886003)(66066001)(6916009)(38730400002)(6486002)(110136004)(36756003)(50986999)(6666003)(76176999)(3846002)(189998001)(6116002)(305945005)(5660300001)(86362001)(50466002)(6512007)(33646002)(2950100002)(54906002)(42186005)(2906002)(8666007)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0202MB2553;H:localhost.localdomain;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2553;23:hXbF4eEVyXXIoZMb4E7om4fYGYBZZYM8VcdMaUg?= =?us-ascii?Q?ZwMdy9XHwySb7yZ4QkhUY8HVWCwbpbkJyvsn+4Q07vk9VVMmdfVl2Os8Y6mF?= =?us-ascii?Q?oFSvAPxbeDikqPtjVixZxGy2hZbqb6iwwNBiJPAJC0bCazm7fmAJM+stsa3/?= =?us-ascii?Q?5Xm8PIvMqbdB1Gv6Bk22vtPgeFrjUVWe6j3sk/Dp0V5RCNvY+du+U8FDIS5Q?= =?us-ascii?Q?6WsKZy7fwDTEl6y0UQfCYMf0bF/h268XbqVQRRVT4tyGWCKkSwWLLt3CYDsq?= =?us-ascii?Q?ntnNAF3Mo/14bTauxpji9Sputmai3w4A4HXRStKj1Kq8SYHM94tkafmK83h8?= =?us-ascii?Q?/ViTfAvGVJQaRtsWrjtTyDLUGcJ+vzAwkB9TfnhuzquMrFWSgTdt79kKNXrQ?= =?us-ascii?Q?+dWLxKeahoHDed0zdBJK3AML7Lc7Eqn4Kkirja9fK/MrdrOD+2sKwx2itMJe?= =?us-ascii?Q?+MeY/aeAuvHZmzo9Y9sIN/rz5xparddZgd1E3Kv8oNN05ZFm8v5bYdoeWQ2L?= =?us-ascii?Q?JEsn4YXQhg/ATGFeQ3RZkO1kHfjuYDBTyKp25lfv87TjkbIu9wnte1MHJSGv?= =?us-ascii?Q?5Et5t21tCPJ8XkNnAYvTrp86Hul73OfEBLn10XmF7YydbHJHsgbk+1PNzsrD?= =?us-ascii?Q?IEim2e6Z6FkbveqMfHF2Ec+LAaTVNUahY8Mq+xlGOgyXKIT9/sM3CMBrNwK1?= =?us-ascii?Q?Y83gwXhJ6TysvuUy4hoIUErYcH7aqgyxPgHkCT2Rh9qVWUHP5rAJ8A/hUJmw?= =?us-ascii?Q?AL8Vip/osgeQ42OGGTDZ0IsU4W+P5xc30DejNgzUPpZ8+5c+8125kGIor9zt?= =?us-ascii?Q?pY+ZlyThFKn+SesBCmIGyjU22yU3whSolV0ZOfMXWixkBd3Sep261mv5oUrR?= =?us-ascii?Q?TiP/2IOnzzQUs7T5rnkH3+mh/ZBsQFdSWAnZHG0RvYKKGXTDC5h8eU54r8gk?= =?us-ascii?Q?StizsiVr1PaV+YaqsI3LbZW/zDlVerDcZMXPZ/5nB0qReUe21axEZPWDHUaB?= =?us-ascii?Q?HClHi5LtWT2G6PRPWxEsT9eEmhMPizohW90L87WBP8bWYDlpzv3F244Kh6aI?= =?us-ascii?Q?ZOZPNS3c=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;6:e8fP5h39osiPp7BPkoWyE0ebLtx+EHUzp9y03jK0/7aEpDXql06WbJfPz24lLR1NKrMxv0dRrzRjn46y2j9IsMHAxsHwPKyqIL6e9FtDEsJVAb+rnL53CVOrrAm8g3XgLvwJBchYXi+ixnGNSv8WK4MpfoFi2M4FYrENsDlBNEtEAJ/+3+pE3z3e9snqt5P2JjZpDleaNr6pZODCOSy0nY741PJVFNOBX1x831oJNN00cH7rQo8RPV7fC0TRdtP9/WecY6rEcWXH4kRfTnyKCUpwZfdNicyDkNLkjs0ZzSz32Y+Ob10Zdkg+5I/yk56wxLdgUneDef+JXTTpqFB8pg4uL9EORo9cFXFrwXso1XWYolx28C0B2AQcbNssmV9Jd97YVN10uw+4pRNWrMPS1Q==;5:8Qrly5TAXCg84AJgP2EemzDHSmkJHC3+3OKBmb/iztABQvnxt0YtWaSV1B1oVGscdQSOIzCdgHC4ITmpt5tTld0MyPL5pkTybHIo+MFTtzqZ1tka2/JYuox34tsCNU8tRKeuxA+QRg5QOvUnEwbmzQ==;24:r9WDVEXF1iZwM9uWZ1auJkefJVexdDhGQFPhGW+0fFjA7XwwWwsh3M4ozyfYeQu4ZYF3LfQc41ZjeoHIpJJXxotmCq7RIOD6HZnH0/rDdO8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;7:+dBr7EjNXv5/zG9JRgkewfwIsMbfOr03+RDhQsKaisLyT4wBeyyyIStQQZEn71wUau184PxMSZ4BZwzSd2vU/kV87JjH6dCsPJn0Yqe8otsI6NGzqRSGUpKFM6EC013yAkKrpzOuBEaZzLMmwMZ2SvIeUHsCSR95ljlLm8YmijlHK6sG3NrW2lfDGpkmUwHvLEFCa0CBUQXEtlkeaCgh8EmqvgFUc7QxAcwYMAAsTEg++2pusdIXOUOVSgGaPmtgvFYbf+FatPk8Z98295yGCexKWkagOgtM6/Cb25ZOAWbgjQjjOnu/5ktr9s90cq4Fv3zz19bnDdfqXqYmvGXIhA== X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2017 13:27:31.7130 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0202MB2553 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Comparing a size_t with less than zero is always false as size_t is unsigned. So, change the type of the variable to ssize_t and replicate the size check from mux_configure_channel() into mux_write_ext_info() thus ensuring that the size will fit in the ssize_t variable. Detected by CoverityScan, CID#1415278 ("Unsigned compared against 0") Reported-by: Colin Ian King Signed-off-by: Peter Rosin --- drivers/iio/multiplexer/iio-mux.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) Hi! Here's what intend to queue up. Cheers, peda diff --git a/drivers/iio/multiplexer/iio-mux.c b/drivers/iio/multiplexer/iio-mux.c index 94d40f9b..bab9e69 100644 --- a/drivers/iio/multiplexer/iio-mux.c +++ b/drivers/iio/multiplexer/iio-mux.c @@ -21,7 +21,7 @@ struct mux_ext_info_cache { char *data; - size_t size; + ssize_t size; }; struct mux_child { @@ -206,6 +206,9 @@ static ssize_t mux_write_ext_info(struct iio_dev *indio_dev, uintptr_t private, char *new; ssize_t ret; + if (len >= PAGE_SIZE) + return -EINVAL; + ret = iio_mux_select(mux, idx); if (ret < 0) return ret; -- 2.1.4