CVSROOT:        /cvs
Module name:    src
Changes by:     v...@cvs.openbsd.org    2018/10/02 19:24:14

Modified files:
        sys/net        : if_pfsync.c 

Log message:
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@

Reply via email to