diff options
-rw-r--r-- | src/gns/nss/nss_gns.c | 7 | ||||
-rw-r--r-- | src/gns/nss/nss_gns_query.c | 10 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/gns/nss/nss_gns.c b/src/gns/nss/nss_gns.c index 82fe1e739..b3b1346aa 100644 --- a/src/gns/nss/nss_gns.c +++ b/src/gns/nss/nss_gns.c | |||
@@ -140,12 +140,19 @@ enum nss_status _nss_gns_gethostbyname2_r( | |||
140 | if (!gns_resolve_name(af, name, &u) == 0) | 140 | if (!gns_resolve_name(af, name, &u) == 0) |
141 | { | 141 | { |
142 | status = NSS_STATUS_NOTFOUND; | 142 | status = NSS_STATUS_NOTFOUND; |
143 | goto finish; | ||
143 | } | 144 | } |
144 | } | 145 | } |
146 | else | ||
147 | { | ||
148 | status = NSS_STATUS_UNAVAIL; | ||
149 | goto finish; | ||
150 | } | ||
145 | 151 | ||
146 | if (u.count == 0) { | 152 | if (u.count == 0) { |
147 | *errnop = ETIMEDOUT; | 153 | *errnop = ETIMEDOUT; |
148 | *h_errnop = HOST_NOT_FOUND; | 154 | *h_errnop = HOST_NOT_FOUND; |
155 | status = NSS_STATUS_NOTFOUND; | ||
149 | goto finish; | 156 | goto finish; |
150 | } | 157 | } |
151 | 158 | ||
diff --git a/src/gns/nss/nss_gns_query.c b/src/gns/nss/nss_gns_query.c index 1eadff0ce..11356c216 100644 --- a/src/gns/nss/nss_gns_query.c +++ b/src/gns/nss/nss_gns_query.c | |||
@@ -46,8 +46,11 @@ int gns_resolve_name(int af, const char *name, struct userdata *u) | |||
46 | line[strlen(line)-1] = '\0'; | 46 | line[strlen(line)-1] = '\0'; |
47 | if (af == AF_INET) | 47 | if (af == AF_INET) |
48 | { | 48 | { |
49 | if (inet_pton(af, line, &(u->data.ipv4[u->count++]))) | 49 | if (inet_pton(af, line, &(u->data.ipv4[u->count]))) |
50 | { | ||
51 | u->count++; | ||
50 | u->data_len += sizeof(ipv4_address_t); | 52 | u->data_len += sizeof(ipv4_address_t); |
53 | } | ||
51 | else | 54 | else |
52 | { | 55 | { |
53 | fclose (p); | 56 | fclose (p); |
@@ -57,8 +60,11 @@ int gns_resolve_name(int af, const char *name, struct userdata *u) | |||
57 | } | 60 | } |
58 | else if ((af == AF_INET6)) | 61 | else if ((af == AF_INET6)) |
59 | { | 62 | { |
60 | if (inet_pton(af, line, &(u->data.ipv6[u->count++]))) | 63 | if (inet_pton(af, line, &(u->data.ipv6[u->count]))) |
64 | { | ||
65 | u->count++; | ||
61 | u->data_len += sizeof(ipv6_address_t); | 66 | u->data_len += sizeof(ipv6_address_t); |
67 | } | ||
62 | else | 68 | else |
63 | { | 69 | { |
64 | fclose (p); | 70 | fclose (p); |