summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet')
-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 c5238cf..34f820d 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)) {
OpenPOWER on IntegriCloud