]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
xfrm: release dst_orig in case of error in xfrm_lookup()
authorhuaibin Wang <huaibin.wang@6wind.com>
Wed, 11 Feb 2015 17:10:36 +0000 (18:10 +0100)
committerJiri Slaby <jslaby@suse.cz>
Thu, 30 Jul 2015 11:21:26 +0000 (13:21 +0200)
commit423f5859ddcf47699f336e063cf6a6d8bc2e93e5
tree3a534c86b9b029c1dccb97e8b3b7562bfc0074f0
parent90fccfbc9a39ca6e805a9016090a7081b16a1793
xfrm: release dst_orig in case of error in xfrm_lookup()

commit ac37e2515c1a89c477459a2020b6bfdedabdb91b upstream.

dst_orig should be released on error. Function like __xfrm_route_forward()
expects that behavior.
Since a recent commit, xfrm_lookup() may also be called by xfrm_lookup_route(),
which expects the opposite.
Let's introduce a new flag (XFRM_LOOKUP_KEEP_DST_REF) to tell what should be
done in case of error.

Fixes: f92ee61982d("xfrm: Generate blackhole routes only from route lookup functions")
Signed-off-by: huaibin Wang <huaibin.wang@6wind.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Jiri Slaby <jslaby@suse.com>
include/net/dst.h
net/xfrm/xfrm_policy.c