Hello,
This patch fixes oops with using IPsec in IPv6. Original source removes
RTF_NDISC at copying dst. It makes the kernel use the wrong stackable
destination.
--- net/ipv6/xfrm6_policy.c.org 2003-10-24 21:17:26.000000000 +0900
+++ net/ipv6/xfrm6_policy.c 2003-10-24 21:17:41.000000000 +0900
@@ -169,7 +169,7 @@
dst_prev->output = dst_prev->xfrm->type->output;
/* Sheit... I remember I did this right. Apparently,
* it was magically lost, so this code needs audit */
- x->u.rt6.rt6i_flags =
rt0->rt6i_flags&(RTCF_BROADCAST|RTCF_MULTICAST|RTCF_LOCAL);
+ x->u.rt6.rt6i_flags =
rt0->rt6i_flags&(RTCF_BROADCAST|RTCF_MULTICAST|RTCF_LOCAL|RTF_NDISC);
x->u.rt6.rt6i_metric = rt0->rt6i_metric;
x->u.rt6.rt6i_node = rt0->rt6i_node;
x->u.rt6.rt6i_gateway = rt0->rt6i_gateway;
--Kazunori Miyazawa
|