Re: [PATCH v2 net] net: Fix an unsafe loop on the list

From: Jakub Kicinski
Date: Wed Oct 02 2024 - 09:02:59 EST


On Tue, 1 Oct 2024 14:58:28 +0300 Anastasia Kovaleva wrote:
> The kernel may crash when deleting a genetlink family if there are still
> listeners for that family:

Could you add a selftest? Should be fairly easy using YNL, ncdevmem is
the only user so far.

> 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: b8273570f802 ("genetlink: fix netns vs. netlink table locking (2)")\

nit: trailing \ at the end of the line here