diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2014-09-16 10:08:40 +0200 |
---|---|---|
committer | Steffen Klassert <steffen.klassert@secunet.com> | 2014-09-16 10:08:40 +0200 |
commit | f92ee61982d6da15a9e49664ecd6405a15a2ee56 (patch) | |
tree | 014f5e6b027f1446b5bda041382b30262868bf86 /net/ipv4 | |
parent | 95cd6f488d164de462a8279e802a0ad05c33d167 (diff) | |
download | op-kernel-dev-f92ee61982d6da15a9e49664ecd6405a15a2ee56.zip op-kernel-dev-f92ee61982d6da15a9e49664ecd6405a15a2ee56.tar.gz |
xfrm: Generate blackhole routes only from route lookup functions
Currently we genarate a blackhole route route whenever we have
matching policies but can not resolve the states. Here we assume
that dst_output() is called to kill the balckholed packets.
Unfortunately this assumption is not true in all cases, so
it is possible that these packets leave the system unwanted.
We fix this by generating blackhole routes only from the
route lookup functions, here we can guarantee a call to
dst_output() afterwards.
Fixes: 2774c131b1d ("xfrm: Handle blackhole route creation via afinfo.")
Reported-by: Konstantinos Kolelis <k.kolelis@sirrix.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/route.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index eaa4b00..173e7ea 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -2265,9 +2265,9 @@ struct rtable *ip_route_output_flow(struct net *net, struct flowi4 *flp4, return rt; if (flp4->flowi4_proto) - rt = (struct rtable *) xfrm_lookup(net, &rt->dst, - flowi4_to_flowi(flp4), - sk, 0); + rt = (struct rtable *)xfrm_lookup_route(net, &rt->dst, + flowi4_to_flowi(flp4), + sk, 0); return rt; } |