Page MenuHomeFreeBSD

D59389.id185819.diff
No OneTemporary

D59389.id185819.diff

diff --git a/sys/netpfil/ipfw/ip_fw2.c b/sys/netpfil/ipfw/ip_fw2.c
--- a/sys/netpfil/ipfw/ip_fw2.c
+++ b/sys/netpfil/ipfw/ip_fw2.c
@@ -1532,10 +1532,12 @@
if (m->m_flags & M_SKIP_FIREWALL || (! V_ipfw_vnet_ready))
return (IP_FW_PASS); /* accept */
if (args->flags & IPFW_ARGS_ETHER) {
- /* We need some amount of data to be contiguous. */
- if (m->m_len < min(m->m_pkthdr.len, max_protohdr) &&
+ /* Make the Ethernet and L3 base header contiguous. */
+ int hdrlen = ETHER_HDR_LEN + (int)sizeof(struct ip6_hdr);
+
+ if (m->m_len < min(m->m_pkthdr.len, hdrlen) &&
(args->m = m = m_pullup(m, min(m->m_pkthdr.len,
- max_protohdr))) == NULL)
+ hdrlen))) == NULL)
goto pullup_failed;
eh = mtod(m, struct ether_header *);
ip = (struct ip *)(eh + 1);

File Metadata

Mime Type
text/plain
Expires
Wed, Sep 9, 1:58 PM (2 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38338553
Default Alt Text
D59389.id185819.diff (811 B)

Event Timeline