fix gethostby*_r result pointer value on error
authorRich Felker <dalias@aerifal.cx>
Mon, 28 Jul 2014 04:07:37 +0000 (00:07 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 28 Jul 2014 04:07:37 +0000 (00:07 -0400)
according to the documentation in the man pages, the GNU extension
functions gethostbyaddr_r, gethostbyname_r and gethostbyname2_r are
guaranteed to set the result pointer to NULL in case of error or no
result.

corresponds to commit fe82bb9b921be34370e6b71a1c6f062c20999ae0 in
master branch.

src/network/gethostbyaddr_r.c
src/network/gethostbyname2_r.c

index 73e764474a58a2a13542935df98983c66840add0..66e03309408c9df979a0949a2f23acf3bd8b8591 100644 (file)
@@ -18,6 +18,8 @@ int gethostbyaddr_r(const void *a, socklen_t l, int af,
        socklen_t sl = af==AF_INET6 ? sizeof sa.sin6 : sizeof sa.sin;
        int i;
 
+       *res = 0;
+
        /* Load address argument into sockaddr structure */
        if (af==AF_INET6 && l==16) memcpy(&sa.sin6.sin6_addr, a, 16);
        else if (af==AF_INET && l==4) memcpy(&sa.sin.sin_addr, a, 4);
index 27eb080f8502128179fcaa92a9bf15c8b66ea4f9..d6920b26242e99465b91cafc22f25e8de838bc0a 100644 (file)
@@ -20,6 +20,8 @@ int gethostbyname2_r(const char *name, int af,
        size_t need;
        const char *canon;
 
+       *res = 0;
+
        af = hint.ai_family;
 
        /* Align buffer */