[PATCH net-next] ethtool: prevent endless loop if eeprom size is smaller than announced

Subsystems: networking [ethtool], networking [general], the rest

STALE1791d

2 messages, 2 authors, 2021-09-14 · open the first message on its own page

[PATCH net-next] ethtool: prevent endless loop if eeprom size is smaller than announced

From: Heiner Kallweit <hkallweit1@gmail.com>
Date: 2021-09-13 19:58:40

It shouldn't happen, but can happen that readable eeprom size is smaller
than announced. Then we would be stuck in an endless loop here because
after reaching the actual end reads return eeprom.len = 0. I faced this
issue when making a mistake in driver development. Detect this scenario
and return an error.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 net/ethtool/ioctl.c | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c
index f2abc3152..999e2a6be 100644
--- a/net/ethtool/ioctl.c
+++ b/net/ethtool/ioctl.c
@@ -1537,6 +1537,10 @@ static int ethtool_get_any_eeprom(struct net_device *dev, void __user *useraddr,
 		ret = getter(dev, &eeprom, data);
 		if (ret)
 			break;
+		if (!eeprom.len) {
+			ret = -EIO;
+			break;
+		}
 		if (copy_to_user(userbuf, data, eeprom.len)) {
 			ret = -EFAULT;
 			break;
-- 
2.33.0

Re: [PATCH net-next] ethtool: prevent endless loop if eeprom size is smaller than announced

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-09-14 13:30:42

Hello:

This patch was applied to netdev/net-next.git (refs/heads/master):

On Mon, 13 Sep 2021 21:58:26 +0200 you wrote:
It shouldn't happen, but can happen that readable eeprom size is smaller
than announced. Then we would be stuck in an endless loop here because
after reaching the actual end reads return eeprom.len = 0. I faced this
issue when making a mistake in driver development. Detect this scenario
and return an error.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

[...]
Here is the summary with links:
  - [net-next] ethtool: prevent endless loop if eeprom size is smaller than announced
    https://git.kernel.org/netdev/net-next/c/b9bbc4c1debc

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help