linux/net/ethtool
Jakub Kicinski 3249eae7e4 net: ethtool: fix leaking netdev ref if ethnl_default_parse() failed
Ido spotted that I made a mistake in commit under Fixes,
ethnl_default_parse() may acquire a dev reference even when it returns
an error. This may have been driven by the code structure in dumps
(which unconditionally release dev before handling errors), but it's
too much of a trap. Functions should undo what they did before returning
an error, rather than expecting caller to clean up.

Rather than fixing ethnl_default_set_doit() directly make
ethnl_default_parse() clean up errors.

Reported-by: Ido Schimmel <idosch@idosch.org>
Link: https://lore.kernel.org/aGEPszpq9eojNF4Y@shredder
Fixes: 963781bdfe ("net: ethtool: call .parse_request for SET handlers")
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20250630154053.1074664-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-07-01 17:27:53 -07:00
..
bitset.c ethtool: Fix wrong mod state in case of verbose and no_mask bitset 2024-12-04 18:54:43 -08:00
bitset.h
cabletest.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
channels.c ethtool: refactor checking max channels 2024-08-09 21:52:13 -07:00
cmis_cdb.c ethtool: cmis_cdb: use correct rpl size in ethtool_cmis_module_poll() 2025-04-11 18:41:19 -07:00
cmis_fw_update.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
cmis.h ethtool: cmis_cdb: Fix incorrect read / write length extension 2025-04-10 14:32:43 +02:00
coalesce.c net: ethtool: Fix the panic caused by dev being null when dumping coalesce 2024-07-01 13:43:50 +01:00
common.c net: ethtool: move get_rxfh callback under the rss_lock 2025-06-30 08:41:25 -07:00
common.h net: ethtool: rss: add notifications 2025-06-25 15:24:14 -07:00
debug.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
eee.c net: ethtool: eee: Remove legacy _u32 from keee 2024-02-28 12:18:05 +00:00
eeprom.c ethtool: move firmware flashing flag to struct ethtool_netdev_state 2024-07-04 15:45:15 -07:00
features.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
fec.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
ioctl.c net: ethtool: move get_rxfh callback under the rss_lock 2025-06-30 08:41:25 -07:00
linkinfo.c Revert "net: ethtool: Avoid thousands of -Wflex-array-member-not-at-end warnings" 2024-11-18 18:52:11 -08:00
linkmodes.c Revert "net: ethtool: Avoid thousands of -Wflex-array-member-not-at-end warnings" 2024-11-18 18:52:11 -08:00
linkstate.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-04 17:12:01 -08:00
Makefile net: ethtool: Add support for tsconfig command to get/set hwtstamp config 2024-12-16 12:51:41 +00:00
mm.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
module_fw.h ethtool: Add ability to flash transceiver modules' firmware 2024-06-28 10:48:23 +01:00
module.c net: move misc netdev_lock flavors to a separate header 2025-03-08 09:06:50 -08:00
netlink.c net: ethtool: fix leaking netdev ref if ethnl_default_parse() failed 2025-07-01 17:27:53 -07:00
netlink.h net: ethtool: avoid OOB accesses in PAUSE_SET 2025-06-30 08:32:37 -07:00
pause.c net: ethtool: avoid OOB accesses in PAUSE_SET 2025-06-30 08:32:37 -07:00
phc_vclocks.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
phy.c net: ethtool: phy: Convert the PHY_GET command to generic phy dump 2025-05-05 17:17:40 -07:00
plca.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-04 17:12:01 -08:00
privflags.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
pse-pd.c ethtool: pse-pd: Add missing linux/export.h include 2025-06-23 13:13:01 -07:00
rings.c net: ethtool: fix ioctl confusing drivers about desired HDS user config 2025-02-24 14:15:42 -08:00
rss.c net: ethtool: move get_rxfh callback under the rss_lock 2025-06-30 08:41:25 -07:00
stats.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-04 17:12:01 -08:00
strset.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-04 17:12:01 -08:00
ts.h net: ethtool: tsinfo: Enhance tsinfo to support several hwtstamp by net topology 2024-12-16 12:51:41 +00:00
tsconfig.c net: ethtool: tsconfig: Fix netlink type of hwtstamp flags 2025-02-06 16:35:21 -08:00
tsinfo.c net: Add support for providing the PTP hardware source in tsinfo 2025-05-22 15:32:00 +02:00
tunnels.c genetlink: use attrs from struct genl_info 2023-08-15 15:00:45 -07:00
wol.c net: move ethtool-related netdev state into its own struct 2024-06-28 18:53:17 -07:00