summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/kern/uipc_sockbuf.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-08-07 12:12:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-21 10:29:36 +0200
commitde261e0404e1fe54544275fc57d5b982df4f42b4 (patch)
tree856cbdf23d6809b99c4d642d066bc45cd67c26e6 /freebsd/sys/kern/uipc_sockbuf.c
parentlibbsd.txt: Use rtems_bsd_ifconfig_lo0() (diff)
downloadrtems-libbsd-de261e0404e1fe54544275fc57d5b982df4f42b4.tar.bz2
Update to FreeBSD head 2017-06-01
Git mirror commit dfb26efac4ce9101dda240e94d9ab53f80a9e131. Update #3472.
Diffstat (limited to 'freebsd/sys/kern/uipc_sockbuf.c')
-rw-r--r--freebsd/sys/kern/uipc_sockbuf.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/freebsd/sys/kern/uipc_sockbuf.c b/freebsd/sys/kern/uipc_sockbuf.c
index d6c3b04b..04193c29 100644
--- a/freebsd/sys/kern/uipc_sockbuf.c
+++ b/freebsd/sys/kern/uipc_sockbuf.c
@@ -800,8 +800,20 @@ sbappendaddr_locked_internal(struct sockbuf *sb, const struct sockaddr *asa,
return (0);
m->m_len = asa->sa_len;
bcopy(asa, mtod(m, caddr_t), asa->sa_len);
- if (m0)
+ if (m0) {
m_clrprotoflags(m0);
+ m_tag_delete_chain(m0, NULL);
+ /*
+ * Clear some persistent info from pkthdr.
+ * We don't use m_demote(), because some netgraph consumers
+ * expect M_PKTHDR presence.
+ */
+ m0->m_pkthdr.rcvif = NULL;
+ m0->m_pkthdr.flowid = 0;
+ m0->m_pkthdr.csum_flags = 0;
+ m0->m_pkthdr.fibnum = 0;
+ m0->m_pkthdr.rsstype = 0;
+ }
if (ctrl_last)
ctrl_last->m_next = m0; /* concatenate data to control */
else