change ldso path file logic to replace rather than add to search path
[oweals/musl.git] / src / network / getaddrinfo.c
index 838621668a7bfc241b7c2b1852211a07a6114dce..b341912d0215467cb832bdb6da5679205b791660 100644 (file)
@@ -47,7 +47,7 @@ struct aibuf {
 /* Extra slots needed for storing canonical name */
 #define EXTRA ((256+sizeof(struct aibuf)-1)/sizeof(struct aibuf))
 
-int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint, struct addrinfo **res)
+int getaddrinfo(const char *restrict host, const char *restrict serv, const struct addrinfo *restrict hint, struct addrinfo **restrict res)
 {
        int flags = hint ? hint->ai_flags : 0;
        int family = hint ? hint->ai_family : AF_UNSPEC;
@@ -76,8 +76,7 @@ int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint,
        if (serv) {
                if (!*serv) return EAI_SERVICE;
                port = strtoul(serv, &z, 10);
-               if (!*z && port > 65535) return EAI_SERVICE;
-               if (!port) {
+               if (*z) {
                        size_t servlen = strlen(serv);
                        char *end = line;
 
@@ -96,6 +95,7 @@ int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint,
                        __fclose_ca(f);
                        if (feof(f)) return EAI_SERVICE;
                }
+               if (port > 65535) return EAI_SERVICE;
                port = htons(port);
        }