diff options
author | Patrick McHardy <kaber@trash.net> | 2005-08-14 22:25:47 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2005-08-29 19:00:34 -0400 |
commit | 43e943c32b9213b5d25407b281c94aaa474fd9a6 (patch) | |
tree | 7844a1aa95d697ae378bc799085e1b29eb0b8a48 /net/xfrm | |
parent | ad93e266a17c6f606e96304c866eb73665ae34fa (diff) |
[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: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm')
-rw-r--r-- | net/xfrm/xfrm_user.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index 33ceeea783b1..4d553a1d2169 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c | |||
@@ -1152,6 +1152,8 @@ static int xfrm_notify_sa_flush(struct km_event *c) | |||
1152 | 1152 | ||
1153 | nlh->nlmsg_len = skb->tail - b; | 1153 | nlh->nlmsg_len = skb->tail - b; |
1154 | 1154 | ||
1155 | NETLINK_CB(skb).dst_groups = XFRMGRP_SA; | ||
1156 | |||
1155 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC); | 1157 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC); |
1156 | 1158 | ||
1157 | nlmsg_failure: | 1159 | nlmsg_failure: |
@@ -1226,6 +1228,8 @@ static int xfrm_notify_sa(struct xfrm_state *x, struct km_event *c) | |||
1226 | 1228 | ||
1227 | nlh->nlmsg_len = skb->tail - b; | 1229 | nlh->nlmsg_len = skb->tail - b; |
1228 | 1230 | ||
1231 | NETLINK_CB(skb).dst_groups = XFRMGRP_SA; | ||
1232 | |||
1229 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC); | 1233 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC); |
1230 | 1234 | ||
1231 | nlmsg_failure: | 1235 | nlmsg_failure: |
@@ -1455,6 +1459,8 @@ static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event * | |||
1455 | 1459 | ||
1456 | nlh->nlmsg_len = skb->tail - b; | 1460 | nlh->nlmsg_len = skb->tail - b; |
1457 | 1461 | ||
1462 | NETLINK_CB(skb).dst_groups = XFRMGRP_POLICY; | ||
1463 | |||
1458 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC); | 1464 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC); |
1459 | 1465 | ||
1460 | nlmsg_failure: | 1466 | nlmsg_failure: |
@@ -1480,6 +1486,8 @@ static int xfrm_notify_policy_flush(struct km_event *c) | |||
1480 | 1486 | ||
1481 | nlh->nlmsg_len = skb->tail - b; | 1487 | nlh->nlmsg_len = skb->tail - b; |
1482 | 1488 | ||
1489 | NETLINK_CB(skb).dst_groups = XFRMGRP_POLICY; | ||
1490 | |||
1483 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC); | 1491 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC); |
1484 | 1492 | ||
1485 | nlmsg_failure: | 1493 | nlmsg_failure: |