瀏覽代碼

disallow blank strings as service or host name

Rich Felker 14 年之前
父節點
當前提交
f1ac8a28d8
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      src/network/getaddrinfo.c

+ 3 - 0
src/network/getaddrinfo.c

@@ -75,6 +75,7 @@ int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint,
 		type = proto==IPPROTO_UDP ? SOCK_DGRAM : SOCK_STREAM;
 
 	if (serv) {
+		if (!*serv) return EAI_SERVICE;
 		port = strtoul(serv, &z, 0);
 		if (!*z && port > 65535) return EAI_SERVICE;
 		if (!port) {
@@ -107,6 +108,8 @@ int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint,
 		return 0;
 	}
 
+	if (!*host) return EAI_NONAME;
+
 	/* Try as a numeric address */
 	if (__ipparse(&sa, family, host) >= 0) {
 		buf = calloc(sizeof *buf, 1+EXTRA);