diff options
Diffstat (limited to 'nss/getXXbyYY_r.c')
-rw-r--r-- | nss/getXXbyYY_r.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c index a0e0e003b7..99639593b8 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -248,23 +248,22 @@ done: POSTPROCESS; #endif - int result; + int res; if (status == NSS_STATUS_SUCCESS) - result = 0; + res = 0; /* Don't pass back ERANGE if this is not for a too-small buffer. */ else if (errno == ERANGE && status != NSS_STATUS_TRYAGAIN) - { + res = EINVAL; #ifdef NEED_H_ERRNO - /* These functions only set errno if h_errno is NETDB_INTERNAL. */ - if (*h_errnop != NETDB_INTERNAL) + /* These functions only set errno if h_errno is NETDB_INTERNAL. */ + else if (status == NSS_STATUS_TRYAGAIN && *h_errnop != NETDB_INTERNAL) + res = EAGAIN; #endif - result = ENOENT; - } else return errno; - __set_errno (result); - return result; + __set_errno (res); + return res; } |