X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fnetwork%2Fgetnameinfo.c;h=f77e73ade89dea90bf427458468e678b80b5217b;hb=ae388becb529428ac926da102f1d025b3c3968da;hp=3484fc697f9fa93e9a7d02295457b00a3a137e6c;hpb=633183b5d1c298e4335da841926efe96252057b3;p=musl diff --git a/src/network/getnameinfo.c b/src/network/getnameinfo.c index 3484fc69..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 @@ -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