From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751245AbdFBRc4 (ORCPT ); Fri, 2 Jun 2017 13:32:56 -0400 Received: from mail-bn3nam01on0046.outbound.protection.outlook.com ([104.47.33.46]:20293 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751141AbdFBRcw (ORCPT ); Fri, 2 Jun 2017 13:32:52 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=quantenna.com; Subject: Re: [PATCH][wireless-next] qtnfmac: check band before allocating cmd_skb to avoid resource leak To: Colin King , Avinash Patil , Sergey Matyukevich , Kalle Valo , Dmitrii Lebed , Huizhao Wang , linux-wireless@vger.kernel.org, netdev@vger.kernel.org Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org References: <20170602154045.28948-1-colin.king@canonical.com> From: Igor Mitsyanko Message-ID: <47b42ab3-ae0d-688b-7024-0f70e0606902@quantenna.com> Date: Fri, 2 Jun 2017 10:32:42 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <20170602154045.28948-1-colin.king@canonical.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [12.131.200.68] X-ClientProxiedBy: BN6PR08CA0070.namprd08.prod.outlook.com (10.172.144.32) To CY1PR0501MB2041.namprd05.prod.outlook.com (10.164.3.15) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY1PR0501MB2041: X-MS-Office365-Filtering-Correlation-Id: 5b05e7ce-80d1-4e80-957e-08d4a9dd63c5 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:CY1PR0501MB2041; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0501MB2041;3:RQc0PWfjgSBqPTFqwU+yTh6r8ARSfIPknKqvJPK3pXB0qDXCaHSQB6huLwjQVDBxqpuzw4/PK6yS9uu9gbxdf1orpluxbon/hmqBW2qtw6BvjAcmDLcAAGvv/fs2ct+uMsGh9hY9EbCFLu+QItTVeX28Tad0ZoPM+Kwvg0tzNB7J+TFX1EQdcwVh3PFdxQjdEnogjaRhKwnGvnzjsx8Pm5du4f7zbaRwGvqi3UJP61mxia1BRXVwbXD7yuI3OD193RzxQN++VbTmB14asoAkzJO23DgJWg5/YwF42h0AHZBgD0TEH05SrmrDWgTfSHKA6nySzi0uVbaMkX0C23XRtg==;25:bazg5aujgbRlQIwM2TD1XxvB1RMfHW9O+JKLPugp+x09/9VE31mdXNuVXnERuy8AF1qI3xdPLYmR8tD4fBBduHgQ+M286YtW7IruxIRLJJUW0tCZsBi5hplJfTDYQlLAoENnJRZnUdREWupdvJqGTwMS7a0PSixI8HDnokpDTHU8zZ1av/jNyfsVYqhV6ii/qETdU9tPb4ickZeFi52/VwEFI41IZuyJcebygN7CMlv/TVLtZcPXGFZnfIojWknS1iHXMLPPBaOSR23Z0/6PXMtaxtxwe95lR/kRm0A/PQ53wX8iD+hd2yKuG3OmxHIaU4vlkzLCnhf2IYMUIF1XPxr04r+krSs9YF8pInc/sN3GVKBpFli9g87OJS4tfeQAA1+KZtJVz+9I1hP8iHef5RT9YCtr1O2o14SDnCToFErqN6wbQZM2+DUImhPpavpXnFoPZ2v+ULCAEnQs3pp3V5F3UzDOa44dW1325CWwyzk= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0501MB2041;31:3RjDivi9t/S9/VjavAmmse90x0ipCFy1jmXZQBxQtMv3fRfQuvONEl3LwaRSowLRWwo1raRiUVfsVn5H+MFpEZiItF4WW5TaH2cyprLxutPcvYdmLzEA4Ff6Qcg90vAd8cdeBu+hGx/S+ImCz5D0EvOJiVE3S1h19apzqgzHq5YSgQX1VODdnp519RpJoR3dfeQOlxqf33VBmuWTRLKGmHDqoKD/pNgOLRiyAc9PoLA=;20:rd7ar2XIrlaI3U9c9obSe0VLUWddSqXrcIzXeuldDBHzQaK2lpgvBl8Ip1+nzRQEm+A7+OHRsb9G67/7iT7PJfPvaPzTnyecR/F/OYURVMJH1QyA+F/GuW9f79e1H3hg18BpJLDq6pBht/grsQlkPHFEMvZobLD1CIq1/dLxifFY34MgEOcqsZ6iewMQYfg2JRCOlzPTHZk9gJTE0IK0NoF6A4gikvhBBPVOTntoar1KYtzCezbDbgkUy1h47xGw0wL16Rxm2zwFvmi/0auFbkQUtTB4tSaQM8g7jJbjbxoUtxXrt3aJhy9Fal1iaq5K/CyDCS2kI0ipPJ0xkWIMW7NOwstdWEXz6lUfNv0lVtZ3bOcvWujWHh63u4DbZhXwZbj4gyiP1J97OiSUJZCZvZJ/VVQ9yJySgOZ5qimMp77cziqlcQI/graH5yLB5+3VF9ToP79MQi9h2gemgfzuZfVFhyLPyhXtYpPI+qOPOUgoOyKyxxpaAlUqrap8GW/J9W2o8ocIRNiZe5bRC5T1drF39eXDIKF0fZK3YtSrcmxfZN7dJCvhXXAzQ2L2oHz0+ZX2aQnrDoXWpjZ6M35YEcOn0XmFRMTZolnxoeJnN/o= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(198206253151910); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY1PR0501MB2041;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY1PR0501MB2041; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjA1MDFNQjIwNDE7NDo0dFBVOUg0R0ZiYmtGa0M1dTVRbXJaclZl?= =?utf-8?B?VVNxcS9JM3dkOUVIV3l4cDdEaWNUei9UMVhwNEpYMGQ2QzZhQVU1ZytUc2NU?= =?utf-8?B?UW1saTJMMnlnTWhHRWlIVXFNYUVscW5yS0FyRWhOYVJLNTNRL09VMXQ3bUNh?= =?utf-8?B?NGdBc2NFZGZzSDNvTHNiNnRQQ3lCczZ5ZGZQVTNYSXBkcnhMSEJaaE5LbW5W?= =?utf-8?B?aHJ3Y3ExL1lyRjNwcTh3ZElubDMyREQ2dXFiNGVXTGZ0UUJrb3U2Z1Y5UW5V?= =?utf-8?B?TnFTcEUxbm81YXVuTGJqcTZUZyticmlGVEdUYllLMmpLRGF5RE1rZHBlcndJ?= =?utf-8?B?VTdCODZPbXpUd0daOStib1lGQU5WMXBsdlVORWErSWlVVTQrVnZ4R1l5Rndv?= =?utf-8?B?TFNHMHJHM09MRjhaQnFBWHFmbFU1alI1Ky81YmtXcXBKQkl0d2h3L1ZFNzE5?= =?utf-8?B?TkJuOW12Ny8xNmdCRzJSL1FKWHFJNWxXSXZyQi9Ua0EyMjc4djlvTFc3Y3J3?= =?utf-8?B?VWxmZlNkMVhHclZwWkRYTi92UmlMSXZOOEZsZThBdmxRUG91RU9nUjU4dWFn?= =?utf-8?B?NU9VdFNBUmY3aUpUMlBWOFVmbmtvR1ZhckM1b05vZXF4aGlPbE9xTkxLV2FQ?= =?utf-8?B?UUhIc3JYY0VyRlBud2F4Ujd6aTVkQ0JDdStVS0VRV1R3dFo3NlQ4eldTSkJZ?= =?utf-8?B?eTlYaFlUSCtaZUt0VWFhZTVDeUh2a3FkOEFKNnI0RTdpejJiaTJyL050dzZC?= =?utf-8?B?ZVJwMHJHbUFHZ1plZkQ5TGFibWkzc2FZMWJ5VHM3eFpwaFdoS1hWMzdtSEt2?= =?utf-8?B?bFc1ck9SZ3hxZFUxQnNjY2tZZ1REcmFaUlovN0hkaGxZby9HSFlnZWc3eEUz?= =?utf-8?B?M3I4UG1VQVJZdG1uaFdCVExUeHFjeXRmY3Irdjh2ZEpIQ0Y2OFY4TGphbGlw?= =?utf-8?B?dVdiWXdLV2pWeUp3UlFzS2RNdkFvVG83dkthSFNkL0h0aENtTDhxVVBNU2Iv?= =?utf-8?B?QU42dExsdHl3QS9xTE5VSU1iZ215cldhZWplWXlSRmVZdENXY1JWZG0yTmJv?= =?utf-8?B?OUtTTEtacjM4VWJQb1J5a1Nwb0luMHI2cGpTZDF5YXBlU3RheUlVQ0Zpb1V4?= =?utf-8?B?c1BYRUVnUWJDNkhhelQ5c0Qya0M5SUwvMTNNeVo3UkM1OS9KT0RndDNUemhQ?= =?utf-8?B?aTRBL0h2aEwxeWZWUTJLNHZRUjl3NkQ2RE5zNGdUUExVZEtiUmdjdlBqeGRi?= =?utf-8?B?cC9IRXM4Z3ROSzhNN0hoS2tkWTBVSkthYmR2WXpORnZ0VWMrVzE1dzNyWlhF?= =?utf-8?B?TjdZcHBmeWN0RlhyOEhha1BEenFucDJndmdkZVZvS294QWIrSHpTbC9JMkNk?= =?utf-8?B?MEhYYjNIWmUrQ0plQzV6aXdTWlcwVkkwV2laM0g3eXJOSFBRZldUN3I4U29t?= =?utf-8?B?K2MzWDBvOTV2TlpPQm1pTkV0U2QzeHR4Nm1ieWFzeUhUdTR5TkxrekdLVUVK?= =?utf-8?B?ekxsQWw1S2N1OVZPeC9BMTN4bEliNGVrS2hhanR0M1A2ZzBTdmQ3enBZUUFE?= =?utf-8?B?Z05GczZoWjdFNUhNUXIvMHYwUEhvL3pQcmt0VmpBdFl4elBXd2VvVzhBMXZ3?= =?utf-8?Q?=3D?= X-Forefront-PRVS: 03264AEA72 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(39450400003)(39830400002)(39400400002)(39410400002)(377454003)(24454002)(6116002)(64126003)(2950100002)(81166006)(53936002)(8676002)(2906002)(50986999)(6666003)(3846002)(38730400002)(4001350100001)(6246003)(575784001)(23676002)(86362001)(189998001)(305945005)(76176999)(229853002)(54356999)(36756003)(65826007)(230700001)(53546009)(33646002)(25786009)(66066001)(47776003)(5660300001)(50466002)(478600001)(6486002)(42186005)(83506001)(7736002)(31686004)(31696002)(4326008)(77096006)(90366009);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR0501MB2041;H:[10.10.121.34];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjA1MDFNQjIwNDE7MjM6QjNFWkp3RmNTTm9wSDlBb2hxeXRoWWZS?= =?utf-8?B?ZnJodmo2VFJQa1NpaWR6WnF2NXZlTktseDlYaWZHUXYzZjZUTk9qM3V5MWxi?= =?utf-8?B?UTI2WW9Tc3ZKNGUwNEwwYi85M0FWSnE3aXo2WTZpSUNaK21RUDNiZ0J2c2xQ?= =?utf-8?B?M3dNRm1FWEFlV1B6VEtRaFd6THlhbE5lU1RYMXQ4bXp4STU2SGdvNUV2OW9t?= =?utf-8?B?TWJpUVlQWkl3QUFsV2dzekFOTmMwQlNyTUxXd0JRa1VaVEpqWGtyelZjSDF1?= =?utf-8?B?eU9GQm50YXo4SUJzWjhldy9QQ2g4Y2JlRnhsRlJOT1c4cEtHRzl2NmsvMUNt?= =?utf-8?B?RnpzVTd3a1JBRlVVZ1ZjQ3lqUzVCQ3d0ekJXdGRIOTAzSHpsbUhHb2ZWN2NO?= =?utf-8?B?cktYQjRWRHdubG0vU29iSnRxWXZlVGhFeFUxY2c5TGhZRytsekhHNVhnY3JO?= =?utf-8?B?S3Frb1lQeFVWU0RJb0dXNDB6a0U4azRLeTQyTlZPWFNrc1RqbExSNnpjUnJJ?= =?utf-8?B?ckxSZ2NYaExMb3E3QU40T0tnb0RtTE9MU0c5eEp1TS9ieXVPQURqOVd0OGNU?= =?utf-8?B?WjV3Q2dXbkxMS1dGVEZSMmIxY2trVEQ5ZHpHZDN5bUlPUkt0ZlNXUzlOc1Na?= =?utf-8?B?QXJRRW1wYVNYKzRTUmJCakFteEQ4SHJUZTVMTjh6NURINGRsL05tc1VkeVow?= =?utf-8?B?bDRoY1R4SVpaWUNZTTJ1dWRBZzBBMVNYQWJURGlZc2ljQzRyS0V5SnVRbGRJ?= =?utf-8?B?Y0N2MlhsV3ByZlRmQXZrWUxsYXlwcUw4c3BJaUpkQWVMOTFzckNOUTlWcFdz?= =?utf-8?B?Q05uRVZVZjRVQXVWUmxjV0VJRVkxd3d5dXFFbFdwSEdLaWt0N1J6YnRXY01u?= =?utf-8?B?ZVFid1VVakYxUTM5VC94SnZoZkZxT05VcUw0cUJPbTI5REhJTDV5MmlBNVZG?= =?utf-8?B?WGNYbVVDRmV6czgrRnZtbmhIcmdOaXBLY1dBV3VGYTIxTHdGYnhZUzhlRHQv?= =?utf-8?B?akM4OU5ZSlBxR0tSR1JkWVBaNm5iNTFxS2wrNlNpclQ3T1NRemxqV01QYVht?= =?utf-8?B?QUQxLy8xcHJic0p3djBkcERvTzJERlZ6dFVCSmtKS1IvSEMxNVljR2hZanRC?= =?utf-8?B?dXk5WElId3c1eDRINmxDK3p1RTNjRmVLaEhKZS9kU0diUjBZb2RBQmgxb3BQ?= =?utf-8?B?WGFWQUxseGsyell0OU9BTVEwckExa3FMUnVIK2VxZ1l1ZjFGcWRjamFET2ZE?= =?utf-8?B?UW9mQlZKZmN0Qk84aUNxSVIwbDRqdFNJb3Nnb3B5d0R4UmFwMjRCV3diM25B?= =?utf-8?B?ZC9vcDNxZUMzOXdtZXpFNmdQMEtZL0VVb2MxLzAvOXJKak1NOWgveEZveEpK?= =?utf-8?B?WUh1Yk1ISElGNlZKYmFPYi9nTndsc0EvT2RsT0F5WjUxdERXY0x4TkFxY3No?= =?utf-8?B?WEFqc0lkSkpQOEhXS3I1TWRIUFowT0tuTVQ1N3NwT282OTNjTVRpV0FCdjQv?= =?utf-8?B?REZuaGZuNDVQcWVyUkJWM3BqSGNCc0JxQ1VQaWR2c2w5ZDdEZDF3SUhLcWsv?= =?utf-8?B?ZnE2T2lhb0p6UGhoeUdHTURNR3AyMkRleHBvcFJlazZaeTVBKzA1U0RPUHJB?= =?utf-8?B?dVhvbFBFQ0NVV2ZLejlvNzdVR0JSVjBGM2JOWmdtdTNyNjFzTnJJZkhsM1lY?= =?utf-8?Q?DFyKsoRaWyucVh8gag2Q=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0501MB2041;6:R9Z7LoBBtE3ohZUiEqMZYklBpv6g6m343orMgkSg2JR9IGCG9vVjNHgydXXaYUDrxynK57hub4tuegtje1KRpfgtHlb3K4+ZFQdDice+hsrT1vyO5KBvy04+jg8jyTmv8VObavMIswzJAB1f6NhUKDKHOTTWTlSQ02CKVwBM1fJNck7coPffqGm0F2NjZeXlOioSciMggofM/Do0ntSD9TddKMjS8d1u0lipHrAP6EK4iy7hWkkRvwqvmWRqlovDAEpqCbom4+xIZbeTDEVP1yck5HcdY1PzW5ypboMG9utB12XLyG6DgyZ6opIbLv/37JCd2UT+StXzVNPEuYEQqZkGZklc9A5Md2w94jsK7wu9vtP+vMBNDouagQex3DUC0vAKMxkLw6KzZTZ3IaYT4ZqGdk5ZpyQfjZlGLbe+ZZJ43nNv7LD6cab+zsdoUoaGAoseg4cbjxO3ZrG4yttBsAIsx7EKi/yqH68but4Ij3WZx5VkwQeHGQ0YgFRQBp7BhRNZSInUtzk3n6dV+jnWBw== X-Microsoft-Exchange-Diagnostics: 1;CY1PR0501MB2041;5:etc4KKGwiYXcDBn7qC7RRZOqFYyYXMl8uebzJn/xBxSyjUSk9QLMlWfux5ctdT6gacXMs3iCmMVv/EvRT3FnFDh9ZiwicdF6DD5XVDtpE9OH0qmf+gyzw0yGizh3Iu4puM2RW+s42nkzvyZObqvAB3465Tp8hTdgQzkZH1bLoV6l/zRKMl5Lzo3fSLHh208BIMb2/WqKw6L+Uy1mEKI33hC6aDLUrx8O2wwCDzqoPVP5XZucxFivUVQ35gyh5LsLWGjzQKFTGxgbFkPoLFKj+kas+svZskcIOPSE2DNAe7ENYGzmznWJooMLViVh9OX6F5jktbYGQb4BZLhNBKDUoIP+1EAUZFKi8jEsRgPH/kSZEfeUSnRcqVgnkGQr1NrHzZikAbwkR3w0y4iaxAgX6He6U3wzc7AFS03nPx4ci8g3rZ7CxjUlfKTGKFujcSrdRQOGLxrlWY6d2uD1yBNCgPAY1QtHooInKqO/Nu/7LamHMv0eeoLuEbVcz7gd3oSb;24:aV8yqxw3Rh39wMDSe7SctonTI8HoU20ErqTzjICxH6AuVT23O2DAk3bjhcyhXOC0JnpCCl6qgbcakGAJWiyS9wW8Gm7zMlNrzEANv7TiFYU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR0501MB2041;7:T35SAYJkzW2bV2Vq8SO6ZPLiT/0CLHBZnYQpeksy4HHrrhpN6nhrOHHc5B6PGV50CrNak3M3ifdYY0fx5Ti+pNJJG0AoObKAIFrRUlKMcH3e1lhDKT8DJiJciEmtHcAO+Qbs3F5F2A2c5/DN+LZej9WtKkTPC2NsKnbqjLlcMqXUr0kr5vL1hGmrUsb4EJP4mYbWQHWEuT5dwiu659+zCFwfbkfSTGV3R+4bLaEZA3OWTkisIbKUE48FMG6YIveUsAusqxx7v4mVHdH09eBn5FvPVJZ3P/02on3cUROMh1SZILJ1MaZGC1uLCw7V4T+4ur16AzkyfDv3y3kn20I1tg== X-OriginatorOrg: quantenna.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2017 17:32:47.1122 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0501MB2041 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/02/2017 08:40 AM, Colin King wrote: > External Email > > > From: Colin Ian King > > The current code allocates cmd_skb and then will leak this if band->band > is an illegal value. It is simpler to sanity check the band first before > allocating cmd_skb so that we don't have to free cmd_skb if an invalid > band occurs. > > Detected by CoverityScan, CID#1437561 ("Resource Leak") > > Signed-off-by: Colin Ian King > --- > drivers/net/wireless/quantenna/qtnfmac/commands.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/wireless/quantenna/qtnfmac/commands.c b/drivers/net/wireless/quantenna/qtnfmac/commands.c > index f0a0cfa7d8a1..cce62f39edaf 100644 > --- a/drivers/net/wireless/quantenna/qtnfmac/commands.c > +++ b/drivers/net/wireless/quantenna/qtnfmac/commands.c > @@ -1300,12 +1300,6 @@ int qtnf_cmd_get_mac_chan_info(struct qtnf_wmac *mac, > int ret = 0; > u8 qband; > > - cmd_skb = qtnf_cmd_alloc_new_cmdskb(mac->macid, 0, > - QLINK_CMD_CHANS_INFO_GET, > - sizeof(*cmd)); > - if (!cmd_skb) > - return -ENOMEM; > - > switch (band->band) { > case NL80211_BAND_2GHZ: > qband = QLINK_BAND_2GHZ; > @@ -1320,6 +1314,12 @@ int qtnf_cmd_get_mac_chan_info(struct qtnf_wmac *mac, > return -EINVAL; > } > > + cmd_skb = qtnf_cmd_alloc_new_cmdskb(mac->macid, 0, > + QLINK_CMD_CHANS_INFO_GET, > + sizeof(*cmd)); > + if (!cmd_skb) > + return -ENOMEM; > + > cmd = (struct qlink_cmd_chans_info_get *)cmd_skb->data; > cmd->band = qband; > ret = qtnf_cmd_send_with_reply(mac->bus, cmd_skb, &resp_skb, &res_code, > -- > 2.11.0 > Reviewed-by: Igor Mitsyanko