X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fnetwork%2Fgetnameinfo.c;h=5e6fae3ed0e517e4a8a76c9b8ca5e75b99a31c3a;hb=91d34c4533e6bf6eacad7a9f001f28f9e5ebc656;hp=2ba66e33d75c7d5ef91610b10fff794de58fcf0e;hpb=80e6485455a9c75c029d0e976d2dd9c8e441dd72;p=musl diff --git a/src/network/getnameinfo.c b/src/network/getnameinfo.c index 2ba66e33..5e6fae3e 100644 --- a/src/network/getnameinfo.c +++ b/src/network/getnameinfo.c @@ -96,7 +96,7 @@ static void reverse_services(char *buf, int port, int dgram) if ((p=strchr(line, '#'))) *p++='\n', *p=0; for (p=line; *p && !isspace(*p); p++); - if (!p) continue; + if (!*p) continue; *p++ = 0; svport = strtoul(p, &z, 10); @@ -135,13 +135,13 @@ int getnameinfo(const struct sockaddr *restrict sa, socklen_t sl, switch (af) { case AF_INET: a = (void *)&((struct sockaddr_in *)sa)->sin_addr; - if (sl != sizeof(struct sockaddr_in)) return EAI_FAMILY; + if (sl < sizeof(struct sockaddr_in)) return EAI_FAMILY; mkptr4(ptr, a); scopeid = 0; break; case AF_INET6: a = (void *)&((struct sockaddr_in6 *)sa)->sin6_addr; - if (sl != sizeof(struct sockaddr_in6)) return EAI_FAMILY; + if (sl < sizeof(struct sockaddr_in6)) return EAI_FAMILY; if (memcmp(a, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12)) mkptr6(ptr, a); else