Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Check that m->m_pkthdr.rcvif is not NULL before checking if a packet

was received on a broadcast address on the input path. Under certain
circumstances this could result in a panic, notably for locally-generated
packets which do not have m_pkthdr.rcvif set.

This is a similar situation to that which is solved by
src/sys/netinet/ip_icmp.c rev 1.66.

PR:		kern/52935
  • Loading branch information...
commit 66acd3ba6eb9d3017cc3cdf36d1268749512dd82 1 parent d11f8ce
bms authored
Showing with 2 additions and 1 deletion.
  1. +2 −1  sys/netinet/ip_input.c
View
3  sys/netinet/ip_input.c
@@ -587,7 +587,8 @@ ip_input(struct mbuf *m)
* be handled via ip_forward() and ether_output() with the loopback
* into the stack for SIMPLEX interfaces handled by ether_output().
*/
- 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;
Please sign in to comment.
Something went wrong with that request. Please try again.