X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=lib%2Ffake-getaddrinfo.c;h=734f50ae78a8bf64424abd2144e8f35274a25afe;hp=14420b586d0ff261743f2aa65a7f228368ff9faa;hb=refs%2Fheads%2F1.0-gnutls;hpb=b05df3fcbfb8dbef4c87691d118c5b68aeb79e4a diff --git a/lib/fake-getaddrinfo.c b/lib/fake-getaddrinfo.c index 14420b58..734f50ae 100644 --- a/lib/fake-getaddrinfo.c +++ b/lib/fake-getaddrinfo.c @@ -64,7 +64,7 @@ static struct addrinfo *malloc_ai(uint16_t port, uint32_t addr) int getaddrinfo(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res) { - struct addrinfo *prev = NULL; + struct addrinfo *ai, *prev = NULL; struct hostent *hp; struct in_addr in = {0}; int i; @@ -92,12 +92,14 @@ int getaddrinfo(const char *hostname, const char *servname, const struct addrinf return EAI_NODATA; for (i = 0; hp->h_addr_list[i]; i++) { - *res = malloc_ai(port, ((struct in_addr *)hp->h_addr_list[i])->s_addr); + *ai = malloc_ai(port, ((struct in_addr *)hp->h_addr_list[i])->s_addr); if(prev) prev->ai_next = *res; + else + *res = ai; - prev = *res; + prev = ai; } return 0;