linux/net/ethtool
Michal Kubecek 365f9ae4ee ethtool: fix genlmsg_put() failure handling in ethnl_default_dumpit()
If the genlmsg_put() call in ethnl_default_dumpit() fails, we bail out
without checking if we already have some messages in current skb like we do
with ethnl_default_dump_one() failure later. Therefore if existing messages
almost fill up the buffer so that there is not enough space even for
netlink and genetlink header, we lose all prepared messages and return and
error.

Rather than duplicating the skb->len check, move the genlmsg_put(),
genlmsg_cancel() and genlmsg_end() calls into ethnl_default_dump_one().
This is also more logical as all message composition will be in
ethnl_default_dump_one() and only iteration logic will be left in
ethnl_default_dumpit().

Fixes: 728480f124 ("ethtool: default handlers for GET requests")
Reported-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-07-09 12:35:33 -07:00
..
Makefile net: ethtool: netlink: Add support for triggering a cable test 2020-05-10 12:28:41 -07:00
bitset.c ethtool: add ethnl_parse_bitset() helper 2020-03-12 15:32:32 -07:00
bitset.h ethtool: add ethnl_parse_bitset() helper 2020-03-12 15:32:32 -07:00
cabletest.c net: ethtool: Handle missing cable test TDR parameters 2020-06-23 20:21:01 -07:00
channels.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2020-05-22 18:30:34 -07:00
coalesce.c ethtool: add COALESCE_NTF notification 2020-03-29 22:32:36 -07:00
common.c net: ethtool: add missing string for NETIF_F_GSO_TUNNEL_REMCSUM 2020-06-23 14:52:27 -07:00
common.h ethtool: provide timestamping information with TSINFO_GET request 2020-03-29 22:32:37 -07:00
debug.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
eee.c ethtool: add EEE_NTF notification 2020-03-29 22:32:36 -07:00
features.c ethtool: add FEATURES_NTF notification 2020-03-12 15:32:33 -07:00
ioctl.c ethtool: Fix check in ethtool_rx_flow_rule_create 2020-06-22 20:48:12 -07:00
linkinfo.c ethtool: linkinfo: remove an unnecessary NULL check 2020-06-05 13:10:02 -07:00
linkmodes.c ethtool: provide UAPI for PHY master/slave configuration. 2020-05-06 17:45:45 -07:00
linkstate.c ethtool: fix error handling in linkstate_prepare_data() 2020-06-25 16:17:16 -07:00
netlink.c ethtool: fix genlmsg_put() failure handling in ethnl_default_dumpit() 2020-07-09 12:35:33 -07:00
netlink.h net: ethtool: Add generic parts of cable test TDR 2020-05-26 23:21:48 -07:00
pause.c ethtool: add PAUSE_NTF notification 2020-03-29 22:32:36 -07:00
privflags.c ethtool: fix reference leak in ethnl_set_privflags() 2020-03-29 22:32:36 -07:00
rings.c ethtool: fix spelling mistake "exceeeds" -> "exceeds" 2020-03-13 11:23:33 -07:00
strset.c ethtool: count header size in reply size estimate 2020-05-21 16:59:19 -07:00
tsinfo.c ethtool: provide timestamping information with TSINFO_GET request 2020-03-29 22:32:37 -07:00
wol.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00