diff options
| author | Yaroslav Tykhiy <ytykhiy@gmail.com> | 2001-03-27 12:34:58 +0000 |
|---|---|---|
| committer | Yaroslav Tykhiy <ytykhiy@gmail.com> | 2001-03-27 12:34:58 +0000 |
| commit | 4cbc8ad1bb3d3aca00bfb56e5125a6bff5fa3278 (patch) | |
| tree | b19b88fb0991ee1cfb564ffeec8dd2143a5bf564 /sys/netinet | |
| parent | aa7664372fe5ce01e00d09cffa34361c8c40f713 (diff) | |
Notes
Diffstat (limited to 'sys/netinet')
| -rw-r--r-- | sys/netinet/if_ether.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index 49d1189936fb..de5d906e33d7 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -519,6 +519,12 @@ in_arpinput(m) struct in_addr isaddr, itaddr, myaddr; int op, rif_len; + if (m->m_len < sizeof(struct ether_arp) && + (m = m_pullup(m, sizeof(struct ether_arp))) == NULL) { + log(LOG_ERR, "in_arp: runt packet -- m_pullup failed\n"); + return; + } + ea = mtod(m, struct ether_arp *); op = ntohs(ea->arp_op); (void)memcpy(&isaddr, ea->arp_spa, sizeof (isaddr)); |
