| From bfa1b065ac9f5f692b6cf7d3e9ab50182f7d46cc Mon Sep 17 00:00:00 2001 |
| From: Li RongQing <roy.qing.li@gmail.com> |
| Date: Mon, 17 Sep 2012 22:40:10 +0000 |
| Subject: xfrm: fix a read lock imbalance in make_blackhole |
| |
| |
| From: Li RongQing <roy.qing.li@gmail.com> |
| |
| [ Upstream commit 433a19548061bb5457b6ab77ed7ea58ca6e43ddb ] |
| |
| if xfrm_policy_get_afinfo returns 0, it has already released the read |
| lock, xfrm_policy_put_afinfo should not be called again. |
| |
| Signed-off-by: Li RongQing <roy.qing.li@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/xfrm/xfrm_policy.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/net/xfrm/xfrm_policy.c |
| +++ b/net/xfrm/xfrm_policy.c |
| @@ -1759,7 +1759,7 @@ static struct dst_entry *make_blackhole( |
| |
| if (!afinfo) { |
| dst_release(dst_orig); |
| - ret = ERR_PTR(-EINVAL); |
| + return ERR_PTR(-EINVAL); |
| } else { |
| ret = afinfo->blackhole_route(net, dst_orig); |
| } |