]> 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>
Thu, 28 Apr 2016 15:41:49 +0000 (17:41 +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.

ChangeLog
inet/getnameinfo.c

index bb2ca7355446331e052a31706467590e9bc3a5ae..896315216684c2748fca70130e33f3f7cd680a7f 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-04-28  Florian Weimer  <fweimer@redhat.com>
 
        * resolv/inet_addr.c: Reindent preprocessor conditionals.
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)