linux/net/netlink
Anastasia Kovaleva 1dae9f1187 net: Fix an unsafe loop on the list
The kernel may crash when deleting a genetlink family if there are still
listeners for that family:

Oops: Kernel access of bad area, sig: 11 [#1]
  ...
  NIP [c000000000c080bc] netlink_update_socket_mc+0x3c/0xc0
  LR [c000000000c0f764] __netlink_clear_multicast_users+0x74/0xc0
  Call Trace:
__netlink_clear_multicast_users+0x74/0xc0
genl_unregister_family+0xd4/0x2d0

Change the unsafe loop on the list to a safe one, because inside the
loop there is an element removal from this list.

Fixes: b8273570f8 ("genetlink: fix netns vs. netlink table locking (2)")
Cc: stable@vger.kernel.org
Signed-off-by: Anastasia Kovaleva <a.kovaleva@yadro.com>
Reviewed-by: Dmitry Bogdanov <d.bogdanov@yadro.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20241003104431.12391-1-a.kovaleva@yadro.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-10-04 15:37:15 -07:00
..
af_netlink.c net: Fix an unsafe loop on the list 2024-10-04 15:37:15 -07:00
af_netlink.h net: netlink: Remove the dump_cb_mutex field from struct netlink_sock 2024-08-26 10:35:16 +01:00
diag.c netlink: fix netlink_diag_dump() return value 2024-02-26 11:46:12 +00:00
genetlink.c netlink: create a new header for internal genetlink symbols 2024-04-01 21:44:34 -07:00
genetlink.h netlink: create a new header for internal genetlink symbols 2024-04-01 21:44:34 -07:00
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile netlink: add infrastructure to expose policies to userspace 2020-04-30 17:51:42 -07:00
policy.c netlink: add variable-length / auto integers 2023-10-20 11:43:35 +01:00