2003-09-21 21:19:58

by Oleg Drokin

[permalink] [raw]
Subject: [PATCH] [2.4] Fix possible memleaks in Ethtool ioctl handler

Hello!

There are trivial memleaks in Ethtool ioctl handler, while not all that
dangerous since only root can cause them (I presume), still
trivial patch below is needed at least for the correctness sake.
Please apply.

Found with help of smatch.

===== net/core/ethtool.c 1.4 vs edited =====
--- 1.4/net/core/ethtool.c Tue Sep 2 04:26:28 2003
+++ edited/net/core/ethtool.c Mon Sep 22 01:17:14 2003
@@ -247,8 +247,10 @@
if (!data)
return -ENOMEM;

- if (copy_from_user(data, useraddr + sizeof(eeprom), len))
- return -EFAULT;
+ if (copy_from_user(data, useraddr + sizeof(eeprom), len)) {
+ ret = -EFAULT;
+ goto out;
+ }

ret = dev->ethtool_ops->get_eeprom(dev, &eeprom, data);
if (!ret)
@@ -287,8 +289,10 @@
if (!data)
return -ENOMEM;

- if (copy_from_user(data, useraddr + sizeof(eeprom), len))
- return -EFAULT;
+ if (copy_from_user(data, useraddr + sizeof(eeprom), len)) {
+ ret = -EFAULT;
+ goto out;
+ }

ret = dev->ethtool_ops->set_eeprom(dev, &eeprom, data);
if (ret)