Thread (2 messages) flat view 2 messages, 2 authors, 2014-06-03

Re: [PATCH ipsec] xfrm: fix race between netns cleanup and state expire notification

From: David Miller <davem@davemloft.net>
Date: 2014-06-03 23:08:00

From: Michal Kubecek <redacted>
Date: Tue,  3 Jun 2014 10:26:06 +0200 (CEST)
The xfrm_user module registers its pernet init/exit after xfrm
itself so that its net exit function xfrm_user_net_exit() is
executed before xfrm_net_exit() which calls xfrm_state_fini() to
cleanup the SA's (xfrm states). This opens a window between
zeroing net->xfrm.nlsk pointer and deleting all xfrm_state
instances which may access it (via the timer). If an xfrm state
expires in this window, xfrm_exp_state_notify() will pass null
pointer as socket to nlmsg_multicast().

As the notifications are called inside rcu_read_lock() block, it
is sufficient to retrieve the nlsk socket with rcu_dereference()
and check the it for null.

Signed-off-by: Michal Kubecek <redacted>
Looks good, applied, thanks Michal.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help