summaryrefslogtreecommitdiffstats
path: root/usr.bin/ssh/ssh.c
diff options
context:
space:
mode:
authorvisa <visa@openbsd.org>2018-10-03 01:24:14 +0000
committervisa <visa@openbsd.org>2018-10-03 01:24:14 +0000
commitd3e8a6be3acafeafc748f7db3aba07c148a376ca (patch)
tree2fd00f0f18f847f9139baa09e6cc51746fa52447 /usr.bin/ssh/ssh.c
parent- pfsync: avoid a recursion on PF_LOCK (diff)
downloadwireguard-openbsd-d3e8a6be3acafeafc748f7db3aba07c148a376ca.tar.xz
wireguard-openbsd-d3e8a6be3acafeafc748f7db3aba07c148a376ca.zip
Fix a race condition that affects pfsync interface deletion.
When a pfsync interface is being deleted, all its timeout handlers and pfsync_send_dispatch() have to stop accessing the software context before the context is freed. Ensure sufficient synchronization by acquiring NET_LOCK() and clearing `pfsyncif' inside the critical section in pfsync_clone_destroy(). When a timeout handler has entered the critical section, it has to check `pfsyncif' and bail out if the value is NULL. pfsync_send_dispatch() already does this check. Issue reported and fix tested by Hrvoje Popovski. OK mpi@ bluhm@
Diffstat (limited to 'usr.bin/ssh/ssh.c')
0 files changed, 0 insertions, 0 deletions