about summary refs log tree commit diff
path: root/nss
diff options
context:
space:
mode:
Diffstat (limited to 'nss')
-rw-r--r--nss/getXXbyYY.c10
-rw-r--r--nss/getXXbyYY_r.c8
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