summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2000-01-10 18:46:05 +0000
committerru <ru@FreeBSD.org>2000-01-10 18:46:05 +0000
commit9eb1ed4d64ae60e680a6896645c44706633e2c09 (patch)
treeb6dd6e6b5196b5e4ca7648e6ad05b0bd47c35350 /sys/netinet
parent59b416572e3e7deb0bb3d1386445fa783b6b63d1 (diff)
downloadFreeBSD-src-9eb1ed4d64ae60e680a6896645c44706633e2c09.zip
FreeBSD-src-9eb1ed4d64ae60e680a6896645c44706633e2c09.tar.gz
MGETHDR() does not initialize m_pkthdr.rcvif, do it here.
This fixes page fault panic observed when diverting packets with IP options (e.g. ping -R remoteIP over natd). PR: kern/8596, kern/11199
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/ip_output.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c
index 23a5629..61c8432 100644
--- a/sys/netinet/ip_output.c
+++ b/sys/netinet/ip_output.c
@@ -931,6 +931,7 @@ ip_insertoptions(m, opt, phlen)
MGETHDR(n, M_DONTWAIT, MT_HEADER);
if (n == 0)
return (m);
+ n->m_pkthdr.rcvif = (struct ifnet *)0;
n->m_pkthdr.len = m->m_pkthdr.len + optlen;
m->m_len -= sizeof(struct ip);
m->m_data += sizeof(struct ip);
OpenPOWER on IntegriCloud