[Bug 268246] crash and panic using pfsync on 13.1-RELEASE
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 28 Jan 2023 02:35:45 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268246
--- Comment #42 from Kristof Provost <kp@freebsd.org> ---
(In reply to jjasen from comment #39)
Let's be a bit less subtle then:
diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c
index 61308a35a7e1..d0bc699e4d29 100644
--- a/sys/netpfil/pf/if_pfsync.c
+++ b/sys/netpfil/pf/if_pfsync.c
@@ -1734,6 +1738,7 @@ pfsync_defer(struct pf_kstate *st, struct mbuf *m)
struct pfsync_softc *sc = V_pfsyncif;
struct pfsync_deferral *pd;
struct pfsync_bucket *b;
+ struct ip *ip;
if (m->m_flags & (M_BCAST|M_MCAST))
return (0);
@@ -1751,6 +1756,13 @@ pfsync_defer(struct pf_kstate *st, struct mbuf *m)
return (0);
}
+ ip = mtod(m, struct ip *);
+ if (ip->ip_v == 4) {
+ int len = ntohs(ip->ip_len);
+ if (m_length(m, NULL) != len)
+ panic("Incorrect ip_len %d != m_length %d", len, m_length(m,
NULL));
+ }
+
PFSYNC_BUCKET_LOCK(b);
PFSYNC_UNLOCK(sc);
If that panics we should have a pretty good idea of how we can end up in that
situation. If it doesn't we have another mystery.
--
You are receiving this mail because:
You are the assignee for the bug.