The branch main has been updated by kp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=d90854a60a919fc574d1786486f85394f53ce2dd

commit d90854a60a919fc574d1786486f85394f53ce2dd
Author:     Kristof Provost <k...@freebsd.org>
AuthorDate: 2025-01-09 13:31:22 +0000
Commit:     Kristof Provost <k...@freebsd.org>
CommitDate: 2025-01-14 08:54:20 +0000

    pf: reset index if it's outside the table
    
    when table content changes we need to reset index
    to the initial value and do not use the counter;
    reported by Sebastian Benoit and Daniel Krambrock,
    tested by Sebastian Benoit, ok henning zinke
    
    Obtained from:  OpenBSD, mikeb <mi...@openbsd.org>, dba347c9d1
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
---
 sys/netpfil/pf/pf_table.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/netpfil/pf/pf_table.c b/sys/netpfil/pf/pf_table.c
index 35c9bd4ab655..03efa0b738da 100644
--- a/sys/netpfil/pf/pf_table.c
+++ b/sys/netpfil/pf/pf_table.c
@@ -2269,10 +2269,10 @@ pfr_pool_get(struct pfr_ktable *kt, int *pidx, struct 
pf_addr *counter,
                return (-1);
 
        idx = *pidx;
-       if (idx >= 0)
-               use_counter = 1;
-       if (idx < 0)
+       if (idx < 0 || idx >= kt->pfrkt_cnt)
                idx = 0;
+       else if (counter != NULL)
+               use_counter = 1;
        startidx = idx;
 
 _next_block:

Reply via email to