Skip to content

Commit f892e50

Browse files
committed
libc: preserve errno in gai_strerror()
PR: 288931 Reviewed by: emaste, glebius Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D52010
1 parent bd4dd5d commit f892e50

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

lib/libc/net/gai_strerror.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,9 @@ gai_strerror(int ecode)
8282
#if defined(NLS)
8383
nl_catd catd;
8484
char *buf;
85+
int saved_errno;
8586

87+
saved_errno = errno;
8688
if (thr_main() != 0)
8789
buf = gai_buf;
8890
else {
@@ -110,9 +112,11 @@ gai_strerror(int ecode)
110112
strlcpy(buf, catgets(catd, 3, NL_MSGMAX, "Unknown error"),
111113
sizeof(gai_buf));
112114
catclose(catd);
115+
errno = saved_errno;
113116
return (buf);
114117

115118
thr_err:
119+
errno = saved_errno;
116120
#endif
117121
if (ecode >= 0 && ecode < EAI_MAX)
118122
return (ai_errlist[ecode]);

0 commit comments

Comments
 (0)