diff --git a/sys/dev/netif/vr/if_vr.c b/sys/dev/netif/vr/if_vr.c --- a/sys/dev/netif/vr/if_vr.c +++ b/sys/dev/netif/vr/if_vr.c @@ -1001,8 +1001,13 @@ continue; } - /* No errors; receive the packet. */ + /* No errors; receive the packet. */ total_len = VR_RXBYTES(cur_rx->vr_ptr->vr_status); + if (total_len > MCLBYTES - ETHER_CRC_LEN) { + IFNET_STAT_INC(ifp, ierrors, 1); + vr_newbuf(sc, cur_rx, m); + continue; + } /* * XXX The VIA Rhine chip includes the CRC with every