about summary refs log tree commit diff
path: root/src/network/getaddrinfo.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-04-20 20:02:35 -0400
committerRich Felker <dalias@aerifal.cx>2011-04-20 20:02:35 -0400
commitf1ac8a28d8f3c93ef42c20460992f74822975f11 (patch)
tree4e715a129283945c8ae5a103df6d9235af4e0861 /src/network/getaddrinfo.c
parentd4b5d6e98160b3c76b37fef1b0581c3b9a7cd192 (diff)
downloadmusl-f1ac8a28d8f3c93ef42c20460992f74822975f11.tar.gz
musl-f1ac8a28d8f3c93ef42c20460992f74822975f11.tar.xz
musl-f1ac8a28d8f3c93ef42c20460992f74822975f11.zip
disallow blank strings as service or host name
Diffstat (limited to 'src/network/getaddrinfo.c')
-rw-r--r--src/network/getaddrinfo.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/network/getaddrinfo.c b/src/network/getaddrinfo.c
index c0f135f3..494b412a 100644
--- a/src/network/getaddrinfo.c
+++ b/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);