Răsfoiți Sursa

reject invalid address families in getaddrinfo

subsequent code assumes the address family requested is either
unspecified or one of IPv4/IPv6, and could malfunction if this
constraint is not met, so other address families should be explicitly
rejected.
Rich Felker 11 ani în urmă
părinte
comite
cabe9aa974
1 a modificat fișierele cu 3 adăugiri și 0 ștergeri
  1. 3 0
      src/network/getaddrinfo.c

+ 3 - 0
src/network/getaddrinfo.c

@@ -62,6 +62,9 @@ int getaddrinfo(const char *restrict host, const char *restrict serv, const stru
 	int result;
 	int cnt;
 
+	if (family != AF_INET && family != AF_INET6 && family != AF_UNSPEC)
+		return EAI_FAMILY;
+
 	if (host && strlen(host)>255) return EAI_NONAME;
 	if (serv && strlen(serv)>32) return EAI_SERVICE;