X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fnetwork%2Fgetaddrinfo.c;h=93c75160d649a5f1cf141eea3cb45bb5a44a2b3a;hb=fcaec912ed406659832f452e71a6c965308362dd;hp=c0f135f31442591435fcdd5f70159f4cef537465;hpb=e2cc0bee118d7a282bdce0b71db433def3022fb6;p=musl diff --git a/src/network/getaddrinfo.c b/src/network/getaddrinfo.c index c0f135f3..93c75160 100644 --- a/src/network/getaddrinfo.c +++ b/src/network/getaddrinfo.c @@ -61,7 +61,7 @@ int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint, //char hostbuf[256]; char line[512]; FILE *f, _f; - unsigned char _buf[64]; + unsigned char _buf[1024]; char *z; int result; int cnt; @@ -75,7 +75,8 @@ int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint, type = proto==IPPROTO_UDP ? SOCK_DGRAM : SOCK_STREAM; if (serv) { - port = strtoul(serv, &z, 0); + if (!*serv) return EAI_SERVICE; + port = strtoul(serv, &z, 10); if (!*z && port > 65535) return EAI_SERVICE; if (!port) { if (flags & AI_NUMERICSERV) return EAI_SERVICE; @@ -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);