DragonFlyBSD Kernel Audit
DF-0756 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/net/disc/if_disc.c b/sys/net/disc/if_disc.c
--- a/sys/net/disc/if_disc.c
+++ b/sys/net/disc/if_disc.c
@@ -115,6 +115,8 @@
 		panic("discoutput no HDR");
 	/* BPF write needs to be handled specially */
 	if (dst->sa_family == AF_UNSPEC) {
+		if (m->m_len < sizeof(int))
+			return (0);
 		dst->sa_family = *(mtod(m, int *));
 		m->m_len -= sizeof(int);
 		m->m_pkthdr.len -= sizeof(int);