aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2004-08-21 16:14:04 +0000
committerRobert Watson <rwatson@FreeBSD.org>2004-08-21 16:14:04 +0000
commite6ccd70936186495ada83c2ee0e4cf74efa19811 (patch)
tree5fd29093f6c8d965abd338cb271807133105293f /sys
parentb282bdf0efce61d73b0733904d470a333369b4c1 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet/udp_usrreq.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index 5f1a1bb24aac6..81ab6e1a16ff6 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -851,15 +851,18 @@ udp_output(inp, m, addr, control, td)
goto release;
}
}
+
/*
- * Calculate data length and get a mbuf
- * for UDP and IP headers.
+ * Calculate data length and get a mbuf for UDP, IP, and possible
+ * link-layer headers.
*/
- M_PREPEND(m, sizeof(struct udpiphdr), M_DONTWAIT);
- if (m == 0) {
+ M_PREPEND(m, sizeof(struct udpiphdr) + max_linkhdr, M_DONTWAIT);
+ if (m == NULL) {
error = ENOBUFS;
goto release;
}
+ m->m_data += max_linkhdr;
+ m->m_len -= max_linkhdr;
/*
* Fill in mbuf with extended UDP header