diff options
author | Florian Weimer <fweimer@redhat.com> | 2017-09-01 08:56:46 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-09-01 08:56:46 +0200 |
commit | 924b121c5978689001ae28cf1c8497371dad4f71 (patch) | |
tree | 070eaea40e33996c5101fd5782239e15ffec2c25 | |
parent | d9ff799a5b2884d2abc0a1689fb6b2c71084424c (diff) | |
download | glibc-924b121c5978689001ae28cf1c8497371dad4f71.zip glibc-924b121c5978689001ae28cf1c8497371dad4f71.tar.gz glibc-924b121c5978689001ae28cf1c8497371dad4f71.tar.bz2 |
getaddrinfo: Use &errno has the errno pointer
Similar code in nss/getXXbyYY_r.c is already using &errno as the
argument.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/posix/getaddrinfo.c | 23 |
2 files changed, 16 insertions, 13 deletions
@@ -1,3 +1,9 @@ +2017-09-01 Florian Weimer <fweimer@redhat.com> + + * sysdeps/posix/getaddrinfo.c (gethosts): Use errno directly. + (getcanonname): Likewise. + (gaih_inet): Likewise. + 2017-08-31 Steve Ellcey <sellcey@cavium.com> Richard Henderson <rth@twiddle.net> diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index fcc5d79..0e79ac2 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -247,11 +247,10 @@ convert_hostent_to_gaih_addrtuple (const struct addrinfo *req, char *localcanon = NULL; \ no_data = 0; \ while (1) { \ - rc = 0; \ status = DL_CALL_FCT (fct, (name, _family, &th, \ tmpbuf->data, tmpbuf->length, \ - &rc, &herrno, NULL, &localcanon)); \ - if (rc != ERANGE || herrno != NETDB_INTERNAL) \ + &errno, &herrno, NULL, &localcanon)); \ + if (errno != ERANGE || herrno != NETDB_INTERNAL) \ break; \ if (!scratch_buffer_grow (tmpbuf)) \ { \ @@ -261,11 +260,11 @@ convert_hostent_to_gaih_addrtuple (const struct addrinfo *req, goto free_and_return; \ } \ } \ - if (status == NSS_STATUS_SUCCESS && rc == 0) \ + if (status == NSS_STATUS_SUCCESS && errno == 0) \ h = &th; \ else \ h = NULL; \ - if (rc != 0) \ + if (errno != 0) \ { \ if (herrno == NETDB_INTERNAL) \ { \ @@ -334,9 +333,8 @@ getcanonname (service_user *nip, struct gaih_addrtuple *at, const char *name) { char buf[256]; int herrno; - int rc; if (DL_CALL_FCT (cfct, (at->name ?: name, buf, sizeof (buf), - &s, &rc, &herrno)) != NSS_STATUS_SUCCESS) + &s, &errno, &herrno)) != NSS_STATUS_SUCCESS) /* If the canonical name cannot be determined, use the passed string. */ s = (char *) name; @@ -352,7 +350,6 @@ gaih_inet (const char *name, const struct gaih_service *service, const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; struct gaih_addrtuple *at = NULL; - int rc; bool got_ipv6 = false; const char *canon = NULL; const char *orig_name = name; @@ -394,7 +391,8 @@ gaih_inet (const char *name, const struct gaih_service *service, st = (struct gaih_servtuple *) alloca_account (sizeof (struct gaih_servtuple), alloca_used); - if ((rc = gaih_inet_serv (service->name, tp, req, st, tmpbuf))) + int rc = gaih_inet_serv (service->name, tp, req, st, tmpbuf); + if (__glibc_unlikely (rc != 0)) return rc; } else @@ -494,7 +492,7 @@ gaih_inet (const char *name, const struct gaih_service *service, idn_flags |= IDNA_USE_STD3_ASCII_RULES; char *p = NULL; - rc = __idna_to_ascii_lz (name, &p, idn_flags); + int rc = __idna_to_ascii_lz (name, &p, idn_flags); if (rc != IDNA_SUCCESS) { /* No need to jump to free_and_return here. */ @@ -792,15 +790,14 @@ gaih_inet (const char *name, const struct gaih_service *service, while (1) { - rc = 0; status = DL_CALL_FCT (fct4, (name, pat, tmpbuf->data, tmpbuf->length, - &rc, &herrno, + &errno, &herrno, NULL)); if (status == NSS_STATUS_SUCCESS) break; if (status != NSS_STATUS_TRYAGAIN - || rc != ERANGE || herrno != NETDB_INTERNAL) + || errno != ERANGE || herrno != NETDB_INTERNAL) { if (herrno == TRY_AGAIN) no_data = EAI_AGAIN; |