Thread (114 messages) 114 messages, 9 authors, 2005-04-22

[9/*] [IPSEC] Check dst validity harder in xfrm_bundle_ok

From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2005-03-07 10:35:36

On Sun, Mar 06, 2005 at 09:32:14PM -0800, David S. Miller wrote:
Applied, but with a bug fix:

+		mtu = dst_pmtu(xdst->route);
+		if (xdst->child_mtu_cached != mtu) {
+			last = xdst;
+			xdst->route_mtu_cached = mtu;
+		}

You obviously meant "route_mtu_cached" in the test,
not child_mtu_cached.
Thanks for catching this.

There is another bug in xfrm_bundle_ok where I forgot to
check the validity of xdst->route.  In fact, the check
on dst->path isn't strong enough either.  For IPv6 entries,
dst->path->obsolete is always negative until you call
ipv6_dst_check.  So we really need to do that here.

Here's the patch to fix those two problems.  Yes I know
my dst_check implementation is lame.  I'll come back and
fix up all the dst_check functions by moving their dst_release
calls out.  It proves that you were right in that IPv6 dst
leak thread :)

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} [off-list ref]
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help