diff options
author | Timo Teräs <timo.teras@iki.fi> | 2014-06-20 13:53:23 +0300 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2014-06-20 09:17:57 -0400 |
commit | fe82bb9b921be34370e6b71a1c6f062c20999ae0 (patch) | |
tree | 1191f70887f39f7617393f3bf27db77575011650 /src/network/gethostbyaddr_r.c | |
parent | 2e5d256984adb6864ece82fb689ddb2b20e10e4d (diff) | |
download | musl-fe82bb9b921be34370e6b71a1c6f062c20999ae0.tar.gz musl-fe82bb9b921be34370e6b71a1c6f062c20999ae0.tar.xz musl-fe82bb9b921be34370e6b71a1c6f062c20999ae0.zip |
fix gethostby*_r result pointer value on error
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.
Diffstat (limited to 'src/network/gethostbyaddr_r.c')
-rw-r--r-- | src/network/gethostbyaddr_r.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/network/gethostbyaddr_r.c b/src/network/gethostbyaddr_r.c index 73e76447..66e03309 100644 --- a/src/network/gethostbyaddr_r.c +++ b/src/network/gethostbyaddr_r.c @@ -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); |