The branch main has been updated by kp:

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

commit afc32641e2932d2f7c47d2fbcfde9a063e72b85b
Author:     Kristof Provost <k...@freebsd.org>
AuthorDate: 2025-02-05 16:26:13 +0000
Commit:     Kristof Provost <k...@freebsd.org>
CommitDate: 2025-02-12 19:38:37 +0000

    pf: make pf_change_ap() usable without a port
    
    If the port pointer is NULL, just return after being done with the address.
    ok bluhm ryan mikeb
    
    Obtained from:  OpenBSD, henning <henn...@openbsd.org>, 17f4816165
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
---
 sys/netpfil/pf/pf.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
index 79e50be6cd13..17c23f6d4194 100644
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -3217,7 +3217,7 @@ pf_change_ap(struct mbuf *m, struct pf_addr *a, u_int16_t 
*p, u_int16_t *ic,
         sa_family_t af, sa_family_t naf)
 {
        struct pf_addr  ao;
-       u_int16_t       po = *p;
+       u_int16_t       po;
 
        PF_ACPY(&ao, a, af);
        if (af == naf)
@@ -3226,6 +3226,9 @@ pf_change_ap(struct mbuf *m, struct pf_addr *a, u_int16_t 
*p, u_int16_t *ic,
        if (m->m_pkthdr.csum_flags & (CSUM_DELAY_DATA | CSUM_DELAY_DATA_IPV6))
                *pc = ~*pc;
 
+       if (p == NULL)  /* no port -> done. no cksum to worry about. */
+               return;
+       po = *p;
        *p = pn;
 
        switch (af) {

Reply via email to