diff options
author | Patrick McHardy <kaber@trash.net> | 2007-07-18 02:26:27 -0700 |
---|---|---|
committer | Willy Tarreau <w@1wt.eu> | 2007-08-25 17:23:56 +0200 |
commit | e7ddaa5dcfb5af80d8e2d0c4a83de78f380cad3b (patch) | |
tree | 0acadb332b41ff8e39a06e194a67877c2bb45d0b /net | |
parent | 79774188b0a7e5930b9e561a153da0ef6a09f6a0 (diff) |
[PATCH] Fix IPCOMP crashes.
[XFRM]: Fix crash introduced by struct dst_entry reordering
XFRM expects xfrm_dst->u.next to be same pointer as dst->next, which
was broken by the dst_entry reordering in commit 1e19e02c~, causing
an oops in xfrm_bundle_ok when walking the bundle upwards.
Kill xfrm_dst->u.next and change the only user to use dst->next instead.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Willy Tarreau <w@1wt.eu>
Diffstat (limited to 'net')
-rw-r--r-- | net/xfrm/xfrm_policy.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 9704e05f69c8..c208a8a54ce8 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -1971,7 +1971,7 @@ int xfrm_bundle_ok(struct xfrm_policy *pol, struct xfrm_dst *first, if (last == first) break; - last = last->u.next; + last = (struct xfrm_dst *)last->u.dst.next; last->child_mtu_cached = mtu; } |