iavf: validate pointers
[ Upstream commit 131b0edc4028bb88bb472456b1ddba526cfb7036 ]
In some cases, the ethtool get_rxfh handler may be called with a null
key or indir parameter. So check these pointers, or you will have a very
bad day.
Fixes: 43a3d9ba34
("i40evf: Allow PF driver to configure RSS")
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Tony Brelinski <tony.brelinski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
ddcc185baa
commit
77f5ae5441
@@ -975,11 +975,10 @@ static int iavf_get_rxfh(struct net_device *netdev, u32 *indir, u8 *key,
|
|||||||
|
|
||||||
if (hfunc)
|
if (hfunc)
|
||||||
*hfunc = ETH_RSS_HASH_TOP;
|
*hfunc = ETH_RSS_HASH_TOP;
|
||||||
if (!indir)
|
if (key)
|
||||||
return 0;
|
|
||||||
|
|
||||||
memcpy(key, adapter->rss_key, adapter->rss_key_size);
|
memcpy(key, adapter->rss_key, adapter->rss_key_size);
|
||||||
|
|
||||||
|
if (indir)
|
||||||
/* Each 32 bits pointed by 'indir' is stored with a lut entry */
|
/* Each 32 bits pointed by 'indir' is stored with a lut entry */
|
||||||
for (i = 0; i < adapter->rss_lut_size; i++)
|
for (i = 0; i < adapter->rss_lut_size; i++)
|
||||||
indir[i] = (u32)adapter->rss_lut[i];
|
indir[i] = (u32)adapter->rss_lut[i];
|
||||||
|
Reference in New Issue
Block a user