summaryrefslogtreecommitdiffstats
path: root/lib/libc/net/getaddrinfo.c
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2005-04-15 14:42:29 +0000
committerume <ume@FreeBSD.org>2005-04-15 14:42:29 +0000
commitb8a79c699c2858b875020bba30ca8ced2a6e3ed1 (patch)
tree31c9250817dd4dd9b5e307af8645d111e227d398 /lib/libc/net/getaddrinfo.c
parent53377abba9839772973c53e13f0df4571c7da0c6 (diff)
downloadFreeBSD-src-b8a79c699c2858b875020bba30ca8ced2a6e3ed1.zip
FreeBSD-src-b8a79c699c2858b875020bba30ca8ced2a6e3ed1.tar.gz
hostalias() is not thread-safe. So, introduce _res_hostalias()
and use it. Obtained from: BIND9
Diffstat (limited to 'lib/libc/net/getaddrinfo.c')
-rw-r--r--lib/libc/net/getaddrinfo.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c
index b695e58..8e7f566 100644
--- a/lib/libc/net/getaddrinfo.c
+++ b/lib/libc/net/getaddrinfo.c
@@ -2283,7 +2283,7 @@ _yp_getaddrinfo(rv, cb_data, ap)
/* resolver logic */
-extern const char *__hostalias(const char *);
+extern const char *_res_hostalias(const char *, char *, size_t);
/*
* Formulate a normal query, send, and await answer.
@@ -2418,6 +2418,7 @@ res_searchN(name, target)
u_int dots;
int trailing_dot, ret, saved_herrno;
int got_nodata = 0, got_servfail = 0, tried_as_is = 0;
+ char abuf[MAXDNAME];
if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
h_errno = NETDB_INTERNAL;
@@ -2436,7 +2437,7 @@ res_searchN(name, target)
/*
* if there aren't any dots, it could be a user-level alias
*/
- if (!dots && (cp = __hostalias(name)) != NULL)
+ if (!dots && (cp = _res_hostalias(name, abuf, sizeof(abuf))) != NULL)
return (res_queryN(cp, target));
/*
OpenPOWER on IntegriCloud