Skip to content

Commit

Permalink
[NETLINK]: Fix missing dst_groups initializations in netlink_broadcas…
Browse files Browse the repository at this point in the history
…t users

netlink_broadcast users must initialize NETLINK_CB(skb).dst_groups to the
destination group mask for netlink_recvmsg.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Patrick McHardy authored and David S. Miller committed Aug 29, 2005
1 parent ad93e26 commit 43e943c
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 0 deletions.
1 change: 1 addition & 0 deletions lib/kobject_uevent.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
8 changes: 8 additions & 0 deletions net/xfrm/xfrm_user.c
Original file line number Diff line number Diff line change
Expand Up @@ -1152,6 +1152,8 @@ static int xfrm_notify_sa_flush(struct km_event *c)

nlh->nlmsg_len = skb->tail - b;

NETLINK_CB(skb).dst_groups = XFRMGRP_SA;

return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC);

nlmsg_failure:
Expand Down Expand Up @@ -1226,6 +1228,8 @@ static int xfrm_notify_sa(struct xfrm_state *x, struct km_event *c)

nlh->nlmsg_len = skb->tail - b;

NETLINK_CB(skb).dst_groups = XFRMGRP_SA;

return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC);

nlmsg_failure:
Expand Down Expand Up @@ -1455,6 +1459,8 @@ static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event *

nlh->nlmsg_len = skb->tail - b;

NETLINK_CB(skb).dst_groups = XFRMGRP_POLICY;

return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC);

nlmsg_failure:
Expand All @@ -1480,6 +1486,8 @@ static int xfrm_notify_policy_flush(struct km_event *c)

nlh->nlmsg_len = skb->tail - b;

NETLINK_CB(skb).dst_groups = XFRMGRP_POLICY;

return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC);

nlmsg_failure:
Expand Down
1 change: 1 addition & 0 deletions security/selinux/netlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ static void selnl_notify(int msgtype, void *data)
nlh = NLMSG_PUT(skb, 0, 0, msgtype, len);
selnl_add_payload(nlh, len, msgtype, data);
nlh->nlmsg_len = skb->tail - tmp;
NETLINK_CB(skb).dst_groups = SELNL_GRP_AVC;
netlink_broadcast(selnl, skb, 0, SELNL_GRP_AVC, GFP_USER);
out:
return;
Expand Down

0 comments on commit 43e943c

Please sign in to comment.