summaryrefslogtreecommitdiffstats
path: root/net/xfrm
diff options
context:
space:
mode:
authorTaehee Yoo <ap420073@gmail.com>2018-03-16 11:35:51 +0900
committerSteffen Klassert <steffen.klassert@secunet.com>2018-03-16 08:26:02 +0100
commit46c0ef6e1eb95f619d9f62da4332749153db92f7 (patch)
treefc5fd0284a14c69435f2ee6843b2a4a8e3fe14cf /net/xfrm
parent51d4740f88affd85d49c04e3c9cd129c0e33bcb9 (diff)
downloadlinux-46c0ef6e1eb95f619d9f62da4332749153db92f7.tar.gz
linux-46c0ef6e1eb95f619d9f62da4332749153db92f7.tar.bz2
linux-46c0ef6e1eb95f619d9f62da4332749153db92f7.zip
xfrm: fix rcu_read_unlock usage in xfrm_local_error
In the xfrm_local_error, rcu_read_unlock should be called when afinfo is not NULL. because xfrm_state_get_afinfo calls rcu_read_unlock if afinfo is NULL. Fixes: af5d27c4e12b ("xfrm: remove xfrm_state_put_afinfo") Signed-off-by: Taehee Yoo <ap420073@gmail.com> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'net/xfrm')
-rw-r--r--net/xfrm/xfrm_output.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c
index 23468672a767..89b178a78dc7 100644
--- a/net/xfrm/xfrm_output.c
+++ b/net/xfrm/xfrm_output.c
@@ -285,8 +285,9 @@ void xfrm_local_error(struct sk_buff *skb, int mtu)
return;
afinfo = xfrm_state_get_afinfo(proto);
- if (afinfo)
+ if (afinfo) {
afinfo->local_error(skb, mtu);
- rcu_read_unlock();
+ rcu_read_unlock();
+ }
}
EXPORT_SYMBOL_GPL(xfrm_local_error);