X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fnetwork%2Fgetnameinfo.c;h=f77e73ade89dea90bf427458468e678b80b5217b;hb=1ef37aa00ea830dfda76e04e3d941cafa74d8b76;hp=2ba66e33d75c7d5ef91610b10fff794de58fcf0e;hpb=80e6485455a9c75c029d0e976d2dd9c8e441dd72;p=musl diff --git a/src/network/getnameinfo.c b/src/network/getnameinfo.c index 2ba66e33..f77e73ad 100644 --- a/src/network/getnameinfo.c +++ b/src/network/getnameinfo.c @@ -2,19 +2,16 @@ #include #include #include +#include #include #include #include #include #include +#include #include "lookup.h" #include "stdio_impl.h" -int __dns_parse(const unsigned char *, int, int (*)(void *, int, const void *, int, const void *), void *); -int __dn_expand(const unsigned char *, const unsigned char *, const unsigned char *, char *, int); -int __res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int); -int __res_send(const unsigned char *, int, unsigned char *, int); - #define PTR_MAX (64 + sizeof ".in-addr.arpa") #define RR_PTR 12 @@ -96,7 +93,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 +132,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