git: cfacf6465577 - main - pf: fix crash on low memory

From: Kristof Provost <kp_at_FreeBSD.org>
Date: Mon, 24 Aug 2026 11:38:24 UTC
The branch main has been updated by kp:

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

commit cfacf6465577e224acb86d99434d834f4facbfb2
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2026-08-24 09:31:27 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2026-08-24 11:38:03 +0000

    pf: fix crash on low memory
    
    pfr_create_kentry() can return NULL. Don't dereference the pointer it
    returns until after we've checked it.
    
    Fixes:          08ed87a4a276 ("pf: convert DIOCRSETADDRS to netlink")
    See also:       https://redmine.netgate.com/issues/23622
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
---
 sys/netpfil/pf/pf_table.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/netpfil/pf/pf_table.c b/sys/netpfil/pf/pf_table.c
index e6290e622fea..dd670d58359b 100644
--- a/sys/netpfil/pf/pf_table.c
+++ b/sys/netpfil/pf/pf_table.c
@@ -446,9 +446,9 @@ pfr_set_addrs(struct pfr_table *tbl, struct pfr_addr *addr, int size,
 			}
 			p = pfr_create_kentry(&ad,
 			    (kt->pfrkt_flags & PFR_TFLAG_COUNTERS) != 0);
-			p->pfrke_mark = PFR_FB_ADDED;
 			if (p == NULL)
 				senderr(ENOMEM);
+			p->pfrke_mark = PFR_FB_ADDED;
 			if (pfr_route_kentry(tmpkt, p)) {
 				pfr_destroy_kentry(p);
 				ad.pfra_fback = PFR_FB_NONE;