[PATCH net-next] ethtool: always write dev in ethnl_parse_header_dev_get

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

STALE1765d

3 messages, 3 authors, 2021-12-15 · open the first message on its own page

[PATCH net-next] ethtool: always write dev in ethnl_parse_header_dev_get

From: Jakub Kicinski <kuba@kernel.org>
Date: 2021-12-14 15:47:31

Commit 0976b888a150 ("ethtool: fix null-ptr-deref on ref tracker")
made the write to req_info.dev conditional, but as Eric points out
in a different follow up the structure is often allocated on the
stack and not kzalloc()'d so seems safer to always write the dev,
in case it's garbage on input.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
 net/ethtool/netlink.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/net/ethtool/netlink.c b/net/ethtool/netlink.c
index 767fb3f17267..f09c62302a9a 100644
--- a/net/ethtool/netlink.c
+++ b/net/ethtool/netlink.c
@@ -141,10 +141,9 @@ int ethnl_parse_header_dev_get(struct ethnl_req_info *req_info,
 		return -EINVAL;
 	}
 
-	if (dev) {
-		req_info->dev = dev;
+	req_info->dev = dev;
+	if (dev)
 		netdev_tracker_alloc(dev, &req_info->dev_tracker, GFP_KERNEL);
-	}
 	req_info->flags = flags;
 	return 0;
 }
-- 
2.31.1

Re: [PATCH net-next] ethtool: always write dev in ethnl_parse_header_dev_get

From: Eric Dumazet <hidden>
Date: 2021-12-15 10:47:59

On 12/14/21 7:47 AM, Jakub Kicinski wrote:
Commit 0976b888a150 ("ethtool: fix null-ptr-deref on ref tracker")
made the write to req_info.dev conditional, but as Eric points out
in a different follow up the structure is often allocated on the
stack and not kzalloc()'d so seems safer to always write the dev,
in case it's garbage on input.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Yep, this was basically how I wanted to fix this.


Reviewed-by: Eric Dumazet <redacted>

quoted hunk
---
  net/ethtool/netlink.c | 5 ++---
  1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/net/ethtool/netlink.c b/net/ethtool/netlink.c
index 767fb3f17267..f09c62302a9a 100644
--- a/net/ethtool/netlink.c
+++ b/net/ethtool/netlink.c
@@ -141,10 +141,9 @@ int ethnl_parse_header_dev_get(struct ethnl_req_info *req_info,
  		return -EINVAL;
  	}
  
-	if (dev) {
-		req_info->dev = dev;
+	req_info->dev = dev;
+	if (dev)
  		netdev_tracker_alloc(dev, &req_info->dev_tracker, GFP_KERNEL);
-	}
  	req_info->flags = flags;
  	return 0;
  }

Re: [PATCH net-next] ethtool: always write dev in ethnl_parse_header_dev_get

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-12-15 15:10:15

Hello:

This patch was applied to netdev/net-next.git (master)
by David S. Miller [off-list ref]:

On Tue, 14 Dec 2021 07:47:25 -0800 you wrote:
Commit 0976b888a150 ("ethtool: fix null-ptr-deref on ref tracker")
made the write to req_info.dev conditional, but as Eric points out
in a different follow up the structure is often allocated on the
stack and not kzalloc()'d so seems safer to always write the dev,
in case it's garbage on input.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>

[...]
Here is the summary with links:
  - [net-next] ethtool: always write dev in ethnl_parse_header_dev_get
    https://git.kernel.org/netdev/net-next/c/3bc14ea0d12a

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