summaryrefslogtreecommitdiffstats
path: root/sys/netinet/if_ether.c
diff options
context:
space:
mode:
authorwes <wes@FreeBSD.org>2000-04-11 06:55:09 +0000
committerwes <wes@FreeBSD.org>2000-04-11 06:55:09 +0000
commit6944dfb6ec65914c5f49a5b599451fb0040c811b (patch)
treea3eff1529db05acce851dd3a8e61f37b21924d5a /sys/netinet/if_ether.c
parentc0e0cff43c74fc168b7f6032c9b8e78eddfac08f (diff)
downloadFreeBSD-src-6944dfb6ec65914c5f49a5b599451fb0040c811b.zip
FreeBSD-src-6944dfb6ec65914c5f49a5b599451fb0040c811b.tar.gz
PR: kern/17872
Submitted by: csg@waterspout.com (C. Stephen Gunn)
Diffstat (limited to 'sys/netinet/if_ether.c')
-rw-r--r--sys/netinet/if_ether.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index b6d9827..1125455 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -432,9 +432,9 @@ arpresolve(ac, rt, m, dst, desten, rt0)
static void
arpintr()
{
- register struct mbuf *m, *m0;
+ register struct mbuf *m;
register struct arphdr *ar;
- int s, ml;
+ int s;
while (arpintrq.ifq_head) {
s = splimp();
@@ -459,14 +459,7 @@ arpintr()
continue;
}
- m0 = m;
- ml = 0;
- while (m0 != NULL) {
- ml += m0->m_len; /* wanna implement m_size?? */
- m0 = m0->m_next;
- }
-
- if (ml < sizeof(struct arphdr) + 2 * ar->ar_hln
+ if (m->m_pkthdr.len < sizeof(struct arphdr) + 2 * ar->ar_hln
+ 2 * ar->ar_pln) {
log(LOG_ERR, "arp: runt packet\n");
m_freem(m);
OpenPOWER on IntegriCloud