Hello, Jason Mc Intyre (jmc@) reported a bug earlier today reaching me by email off-list. Let me quote from Jason's email:
i already have a pf table, adding an address tells me i have created a table. even though the table already existed: # pfctl -tbrutes -Tshow | wc 89 89 501 # pfctl -tbrutes -Tadd 1.1.1.1 1 table created. 1/1 addresses added. The bug has been introduced by my commit to pf_table.c: $OpenBSD: pf_ioctl.c,v 1.381 2022/05/10 23:12:25 sashan Exp $ pfr_table_add() currently always increases 'xadd' counter while it should increase 'xadd' if and only if we are going to create a table. diff below fixes that. OK to commit? thanks and regards sashan --------8<---------------8<---------------8<------------------8<-------- diff --git a/sys/net/pf_table.c b/sys/net/pf_table.c index f261baef963..6c47e11f604 100644 --- a/sys/net/pf_table.c +++ b/sys/net/pf_table.c @@ -1562,13 +1562,13 @@ pfr_add_tables(struct pfr_table *tbl, int size, int *nadd, int flags) if (p == NULL) { SLIST_REMOVE(&auxq, n, pfr_ktable, pfrkt_workq); SLIST_INSERT_HEAD(&addq, n, pfrkt_workq); + xadd++; } else if (!(flags & PFR_FLAG_DUMMY) && !(p->pfrkt_flags & PFR_TFLAG_ACTIVE)) { p->pfrkt_nflags = (p->pfrkt_flags & ~PFR_TFLAG_USRMASK) | key.pfrkt_flags; SLIST_INSERT_HEAD(&changeq, p, pfrkt_workq); } - xadd++; } if (!(flags & PFR_FLAG_DUMMY)) {