]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
xfrm: Generate queueing routes only from route lookup functions
authorSteffen Klassert <steffen.klassert@secunet.com>
Tue, 16 Sep 2014 08:08:49 +0000 (10:08 +0200)
committerJiri Slaby <jslaby@suse.cz>
Fri, 17 Oct 2014 07:43:16 +0000 (09:43 +0200)
commit2a9e5d6b68e0d88843caeeb69944e17c632f8a73
tree4c1ec077eee46c656f83f88e0c5728b90f42a8b9
parente5a51bbc5bacc7131a8ff04412468a0517dbb2b2
xfrm: Generate queueing routes only from route lookup functions

[ Upstream commit b8c203b2d2fc961bafd53b41d5396bbcdec55998 ]

Currently we genarate a queueing route if we have matching policies
but can not resolve the states and the sysctl xfrm_larval_drop is
disabled. Here we assume that dst_output() is called to kill the
queued 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 queueing routes only from the
route lookup functions, here we can guarantee a call to
dst_output() afterwards.

Fixes: a0073fe18e71 ("xfrm: Add a state resolution packet queue")
Reported-by: Konstantinos Kolelis <k.kolelis@sirrix.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
include/net/dst.h
net/xfrm/xfrm_policy.c