]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: ethtool: fix NULL pointer dereference in phy_reply_size
authorQuan Sun <2022090917019@std.uestc.edu.cn>
Thu, 7 May 2026 13:17:38 +0000 (21:17 +0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 8 May 2026 22:30:10 +0000 (15:30 -0700)
commit4908f1395fb1b832ceec11584af649874a2732ea
tree516185f24f306c5df6bb07ba89aef9614ba5d253
parent0a549298f452a83ae57e6582e6ca389357f9355d
net: ethtool: fix NULL pointer dereference in phy_reply_size

In phy_prepare_data(), several strings such as 'name', 'drvname',
'upstream_sfp_name', and 'downstream_sfp_name' are allocated using
kstrdup(). However, these allocations were not checked  for failure.

If kstrdup() fails for 'name', it returns NULL while the function
continues. This leads to a kernel NULL pointer dereference and panic
later in phy_reply_size() when it unconditionally calls strlen() on
the NULL pointer.

While other strings like 'upstream_sfp_name' might be checked before
access in certain code paths, failing to handle these allocations
consistently can lead to incomplete data reporting or hidden bugs.

Fix this by adding proper NULL checks for all kstrdup() calls in
phy_prepare_data() and implement a centralized error handling path
using goto labels to ensure all previously allocated resources are
freed on failure.

Fixes: 9dd2ad5e92b9 ("net: ethtool: phy: Convert the PHY_GET command to generic phy dump")
Signed-off-by: Quan Sun <2022090917019@std.uestc.edu.cn>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Link: https://patch.msgid.link/20260507131738.1173835-1-2022090917019@std.uestc.edu.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ethtool/phy.c