summaryrefslogtreecommitdiff
path: root/sys/netinet/if_ether.c
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2003-12-23 13:33:23 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2003-12-23 13:33:23 +0000
commit78e2d2bd28a40656423cb5e688038e0c36049d9d (patch)
treec8c03633a2e7a49512ff5830a711e95d5befd9c3 /sys/netinet/if_ether.c
parentdbe0253a8ba139730759505f8b4ed5ac48a0bf63 (diff)
Notes
Diffstat (limited to 'sys/netinet/if_ether.c')
-rw-r--r--sys/netinet/if_ether.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index c5238cfc7ef6..34f820d6291e 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -530,11 +530,13 @@ arpintr(struct mbuf *m)
return;
}
- if (m->m_pkthdr.len < arphdr_len(ar) &&
- (m = m_pullup(m, arphdr_len(ar))) == NULL) {
- log(LOG_ERR, "arp: runt packet\n");
- m_freem(m);
- return;
+ if (m->m_pkthdr.len < arphdr_len(ar)) {
+ if ((m = m_pullup(m, arphdr_len(ar))) == NULL) {
+ log(LOG_ERR, "arp: runt packet\n");
+ m_freem(m);
+ return;
+ }
+ ar = mtod(m, struct arphdr *);
}
switch (ntohs(ar->ar_pro)) {