diff options
| author | Rich Felker <dalias@aerifal.cx> | 2011-04-20 20:02:35 -0400 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2011-04-20 20:02:35 -0400 | 
| commit | f1ac8a28d8f3c93ef42c20460992f74822975f11 (patch) | |
| tree | 4e715a129283945c8ae5a103df6d9235af4e0861 /src | |
| parent | d4b5d6e98160b3c76b37fef1b0581c3b9a7cd192 (diff) | |
| download | musl-f1ac8a28d8f3c93ef42c20460992f74822975f11.tar.gz | |
disallow blank strings as service or host name
Diffstat (limited to 'src')
| -rw-r--r-- | src/network/getaddrinfo.c | 3 | 
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); | 
