summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorae <ae@FreeBSD.org>2011-07-04 05:47:48 +0000
committerae <ae@FreeBSD.org>2011-07-04 05:47:48 +0000
commit766eac763608b17c9277e49469f5f329f4a16332 (patch)
tree4beac8ce4791d4e490e6ea034cf1bcdc5bf9f0e6
parentc74259338a3a1c2e0c9a2f8831667786a5281518 (diff)
downloadFreeBSD-src-766eac763608b17c9277e49469f5f329f4a16332.zip
FreeBSD-src-766eac763608b17c9277e49469f5f329f4a16332.tar.gz
ARP code reuses mbuf from ARP request to make a reply, but it does not
reset rcvif to NULL. Since rcvif is not NULL, ipfw(4) supposes that ARP replies were received on specified interface. Reset rcvif to NULL for ARP replies to fix this issue. PR: kern/131817 Reviewed by: glebius MFC after: 1 month
-rw-r--r--sys/netinet/if_ether.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index 6a66c05..f91a9de 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -857,6 +857,7 @@ reply:
ah->ar_pro = htons(ETHERTYPE_IP); /* let's be sure! */
m->m_len = sizeof(*ah) + (2 * ah->ar_pln) + (2 * ah->ar_hln);
m->m_pkthdr.len = m->m_len;
+ m->m_pkthdr.rcvif = NULL;
sa.sa_family = AF_ARP;
sa.sa_len = 2;
(*ifp->if_output)(ifp, m, &sa, NULL);
OpenPOWER on IntegriCloud