xfrm: release dst_orig in case of error in xfrm_lookup()
authorhuaibin Wang <[email protected]>
Wed, 11 Feb 2015 17:10:36 +0000 (18:10 +0100)
committerSteffen Klassert <[email protected]>
Thu, 12 Feb 2015 06:10:56 +0000 (07:10 +0100)
commitac37e2515c1a89c477459a2020b6bfdedabdb91b
treea1d2ad2b28b5b4cd032dca88c6c297afb7155d24
parent044a832a7779c0638bea2d0fea901c055b995f4a
xfrm: release dst_orig in case of error in xfrm_lookup()

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 <[email protected]>
Signed-off-by: Nicolas Dichtel <[email protected]>
Signed-off-by: Steffen Klassert <[email protected]>
include/net/dst.h
net/xfrm/xfrm_policy.c