diff options
author | 2018-10-03 01:24:14 +0000 | |
---|---|---|
committer | 2018-10-03 01:24:14 +0000 | |
commit | d3e8a6be3acafeafc748f7db3aba07c148a376ca (patch) | |
tree | 2fd00f0f18f847f9139baa09e6cc51746fa52447 /usr.bin/ssh/ssh.c | |
parent | - pfsync: avoid a recursion on PF_LOCK (diff) | |
download | wireguard-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