Commit 43e943c3 authored by Patrick McHardy's avatar Patrick McHardy Committed by David S. Miller

[NETLINK]: Fix missing dst_groups initializations in netlink_broadcast users

netlink_broadcast users must initialize NETLINK_CB(skb).dst_groups to the
destination group mask for netlink_recvmsg.
Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ad93e266
...@@ -93,6 +93,7 @@ static int send_uevent(const char *signal, const char *obj, ...@@ -93,6 +93,7 @@ static int send_uevent(const char *signal, const char *obj,
} }
} }
NETLINK_CB(skb).dst_groups = 1;
return netlink_broadcast(uevent_sock, skb, 0, 1, gfp_mask); return netlink_broadcast(uevent_sock, skb, 0, 1, gfp_mask);
} }
......
...@@ -1152,6 +1152,8 @@ static int xfrm_notify_sa_flush(struct km_event *c) ...@@ -1152,6 +1152,8 @@ static int xfrm_notify_sa_flush(struct km_event *c)
nlh->nlmsg_len = skb->tail - b; nlh->nlmsg_len = skb->tail - b;
NETLINK_CB(skb).dst_groups = XFRMGRP_SA;
return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC); return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC);
nlmsg_failure: nlmsg_failure:
...@@ -1226,6 +1228,8 @@ static int xfrm_notify_sa(struct xfrm_state *x, struct km_event *c) ...@@ -1226,6 +1228,8 @@ static int xfrm_notify_sa(struct xfrm_state *x, struct km_event *c)
nlh->nlmsg_len = skb->tail - b; nlh->nlmsg_len = skb->tail - b;
NETLINK_CB(skb).dst_groups = XFRMGRP_SA;
return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC); return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC);
nlmsg_failure: nlmsg_failure:
...@@ -1455,6 +1459,8 @@ static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event * ...@@ -1455,6 +1459,8 @@ static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event *
nlh->nlmsg_len = skb->tail - b; nlh->nlmsg_len = skb->tail - b;
NETLINK_CB(skb).dst_groups = XFRMGRP_POLICY;
return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC); return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC);
nlmsg_failure: nlmsg_failure:
...@@ -1480,6 +1486,8 @@ static int xfrm_notify_policy_flush(struct km_event *c) ...@@ -1480,6 +1486,8 @@ static int xfrm_notify_policy_flush(struct km_event *c)
nlh->nlmsg_len = skb->tail - b; nlh->nlmsg_len = skb->tail - b;
NETLINK_CB(skb).dst_groups = XFRMGRP_POLICY;
return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC); return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC);
nlmsg_failure: nlmsg_failure:
......
...@@ -80,6 +80,7 @@ static void selnl_notify(int msgtype, void *data) ...@@ -80,6 +80,7 @@ static void selnl_notify(int msgtype, void *data)
nlh = NLMSG_PUT(skb, 0, 0, msgtype, len); nlh = NLMSG_PUT(skb, 0, 0, msgtype, len);
selnl_add_payload(nlh, len, msgtype, data); selnl_add_payload(nlh, len, msgtype, data);
nlh->nlmsg_len = skb->tail - tmp; nlh->nlmsg_len = skb->tail - tmp;
NETLINK_CB(skb).dst_groups = SELNL_GRP_AVC;
netlink_broadcast(selnl, skb, 0, SELNL_GRP_AVC, GFP_USER); netlink_broadcast(selnl, skb, 0, SELNL_GRP_AVC, GFP_USER);
out: out:
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment