Message ID | 1f4f887a-4339-1ece-b2aa-c9712e54bce3@gmail.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] ethtool: propagate get_coalesce return value | expand |
From: Heiner Kallweit <hkallweit1@gmail.com> Date: Sat, 23 May 2020 17:40:25 +0200 > get_coalesce returns 0 or ERRNO, but the return value isn't checked. > The returned coalesce data may be invalid if an ERRNO is set, > therefore better check and propagate the return value. > > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Applied, thanks Heiner.
diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index eeb1137a3..923e220ff 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1510,11 +1510,14 @@ static noinline_for_stack int ethtool_get_coalesce(struct net_device *dev, void __user *useraddr) { struct ethtool_coalesce coalesce = { .cmd = ETHTOOL_GCOALESCE }; + int ret; if (!dev->ethtool_ops->get_coalesce) return -EOPNOTSUPP; - dev->ethtool_ops->get_coalesce(dev, &coalesce); + ret = dev->ethtool_ops->get_coalesce(dev, &coalesce); + if (ret) + return ret; if (copy_to_user(useraddr, &coalesce, sizeof(coalesce))) return -EFAULT;
get_coalesce returns 0 or ERRNO, but the return value isn't checked. The returned coalesce data may be invalid if an ERRNO is set, therefore better check and propagate the return value. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- net/ethtool/ioctl.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)