diff options
Diffstat (limited to 'nss')
-rw-r--r-- | nss/getXXbyYY.c | 10 | ||||
-rw-r--r-- | nss/getXXbyYY_r.c | 8 |
2 files changed, 18 insertions, 0 deletions
diff --git a/nss/getXXbyYY.c b/nss/getXXbyYY.c index 21baad9474..a79fd08fef 100644 --- a/nss/getXXbyYY.c +++ b/nss/getXXbyYY.c @@ -96,6 +96,16 @@ FUNCTION_NAME (ADD_PARAMS) if (buffer != NULL) { #ifdef HANDLE_DIGITS_DOTS + /* We have to test for the use of IPv6 which can only be done by + examining `_res'. */ + if ((_res.options & RES_INIT) == 0 && res_init () == -1) + { +# ifdef NEED_H_ERRNO + h_errno_tmp = NETDB_INTERNAL; +# endif + result = NULL; + goto done; + } # include "digits_dots.c" #endif } diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c index 7e567a1325..3c7f2a14bb 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -115,6 +115,14 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, #endif #ifdef HANDLE_DIGITS_DOTS + /* We have to test for the use of IPv6 which can only be done by + examining `_res'. */ + if ((_res.options & RES_INIT) == 0 && res_init () == -1) + { + *h_errnop = NETDB_INTERNAL; + *result = NULL; + return -1; + } # define resbuf (*resbuf) # include "digits_dots.c" # undef resbuf |