Page MenuHomeFreeBSD

D49840.id153691.diff
No OneTemporary

D49840.id153691.diff

diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c
--- a/sys/netinet6/udp6_usrreq.c
+++ b/sys/netinet6/udp6_usrreq.c
@@ -860,14 +860,18 @@
hlen = sizeof(struct ip6_hdr);
/*
- * Calculate data length and get a mbuf
- * for UDP and IP6 headers.
+ * Calculate data length and get a mbuf for UDP, IP6, and possible
+ * link-layer headers. Immediate slide the data pointer back forward
+ * since we won't use that space at this layer.
*/
- M_PREPEND(m, hlen + sizeof(struct udphdr), M_NOWAIT);
+ M_PREPEND(m, sizeof(struct ip6_hdr) + sizeof(struct udphdr) + max_linkhdr, M_NOWAIT);
if (m == NULL) {
error = ENOBUFS;
goto release;
}
+ m->m_data += max_linkhdr;
+ m->m_len -= max_linkhdr;
+ m->m_pkthdr.len -= max_linkhdr;
/*
* Stuff checksum and output datagram.

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 18, 7:56 AM (5 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31707125
Default Alt Text
D49840.id153691.diff (808 B)

Event Timeline