From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751643AbcJBTgd (ORCPT ); Sun, 2 Oct 2016 15:36:33 -0400 Received: from mail-db5eur01on0076.outbound.protection.outlook.com ([104.47.2.76]:10592 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750856AbcJBTgb (ORCPT ); Sun, 2 Oct 2016 15:36:31 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=tariqt@mellanox.com; Subject: Re: [PATCH] net: rtnl: avoid uninitialized data in IFLA_VF_VLAN_LIST handling To: Arnd Bergmann , Eric Dumazet References: <20160930161416.18660-1-arnd@arndb.de> <201609301838.05349.arnd@arndb.de> CC: "David S. Miller" , Roopa Prabhu , Nicolas Dichtel , Nikolay Aleksandrov , Jiri Pirko , Brenden Blanco , "Hannes Frederic Sowa" , Nogah Frankel , netdev , LKML , "Moshe Shemesh" From: Tariq Toukan Message-ID: <86297d37-c01a-070a-fe26-b8f160cb0e5b@mellanox.com> Date: Sun, 2 Oct 2016 12:03:37 +0300 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <201609301838.05349.arnd@arndb.de> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [89.139.212.133] X-ClientProxiedBy: DB6PR0501CA0013.eurprd05.prod.outlook.com (10.172.232.151) To AM4PR05MB1555.eurprd05.prod.outlook.com (10.164.80.13) X-MS-Office365-Filtering-Correlation-Id: 2e854861-8587-475f-d138-08d3eaa3085d X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1555;2:pZKbzwdrA7EI7TH2AC0QyqfTHPJCIEJIOMy2jMFrMq6uAfwtC86WUz7ycaW3BcHKu/g7h+RYj5eLLXLkSAYjXb7oGcsGK7efdD5bNM1Xawum5UiomLfTjqM0tG6JxS0WBPIzZwgY6hjEchrMwrkqpIEJ3S/wymcGcVp7+3ruqE4srXH1NyO5t22+5tW0JOy4;3:lWsdNrl2dI8JGFFU0e3IslDHB1MUZmiSTLBWfq08SWiT1o9Bm7uB0nYDkNdPN3Ds4b2NskhTavu9+E3UJCvdNbxsYPTIbhD8GTESh5AabzSpVx6XI7gmLppZ73nz41qB X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM4PR05MB1555; X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1555;25:mNlJmCT2x3Bed6AVZVIfqWFeQ8bIkQA0zKUYhMCt4g0hls1659A4xu+h+pftsY+FyrQDhfr8+40EqPfW6xgmDS4UAzmNtWxQAgXJaeqXFZGaJrcIJKGPIKboWhmA0EeP5aa/KLWgiTe6IX8zZMy5NO6ztmaA3rIGMmMxAYbATAIgky9F5A4xwbgRd5R+yPzFUWoNVCbGQ1Ly2TqKbDfAKWUnw7VpRKrGZiZvMnDbdZ2FHIvZgBJBLbjP+WGVnxM2CMTs671yxdDo14qyD0UKtGDAqaXJY8Ip0IesXpDHN2hHQb9tEz9AisRKIBl4p7+nCukQGsplFjj0EyGSUSxKby66gu6VHUF5aoAVRhWOKG0MOP6+6vkJCJs5K8WLTG337vdPZYPzrnj/qekQVeK7GTPiM9DlVU676xmsQfFrYTThyivd4BuS31MKJcAKpElqUMLdJxX+Ykbxuqn4xtBARe7pUZ3oDIrM9+qqjfDxxlUNF8X18K6A8opAcjPG75X+4VziLfFFJpI99lHKSN/1HJoO+HIOha751wBT2cWytnnXYF2Ex+xUeOuuuTV9DTiwrDIrEoVd20LnDv331C13+5ZV2Y44tlLNWTdd3DtmlJMg2LqD6AfHonEVe9wzpn4txkHRSYFQhj1AB7yLXUCJhndVBHpctdsMRvBzkNPxCCwkbsdgeRM9ugKw0eCeRKjc2s/Xlil/asklySVluVkgswmvU5bi/8xeS5FNVTVZSOE= X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1555;31:jS700nrU1reD4jEiaqSgXcHx0i/aoarI8SA75BkdGWRj0puf6xk9cLAnLwxXpfMuaKFAxcJfn8w/z3T81bvxJN4dI4IY95+cwm9JwJhhKE/HD7XhSvJ583qd8Fgc5jfyWJaeyM/CUqgmCLTzryllemRqj4c0sVN7gQMt2qu/E3q7la1KJ4CxRCRDZj04z+ANI3wWqxtddJquVDHZmRaJZ6p1O9qs7YYEXYUfbiD7wAA=;20:BI18IidqTDAt9rj31FSpqtsSqvOZ3QTi6R2q/QsgencKW4MUyi03zgRcoXnA930ViAKdc/Y5yKYsIPT1GEXLsPIZUWrfmlUpz9E8vl2qEKGZZHRXi+wekAHJhYceDGrLrxQcrZCpKzVtbNELNMF2Db5oW0IbI434E4Q2ych4RgPtFtpFGqMYNCgFDrOzMP2rqrI+Nn3NyzvJQhvFeH15yR/L/7795YHdNjbwWBB+2tZTNvHG/1tOcC0dxMnI71dFQ22DD2WeO3nGE6CFpDHz8pPCjZpkmA+LDQ14hsdnf8seFclCZITLe3JajgGQaGlfjQdx4s4ZrjjRzU1r1jzRaPrwTuuk1asV3c+QLacyosb+HyjecaiZ1kmwxGr+BuZpyPWj0CvICQBM9Qy19b37q53DtUIqLErPn+tP7Lgzck3rcW/nOEF1epXJl06hk/AjrQMMrja+YKN7PWQB3obIZ4S64flRYWIOnSDqnasPowHl4r9AHyBjAA/7v+e+onl+ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026);SRVR:AM4PR05MB1555;BCL:0;PCL:0;RULEID:;SRVR:AM4PR05MB1555; X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1555;4:QFH/zohOi3KFQk5Abx6LtgDYFVTIpV+vRsBSirwQ+DGkpMzJcef0ydx08VtMjRmYvLY/47FVvhCZ+Ndg1oraVUQDV8h6QtjGeB2pACmvIlq5o1MqE85MS1VL0luvTEC+K/7kU/IvfPrknbqouyesQLxN4j751c62aVBr9jKgwvyklpJ99lkZV4SuZvGuhj5W/esbB6TNyvgJaxQtPtHiD5tkOw6z0TtneCPTKButgQOMz2GUp4SsAlzkvx9jznsoFA5cXCH7Boy6I2stfep+1+etc0VFMmkVBqv89lswlyNcGIf5Y0MaZXG45rBJgqsJc+0kPpkbi0ne5D+WAvqzjqaUC9gye+G/ujOpQIaUr3GC8f6AwSkxThMo/49nj/lLFx2Bmemzcr4jFNgh96+uheGJ/UUhAgFTqZgLXz/ZlnM= X-Forefront-PRVS: 0083A7F08A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(7916002)(24454002)(377454003)(189002)(51914003)(199003)(4001430100002)(4001350100001)(64126003)(105586002)(5001770100001)(97736004)(92566002)(106356001)(33646002)(107886002)(101416001)(66066001)(65956001)(65806001)(4326007)(50466002)(47776003)(230700001)(81156014)(81166006)(31686004)(2906002)(42186005)(8676002)(36756003)(76176999)(2950100002)(54356999)(50986999)(7416002)(83506001)(23676002)(7736002)(68736007)(7846002)(6666003)(77096005)(305945005)(5660300001)(86362001)(19580405001)(19580395003)(189998001)(3846002)(6116002)(31696002)(65826007)(586003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM4PR05MB1555;H:[10.100.102.13];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjA1TUIxNTU1OzIzOnlHeE1jUTN1ZFIxa3ZrYzFNTzFWZ0pDRE1I?= =?utf-8?B?SWYySkt5YTlNSVYzclUwSlc2cVZHSytLaVJJTjVpekE0aWcvWEdMeXVWaE1m?= =?utf-8?B?N3Fpd3JNOHM3bnhVam9SQi9XNmRXUnFLbHd5ZkVhSHR2eE9OZ3pUUENYbjF1?= =?utf-8?B?NlppNW5RaklWTDNqVUpWZmIzZVBTOVJVcThxaXFLdldUTDlyWTVKMTdVTVgx?= =?utf-8?B?THJvOUhlcExwZUIwTVpJOG9mb2tUdDdLcEFiV1dsMmR0KzF5cTVGS21icmRk?= =?utf-8?B?VzNxWEtBNjdmRXVHaUEyalJjUWtENjJYbzJUcVdQT25laXJZZjRRZWNKMEVY?= =?utf-8?B?eVduK3k5TUdsY0E2T0pUdGRWK0FyV1hQQWk0MzYwMk1tWDg3VmRNYjZqN0R5?= =?utf-8?B?SE9hWGVia3pYcTE4RlVXV3pSUmpkaHZKcnRQbWJHTFRQUTlCcERPaHpsWFY1?= =?utf-8?B?MFZ3M2llM1FON3dSNis5TnFpQnUwRVNEbUlpUFgvSUZKSTMzMElxUDgxMTNl?= =?utf-8?B?eTlnOEozZkZqYnA3YWF2NXpWYmErWDdxcHZxQkpTcWFYMWJtNVYzQndBckdo?= =?utf-8?B?RFdxb2svREJwdFlpNnBmNHUrVmdzdklTRWlJUnk2amNneXpWYytqL1NhZTBx?= =?utf-8?B?WHlQRWYvRUNyZVNvTDN4aGJFSzdtRnBkZ1lFMjFOQzdxYlB4K01EOXhSWmha?= =?utf-8?B?NFN1SFNGbDdnQWNTQkVsN1VYRVhySExlanpzcnljVzVFbytDclVIL0JSbFJU?= =?utf-8?B?aVZiQ1JOQWw2YzVuMXptZFcvZkdLWTBCYlhOUWRnNFUyOFI3UVM2Skttd2FZ?= =?utf-8?B?QTZ2WnhtaHY3RmpIQkcwUGdMcUVnNmRXY1VjendSSXEya091c1lrdEpVazhC?= =?utf-8?B?VWFCa0NCdWwvVytlOXQ3WitxdUs4Qk8xNHczcVJwY2ZkNE9LbDRhVVAxM1Fn?= =?utf-8?B?MWFFZVVqeUFNdTg3WHcyMGVmUTRXU3MrVCtDSktkWVdESDBFc2NKNjNneEVk?= =?utf-8?B?UnYweW5nczMwSUVKaWZGaXRQOEIvM2FmVjdSTHNWUTcydWovRzFzK0puK2Nz?= =?utf-8?B?c1FadzNZeEo0L3B5RDJiQ1U3Q1pzby9vL1NKSmhXTndwZisvcWpOcmFlUTRU?= =?utf-8?B?Z0tvYkdMS0E3cFJmR0JJWTYyVGZoMTkwTW1kVXpiSllXRUJ2VGRQWXMrb0Ix?= =?utf-8?B?RnF4SUl3d25CZWV4aWhKNHhnNTBHNVlFQTlRRGgvMzc0OFdJZmVRbkxQR25R?= =?utf-8?B?ek5HdWIxQnJIRFFLZHltSHpjclA2M2lZVGplWkw3dkUzK0xFMFdEcnEyK1Vh?= =?utf-8?B?d1haQTBFcUFjWHdXeFdhRk92TmZhTnE3eGtMQTNaYUszNnlJVVZjYVVibi9Q?= =?utf-8?B?ckh1dEkxSEV1Mi9GZjdCTndiRzNIU3B1WVVOYTFjeXVWKzRkS1lxclM5WlF4?= =?utf-8?B?TDQ3V0txY2lRWElZMHVNVitMTHFncGZZOVJiSFdLckMwUXZTOHY5QlgxOGlD?= =?utf-8?B?WDJkbkM3VzZlSGV5MmRoVUJNRWJUMzNvLzk2U2t4RnB0NFloK2JSOGZzUzM0?= =?utf-8?B?YnBnMWVPTHY1eXQvb0tnZjFydDVvMDVWU0NtYmN1c3oreHZHWnQ1eTlWMG9F?= =?utf-8?B?UWRCMFBwcDFJYzBUenZPcUN5MUFGWFM3YXlaR0F2NGRWUUhuMC8yZkpuMWU1?= =?utf-8?B?a0xWclJuc2xiclZNdGtUcmZnemNRWGQ2WmRkUEZJeW8rVHl2blJTaDVJUHU1?= =?utf-8?B?ajYyVlhPYjNWRW9pOTVHY0MxOW0yWE1NU3BnbmM1ZnM4UmgzNERvQisxYjJV?= =?utf-8?B?d29lOHlCanplN0ZmZllzRmY3Q1ZvUXBDSDQ0WGI0RXJYWU10RDA3YzdRTUJW?= =?utf-8?B?QVNoWWtRMjM3Q2NiWisvdUJ1MEo2Wm9GMWVtNnNDRDZlT09FR25oTU5KZFhX?= =?utf-8?B?STl0TS9qNDBBPT0=?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1555;6:7HxVUyBYHuGnsBDnAD5o0iMoDFjq1I+iue15AP/b/0I8OlyP8OorquQM6cVh26ZyEgChaslnuW8tF8qau0YZ46nlpXeigDMIti5Mti5Tm22acwEQu6UGg/FLypDYLGpktV9YpOXu/+WQzSNaCYrJ6081lKfJNkkeeInRwHGpRufnDYj9Osjiec8PJxrUYXMevHdByDPEFmBObjQHFkQPpIQ73lxIIVAYmcMtoACixG6TqpXysgbqffq+WFTP1SAo8U5K8rjePCOXdXiJjgmTVE1S+XMDKGjanJ/ZX0qSiX7d8ICvN9v3k5ncBPFCqVapS7aWhGJXx48A3vGgBoW9fw==;5:q1ArnXveSJVij1XCJyyiueGsrihdZbpgvxgmBkZvLTt2S6lD4HzQZ6pXhKdiE/hpfSyEujbe0JBSHIWWfxkooby+ZmQMqYVewZl1Llfr/t400jiwoX2JR9DNjd6P2E7KGmwWuN8vl/65m2cVHNoXiA==;24:vkmb2Wz3K82i4IlsFc/Z1WtrdzCeH6g9xMgX7t0MHZpIv0pEU3/B//uQQEmJR9DX6CNRYfj+dEByDtFXKBRGmj2HGpjYxjzXIQZ4O2Leu1U=;7:aBzF8FLZ+W9ds8iS3muizS99XaQkSgVXxxDaE9Qeoe+KvYRoG3PeIdYJ1aOjsXfq54Q14UmWyixAA9meXp/bXDYWpY6XEt+M4xbu2YPbxpWHHYhPg1FZJ3Ee6IZR4FWN7Ahg8Adl/r/6v63jT0cMkF5NQ7uwKvAZdezHcgJ2DO3ivE6BwAlerqOcOLkHCIu80TXh2rIMzjWv1Ba0LJUpZWv8Kq1/0C4elY9oUJpZTxpceEJTeEr4qs1w1n7R9XoXoYow7Pvhkw6BxGSw05GHciot/mLah5OeJddREIH6AC25zkNdq7xmoCknLd4Gk2dy SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Oct 2016 09:03:51.2242 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB1555 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Arnd, On 30/09/2016 7:38 PM, Arnd Bergmann wrote: > On Friday 30 September 2016, Eric Dumazet wrote: >>> @@ -1753,6 +1753,9 @@ static int do_setvfinfo(struct net_device *dev, struct nlattr **tb) >>> >>> len++; >>> } >>> + if (len == 0) >>> + return -EINVAL; >>> + >>> err = ops->ndo_set_vf_vlan(dev, ivvl[0]->vf, ivvl[0]->vlan, >>> ivvl[0]->qos, ivvl[0]->vlan_proto); >>> if (err < 0) >>> -- >>> 2.9.0 >>> Reviewed-by: Moshe Shemesh Thanks for the fix, I will add the flag to my makefile. >> So, if I read this code, we build an array, but call ndo_set_vf_vlan() >> only using first element ? >> >> Looks like the bug should be fixed in a different way. > I was wondering about this too, but didn't understand enough about it to say > if it was intentional or not. It is intentional. The change we need here is the option to set the VF vlan protocol, so our hw will insert either S-TAG or C-TAG per VF. The previous version of this patch didn't use any array. Then we got a comment, which makes sense, that the new UAPI interface should be able to support a future driver that might want to set both S-TAG and C-TAG per VF. We could have used a single struct on kernel side instead of a list of size 1, but this would cause bad/not scalable code in the parsing stage. As the UAPI is a list, in the parsing stage we thought it is more correct to use the constant MAX_VLAN_LIST_LEN and iterate as of a general case, even though currently the list size is one. > I just realized that I forgot to add Moshe and Tariq > on Cc (I relied on scripts/get_maintainer.pl, but didn't double-check). > I've added them to Cc now, hope they can clarify this. > > Arnd Regards, Moshe and Tariq