summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_icmp.c
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2002-01-11 12:13:57 +0000
committerru <ru@FreeBSD.org>2002-01-11 12:13:57 +0000
commit6f5f8c6c2c7d212e50d18d9c52828732d8daca2f (patch)
tree3bf6f03f8edd4c408b5cf710727c78aae5f61d04 /sys/netinet/ip_icmp.c
parent23730131c8a3ec365e7633e7ec80fdfcf7494c29 (diff)
downloadFreeBSD-src-6f5f8c6c2c7d212e50d18d9c52828732d8daca2f.zip
FreeBSD-src-6f5f8c6c2c7d212e50d18d9c52828732d8daca2f.tar.gz
Fix a panic condition in icmp_reflect() introduced in rev. 1.61.
(We should be able to handle locally originated IP packets, and these do not have m_pkthdr.rcvif set.) PR: kern/32806, kern/33766 Reviewed by: luigi Fix tested by: Maxim Konovalov <maxim@macomnet.ru>, Erwin Lansing <erwin@lansing.dk>
Diffstat (limited to 'sys/netinet/ip_icmp.c')
-rw-r--r--sys/netinet/ip_icmp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c
index a73a150..b1d37dc 100644
--- a/sys/netinet/ip_icmp.c
+++ b/sys/netinet/ip_icmp.c
@@ -609,8 +609,8 @@ icmp_reflect(m)
LIST_FOREACH(ia, INADDR_HASH(t.s_addr), ia_hash)
if (t.s_addr == IA_SIN(ia)->sin_addr.s_addr)
goto match;
- KASSERT(m->m_pkthdr.rcvif != NULL, ("icmp_reflect: NULL rcvif"));
- if (m->m_pkthdr.rcvif->if_flags & IFF_BROADCAST) {
+ if (m->m_pkthdr.rcvif != NULL &&
+ m->m_pkthdr.rcvif->if_flags & IFF_BROADCAST) {
TAILQ_FOREACH(ifa, &m->m_pkthdr.rcvif->if_addrhead, ifa_link) {
if (ifa->ifa_addr->sa_family != AF_INET)
continue;
OpenPOWER on IntegriCloud