diff options
Diffstat (limited to 'net/core/ethtool.c')
| -rw-r--r-- | net/core/ethtool.c | 5 | 
1 files changed, 5 insertions, 0 deletions
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 03416e6dd5d7..ba02f0dfe85c 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c @@ -1032,6 +1032,11 @@ static noinline_for_stack int ethtool_get_rxnfc(struct net_device *dev,  		info_size = sizeof(info);  		if (copy_from_user(&info, useraddr, info_size))  			return -EFAULT; +		/* Since malicious users may modify the original data, +		 * we need to check whether FLOW_RSS is still requested. +		 */ +		if (!(info.flow_type & FLOW_RSS)) +			return -EINVAL;  	}  	if (info.cmd == ETHTOOL_GRXCLSRLALL) {  |