ipsec: Fix bogus bundle flowi
When I merged the bundle creation code, I introduced a bogus flowi value in the bundle. Instead of getting from the caller, it was instead set to the flow in the route object, which is totally different. The end result is that the bundles we created never match, and we instead end up with an ever growing bundle list. Thanks to Jamal for find this problem. Reported-by: Jamal Hadi Salim <hadi@cyberus.ca> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Acked-by: Steffen Klassert <steffen.klassert@secunet.com> Acked-by: Jamal Hadi Salim <hadi@cyberus.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
3a5b27bf6f
commit
87c1e12b5e
@ -91,11 +91,12 @@ static int xfrm4_init_path(struct xfrm_dst *path, struct dst_entry *dst,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int xfrm4_fill_dst(struct xfrm_dst *xdst, struct net_device *dev)
|
||||
static int xfrm4_fill_dst(struct xfrm_dst *xdst, struct net_device *dev,
|
||||
struct flowi *fl)
|
||||
{
|
||||
struct rtable *rt = (struct rtable *)xdst->route;
|
||||
|
||||
xdst->u.rt.fl = rt->fl;
|
||||
xdst->u.rt.fl = *fl;
|
||||
|
||||
xdst->u.dst.dev = dev;
|
||||
dev_hold(dev);
|
||||
|
Reference in New Issue
Block a user