diff options
author | Nicolas Dichtel <nicolas.dichtel@6wind.com> | 2012-09-10 18:09:45 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-09-18 15:57:03 -0400 |
commit | ee8372dd1989287c5eedb69d44bac43f69e496f1 (patch) | |
tree | 419de8719e0cf610f313345d25b231e376083ebd | |
parent | b42664f898c976247f7f609b8bb9c94d7475ca10 (diff) |
xfrm: invalidate dst on policy insertion/deletion
When a policy is inserted or deleted, all dst should be recalculated.
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/xfrm/xfrm_policy.c | 1 | ||||
-rw-r--r-- | security/selinux/include/xfrm.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 5a2aa17e4d3c..ab2ce7d5152d 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
@@ -585,6 +585,7 @@ int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl) | |||
585 | xfrm_pol_hold(policy); | 585 | xfrm_pol_hold(policy); |
586 | net->xfrm.policy_count[dir]++; | 586 | net->xfrm.policy_count[dir]++; |
587 | atomic_inc(&flow_cache_genid); | 587 | atomic_inc(&flow_cache_genid); |
588 | rt_genid_bump(net); | ||
588 | if (delpol) | 589 | if (delpol) |
589 | __xfrm_policy_unlink(delpol, dir); | 590 | __xfrm_policy_unlink(delpol, dir); |
590 | policy->index = delpol ? delpol->index : xfrm_gen_index(net, dir); | 591 | policy->index = delpol ? delpol->index : xfrm_gen_index(net, dir); |
diff --git a/security/selinux/include/xfrm.h b/security/selinux/include/xfrm.h index c220f314709c..65f67cb0aefb 100644 --- a/security/selinux/include/xfrm.h +++ b/security/selinux/include/xfrm.h | |||
@@ -51,6 +51,7 @@ int selinux_xfrm_decode_session(struct sk_buff *skb, u32 *sid, int ckall); | |||
51 | static inline void selinux_xfrm_notify_policyload(void) | 51 | static inline void selinux_xfrm_notify_policyload(void) |
52 | { | 52 | { |
53 | atomic_inc(&flow_cache_genid); | 53 | atomic_inc(&flow_cache_genid); |
54 | rt_genid_bump(&init_net); | ||
54 | } | 55 | } |
55 | #else | 56 | #else |
56 | static inline int selinux_xfrm_enabled(void) | 57 | static inline int selinux_xfrm_enabled(void) |