net: ethtool: Initialize buffer when querying device channel settings
authorEran Ben Elisha <eranbe@mellanox.com>
Tue, 17 Jan 2017 17:19:17 +0000 (19:19 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 18 Jan 2017 19:58:23 +0000 (14:58 -0500)
Ethtool channels respond struct was uninitialized when querying device
channel boundaries settings. As a result, unreported fields by the driver
hold garbage.  This may cause sending unsupported params to driver.

Fixes: 8bf368620486 ('ethtool: ensure channel counts are within bounds ...')
Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
CC: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/ethtool.c

index e23766c7e3ba19414494d242af86c1029e8eee61..236a21e3c878e73fbd97d74de3694caaeab5e762 100644 (file)
@@ -1712,7 +1712,7 @@ static noinline_for_stack int ethtool_get_channels(struct net_device *dev,
 static noinline_for_stack int ethtool_set_channels(struct net_device *dev,
                                                   void __user *useraddr)
 {
-       struct ethtool_channels channels, max;
+       struct ethtool_channels channels, max = { .cmd = ETHTOOL_GCHANNELS };
        u32 max_rx_in_use = 0;
 
        if (!dev->ethtool_ops->set_channels || !dev->ethtool_ops->get_channels)