Browse Source

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 years ago
parent
commit
cabe9aa974
1 changed files with 3 additions and 0 deletions
  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;