DragonFlyBSD Kernel Audit
DF-1482 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/netif/vr/if_vr.c
+++ b/sys/dev/netif/vr/if_vr.c
@@ -1286,6 +1286,11 @@
 	 * to copy, just do it all the time.
 	 */
 	tx_buf = VR_TX_BUF(sc, chain_idx);
+
+	/* TX scratch buffer is MCLBYTES; drop oversize frames. */
+	if (m_head->m_pkthdr.len > MCLBYTES)
+		return (EFBIG);
+
 	m_copydata(m_head, 0, m_head->m_pkthdr.len, tx_buf);
 	len = m_head->m_pkthdr.len;