diff options
author | Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> | 2005-05-26 12:58:04 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-05-26 12:58:04 -0700 |
commit | 92d63decc0b6a5d600f792fcf5f3ff9718c09a3d (patch) | |
tree | eca15d3ffba7795ea4d9bef9cdc6d21c7c71fa00 /net/xfrm | |
parent | 2f872f0401d4b470990864fbf99c19130f25ad4d (diff) | |
download | op-kernel-dev-92d63decc0b6a5d600f792fcf5f3ff9718c09a3d.zip op-kernel-dev-92d63decc0b6a5d600f792fcf5f3ff9718c09a3d.tar.gz |
From: Kazunori Miyazawa <kazunori@miyazawa.org>
[XFRM] Call dst_check() with appropriate cookie
This fixes infinite loop issue with IPv6 tunnel mode.
Signed-off-by: Kazunori Miyazawa <kazunori@miyazawa.org>
Signed-off-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm')
-rw-r--r-- | net/xfrm/xfrm_policy.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 55ed979..d07f5ce 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -1136,7 +1136,7 @@ int xfrm_bundle_ok(struct xfrm_dst *first, struct flowi *fl, int family) struct xfrm_dst *last; u32 mtu; - if (!dst_check(dst->path, 0) || + if (!dst_check(dst->path, ((struct xfrm_dst *)dst)->path_cookie) || (dst->dev && !netif_running(dst->dev))) return 0; @@ -1156,7 +1156,7 @@ int xfrm_bundle_ok(struct xfrm_dst *first, struct flowi *fl, int family) xdst->child_mtu_cached = mtu; } - if (!dst_check(xdst->route, 0)) + if (!dst_check(xdst->route, xdst->route_cookie)) return 0; mtu = dst_mtu(xdst->route); if (xdst->route_mtu_cached != mtu) { |