Date: Fri, 3 Feb 2023 09:39:54 GMT From: Kristof Provost <kp@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 0ed5f66c5ad2 - main - pfsync: add missing bucket lock Message-ID: <202302030939.3139dsOq087433@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=0ed5f66c5ad23a6fe02d60765acf5e5e00957542 commit 0ed5f66c5ad23a6fe02d60765acf5e5e00957542 Author: Kristof Provost <kp@FreeBSD.org> AuthorDate: 2023-02-02 09:34:57 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2023-02-03 08:39:09 +0000 pfsync: add missing bucket lock pfsync_q_ins() expects us to hold the bucket lock, but when we enter it from pfsync_state_import() we don't. MFC after: 2 weeks --- sys/netpfil/pf/if_pfsync.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c index 3aa9bbfb633f..2301dc475e27 100644 --- a/sys/netpfil/pf/if_pfsync.c +++ b/sys/netpfil/pf/if_pfsync.c @@ -605,7 +605,11 @@ pfsync_state_import(struct pfsync_state *sp, int flags) if (!(flags & PFSYNC_SI_IOCTL)) { st->state_flags &= ~PFSTATE_NOSYNC; if (st->state_flags & PFSTATE_ACK) { + struct pfsync_bucket *b = pfsync_get_bucket(sc, st); + PFSYNC_BUCKET_LOCK(b); pfsync_q_ins(st, PFSYNC_S_IACK, true); + PFSYNC_BUCKET_UNLOCK(b); + pfsync_push_all(sc); } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202302030939.3139dsOq087433>