Re: [syzbot] [net?] general protection fault in phy_start_cable_test_tdr

From: Edward Adam Davis
Date: Tue Aug 27 2024 - 21:35:03 EST


There is a logical error in checking phydev

#syz test: net-next main

diff --git a/net/ethtool/cabletest.c b/net/ethtool/cabletest.c
index 3a91b65c1f9a..2fe5951b8e45 100644
--- a/net/ethtool/cabletest.c
+++ b/net/ethtool/cabletest.c
@@ -342,7 +342,7 @@ int ethnl_act_cable_test_tdr(struct sk_buff *skb, struct genl_info *info)
phydev = ethnl_req_get_phydev(&req_info,
tb[ETHTOOL_A_CABLE_TEST_TDR_HEADER],
info->extack);
- if (!IS_ERR_OR_NULL(phydev)) {
+ if (IS_ERR_OR_NULL(phydev)) {
ret = -EOPNOTSUPP;
goto out_dev_put;
}