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

Commit 7774d5e0 authored by Richard Guy Briggs's avatar Richard Guy Briggs Committed by David S. Miller
Browse files

netlink: implement unbind to netlink_setsockopt NETLINK_DROP_MEMBERSHIP



Call the per-protocol unbind function rather than bind function on
NETLINK_DROP_MEMBERSHIP in netlink_setsockopt().

Signed-off-by: default avatarRichard Guy Briggs <rgb@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4f520900
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2129,7 +2129,7 @@ static int netlink_setsockopt(struct socket *sock, int level, int optname,
			return err;
		if (!val || val - 1 >= nlk->ngroups)
			return -EINVAL;
		if (nlk->netlink_bind) {
		if (optname == NETLINK_ADD_MEMBERSHIP && nlk->netlink_bind) {
			err = nlk->netlink_bind(val);
			if (err)
				return err;
@@ -2138,6 +2138,8 @@ static int netlink_setsockopt(struct socket *sock, int level, int optname,
		netlink_update_socket_mc(nlk, val,
					 optname == NETLINK_ADD_MEMBERSHIP);
		netlink_table_ungrab();
		if (optname == NETLINK_DROP_MEMBERSHIP && nlk->netlink_unbind)
			nlk->netlink_unbind(val);

		err = 0;
		break;