]> 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)
committerSasha Levin <sasha.levin@oracle.com>
Wed, 10 Jun 2015 17:42:46 +0000 (13:42 -0400)
commit25798d3d216334361a51ac37429a83c1faa5e97d
tree450a8a0a88c1ba6ebf18546ff7d3ec992b42344c
parent7d3b628cb83c4813a7d1bfae28b9a5b196d808c8
xfrm: release dst_orig in case of error in xfrm_lookup()

[ Upstream commit ac37e2515c1a89c477459a2020b6bfdedabdb91b ]

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: Sasha Levin <sasha.levin@oracle.com>
include/net/dst.h
net/xfrm/xfrm_policy.c