This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] getnameinfo: Do not restore errno on error
- From: Florian Weimer <fweimer at redhat dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Tue, 8 Mar 2016 15:27:54 +0100
- Subject: [PATCH] getnameinfo: Do not restore errno on error
- Authentication-results: sourceware.org; auth=none
POSIX does not require it, and this behavior is not documented
in the manual page, either.
Florian
>From 3816c2f4c8fee95fc6a18e432c1a22702fb08e3d Mon Sep 17 00:00:00 2001
Message-Id: <3816c2f4c8fee95fc6a18e432c1a22702fb08e3d.1457447223.git.fweimer@redhat.com>
From: Florian Weimer <fweimer@redhat.com>
Date: Tue, 8 Mar 2016 15:15:10 +0100
Subject: [PATCH] getnameinfo: Do not restore errno on error
To: libc-alpha@sourceware.org
POSIX does not require it, and this behavior is not documented
in the manual page, either.
---
ChangeLog | 5 +++++
inet/getnameinfo.c | 12 ++----------
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 2a7abbc..a3b4324 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2016-03-08 Florian Weimer <fweimer@redhat.com>
+ * inet/getnameinfo.c (getnameinfo): Do not preserve errno on
+ error.
+
+2016-03-08 Florian Weimer <fweimer@redhat.com>
+
* sunrpc/key_call.c (key_call_keyenvoy): Use int status instead of
union wait. Report any non-zero exit status as error.
diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c
index 40f67f0..9b1847b 100644
--- a/inet/getnameinfo.c
+++ b/inet/getnameinfo.c
@@ -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)
--
2.4.3