linux/drivers/net
Ido Schimmel efeb7dfea8 mlxsw: spectrum_acl_tcam: Fix NULL pointer dereference in error path
When calling mlxsw_sp_acl_tcam_region_destroy() from an error path after
failing to attach the region to an ACL group, we hit a NULL pointer
dereference upon 'region->group->tcam' [1].

Fix by retrieving the 'tcam' pointer using mlxsw_sp_acl_to_tcam().

[1]
BUG: kernel NULL pointer dereference, address: 0000000000000000
[...]
RIP: 0010:mlxsw_sp_acl_tcam_region_destroy+0xa0/0xd0
[...]
Call Trace:
 mlxsw_sp_acl_tcam_vchunk_get+0x88b/0xa20
 mlxsw_sp_acl_tcam_ventry_add+0x25/0xe0
 mlxsw_sp_acl_rule_add+0x47/0x240
 mlxsw_sp_flower_replace+0x1a9/0x1d0
 tc_setup_cb_add+0xdc/0x1c0
 fl_hw_replace_filter+0x146/0x1f0
 fl_change+0xc17/0x1360
 tc_new_tfilter+0x472/0xb90
 rtnetlink_rcv_msg+0x313/0x3b0
 netlink_rcv_skb+0x58/0x100
 netlink_unicast+0x244/0x390
 netlink_sendmsg+0x1e4/0x440
 ____sys_sendmsg+0x164/0x260
 ___sys_sendmsg+0x9a/0xe0
 __sys_sendmsg+0x7a/0xc0
 do_syscall_64+0x40/0xe0
 entry_SYSCALL_64_after_hwframe+0x63/0x6b

Fixes: 22a677661f ("mlxsw: spectrum: Introduce ACL core with simple TCAM implementation")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Petr Machata <petrm@nvidia.com>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Link: https://lore.kernel.org/r/fb6a4542bbc9fcab5a523802d97059bffbca7126.1705502064.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-01-18 09:48:08 -08:00
..
arcnet arcnet: restoring support for multiple Sohard Arcnet cards 2023-12-04 18:01:20 -08:00
bonding bonding: remove print in bond_verify_device_path 2023-11-24 15:21:32 +00:00
caif
can
dsa net: dsa: vsc73xx: Add null pointer check to vsc73xx_gpio_probe 2024-01-16 17:48:27 -08:00
ethernet mlxsw: spectrum_acl_tcam: Fix NULL pointer dereference in error path 2024-01-18 09:48:08 -08:00
fddi
fjes net: fjes: Convert to platform remove callback returning void 2023-12-05 19:51:09 -08:00
hamradio
hippi
hyperv hv_netvsc: remove duplicated including of slab.h 2023-12-15 12:19:00 +00:00
ieee802154
ipa net: ipa: Convert to platform remove callback returning void 2023-12-05 19:51:09 -08:00
ipvlan ipvlan: Remove usage of the deprecated ida_simple_xx() API 2024-01-07 22:32:48 +00:00
mctp
mdio net: mdio: mux-bcm-iproc: Use alignment helpers and SZ_4K 2024-01-03 16:40:59 -08:00
netdevsim net: netdevsim: don't try to destroy PHC on VFs 2024-01-17 10:56:44 +00:00
pcs net: pcs: rzn1-miic: Convert to platform remove callback returning void 2023-12-05 19:51:09 -08:00
phy net: sfp-bus: fix SFP mode detect from bitrate 2024-01-16 17:49:49 -08:00
plip
ppp ppp: Fix spelling typo in comment in ppp_async_encode() 2024-01-02 16:26:09 -08:00
pse-pd
slip net: fill in MODULE_DESCRIPTION()s for SLIP 2024-01-11 16:16:08 -08:00
team team: Fix use-after-free when an option instance allocation fails 2023-12-08 10:45:49 -08:00
thunderbolt
usb lan78xx: remove redundant statement in lan78xx_get_eee 2024-01-08 19:17:50 -08:00
vmxnet3 net: ethtool: pass a pointer to parameters to get/set_rxfh ethtool ops 2023-12-13 22:07:16 -08:00
vxlan vxlan: mdb: Add MDB bulk deletion support 2023-12-20 11:27:21 +00:00
wan net: fill in MODULE_DESCRIPTION()s for ds26522 module 2024-01-11 16:16:08 -08:00
wireguard
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-01-04 18:06:46 -08:00
wwan net: wwan: qcom_bam_dmux: Convert to platform remove callback returning void 2023-12-05 19:54:44 -08:00
xen-netback
Kconfig virtio-net: support rx netdim 2023-12-13 12:49:05 +00:00
LICENSE.SRC
Makefile
Space.c
amt.c amt: do not use overwrapped cb area 2024-01-11 16:55:17 -08:00
bareudp.c
dummy.c
eql.c
geneve.c geneve: use DEV_STATS_INC() 2024-01-05 19:07:18 -08:00
gtp.c
ifb.c
loopback.c
macsec.c net: macsec: introduce mdo_insert_tx_tag 2023-12-27 13:08:10 +00:00
macvlan.c macvlan: implement .parse_protocol hook function in macvlan_hard_header_ops 2023-12-05 13:41:48 +01:00
macvtap.c
mdio.c
mhi_net.c
mii.c
net_failover.c
netconsole.c
netkit.c netkit: Reject IFLA_NETKIT_PEER_INFO in netkit_change_link 2023-11-27 16:07:34 -08:00
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
sungem_phy.c
tap.c
tun.c
veth.c netdev 2023-12-18 16:46:08 -08:00
virtio_net.c virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a region of size 10" warnings 2024-01-11 16:54:34 -08:00
vrf.c
vsockmon.c
xen-netfront.c