Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7d68536b authored by Johannes Berg's avatar Johannes Berg Committed by David S. Miller
Browse files

netlink: call unbind when releasing socket



Currently, netlink_unbind() is only called when the socket
explicitly unbinds, which limits its usefulness (luckily
there are no users of it yet anyway.)

Call netlink_unbind() also when a socket is released, so it
becomes possible to track listeners with this callback and
without also implementing a netlink notifier (and checking
netlink_has_listeners() in there.)

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b10dcb3b
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1246,6 +1246,13 @@ static int netlink_release(struct socket *sock)
		netlink_table_ungrab();
	}

	if (nlk->netlink_unbind) {
		int i;

		for (i = 0; i < nlk->ngroups; i++)
			if (test_bit(i, nlk->groups))
				nlk->netlink_unbind(i + 1);
	}
	kfree(nlk->groups);
	nlk->groups = NULL;