DragonFlyBSD Kernel Audit
DF-1481 / fix.diff
← back to finding ↓ download raw
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