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; }