DragonFlyBSD Kernel Audit
DF-0619 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netinet6/raw_ip6.c b/sys/netinet6/raw_ip6.c
--- a/sys/netinet6/raw_ip6.c
+++ b/sys/netinet6/raw_ip6.c
@@ -740,6 +740,11 @@
 			error = ENOTCONN;
 			goto out;
 		}
+		if (nam->sa_len != sizeof(struct sockaddr_in6)) {
+			m_freem(m);
+			error = EAFNOSUPPORT;
+			goto out;
+		}
 		tmp = *(struct sockaddr_in6 *)nam;
 		dst = &tmp;
 	}