diff options
Diffstat (limited to 'src/slirp.c')
-rw-r--r-- | src/slirp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/slirp.c b/src/slirp.c index 9bead0c..abb6f9a 100644 --- a/src/slirp.c +++ b/src/slirp.c @@ -860,6 +860,10 @@ static void arp_input(Slirp *slirp, const uint8_t *pkt, int pkt_len) return; } + if (pkt_len < ETH_HLEN + sizeof(struct slirp_arphdr)) { + return; /* packet too short */ + } + ar_op = ntohs(ah->ar_op); switch (ar_op) { case ARPOP_REQUEST: |