]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
getnameinfo: Do not preserve errno
authorFlorian Weimer <fweimer@redhat.com>
Thu, 28 Apr 2016 15:41:49 +0000 (17:41 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 9 May 2016 09:04:33 +0000 (11:04 +0200)
POSIX does not require it, the companion getaddrinfo implementation
does not do it, and this behavior is not documented in the manual
page, either.

(cherry picked from commit 2b54cbce2c363ab6ae89d10657d7465858116d7a)

ChangeLog
inet/getnameinfo.c

index 6635c5e2f1b8c5a04f5dffb740b80e50c2d45de2..73c352eac818b081ee31dff06dd5a40b0fb57fb2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-04-28  Florian Weimer  <fweimer@redhat.com>
+
+       * inet/getnameinfo.c (getnameinfo): Do not preserve errno.
+
 2016-03-29  Florian Weimer  <fweimer@redhat.com>
 
        [BZ #19837]
index 40f67f082fd6a7518240528bf586d49fad4ae0cb..9b1847b025472cda43ff8e62ebc64c98e30ed078 100644 (file)
@@ -175,7 +175,6 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
             socklen_t hostlen, char *serv, socklen_t servlen,
             int flags)
 {
-  int serrno = errno;
   int herrno;
   struct hostent th;
   int ok = 0;
@@ -326,10 +325,7 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
        if (!ok)
          {
            if (flags & NI_NAMEREQD)
-             {
-               __set_errno (serrno);
-               return EAI_NONAME;
-             }
+             return EAI_NONAME;
            else
              {
                const char *c;
@@ -406,10 +402,7 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
          };
 
        if (flags & NI_NAMEREQD)
-          {
-           __set_errno (serrno);
-           return EAI_NONAME;
-         }
+         return EAI_NONAME;
 
        strncpy (host, "localhost", hostlen);
        break;
@@ -463,7 +456,6 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
     host[hostlen-1] = 0;
   if (serv && (servlen > 0))
     serv[servlen-1] = 0;
-  errno = serrno;
   return 0;
 }
 libc_hidden_def (getnameinfo)