]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Make sure RES_USE_INET6 is always restored
authorAndreas Schwab <schwab@redhat.com>
Thu, 30 Jun 2011 10:33:32 +0000 (06:33 -0400)
committerAndreas Schwab <schwab@redhat.com>
Thu, 30 Jun 2011 11:15:03 +0000 (13:15 +0200)
(cherry picked from commit 89f654c57b3b9a6aee480e25e37f88f06c898901)

ChangeLog
sysdeps/posix/getaddrinfo.c

index 31d2047edf08badadee06c9669dced3c424cbf47..534ac2c09413ba17680f8065a0b3a7ff12f67621 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-30  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/posix/getaddrinfo.c (gaih_inet): Make sure RES_USE_INET6
+       is always restored.
+
 2011-06-28  Ulrich Drepper  <drepper@gmail.com>
 
        [BZ #12935]
index 6b7423cda142c6027d26074b3c47bfb39cf7dfd8..27ce75edc1910d770d3b71a366244315b2313f7a 100644 (file)
@@ -828,6 +828,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
              tmpbuf = malloc (tmpbuflen);
              if (tmpbuf == NULL)
                {
+                 _res.options |= old_res_options & RES_USE_INET6;
                  result = -EAI_MEMORY;
                  goto free_and_return;
                }
@@ -872,6 +873,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
                                                2 * tmpbuflen);
                          if (newp == NULL)
                            {
+                             _res.options |= old_res_options & RES_USE_INET6;
                              result = -EAI_MEMORY;
                              goto free_and_return;
                            }
@@ -991,6 +993,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
                                      canonbuf = malloc (max_fqdn_len);
                                      if (canonbuf == NULL)
                                        {
+                                         _res.options
+                                           |= old_res_options & RES_USE_INET6;
                                          result = -EAI_MEMORY;
                                          goto free_and_return;
                                        }