From cfca0aa39759db23eafd06fda9d989bd36f35a88 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 13 Oct 2007 23:04:40 +0000 Subject: [BZ #3195] * nscd/nscd_getai.c (__nscd_getai): Set errno to 0 in case we found no entry. * nscd/nscd_getgr.c (nscd_getgr_r): Likewise. * nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise. * nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise. * nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise. --- ChangeLog | 8 ++++++++ nscd/nscd_getai.c | 4 ++-- nscd/nscd_getgr_r.c | 4 ++-- nscd/nscd_gethst_r.c | 4 ++-- nscd/nscd_getpw_r.c | 4 ++-- nscd/nscd_getserv_r.c | 4 ++-- nscd/nscd_helper.c | 2 +- 7 files changed, 19 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 13bf1dc9f6..ae900fed15 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2007-10-13 Ulrich Drepper + [BZ #3195] + * nscd/nscd_getai.c (__nscd_getai): Set errno to 0 in case we found + no entry. + * nscd/nscd_getgr.c (nscd_getgr_r): Likewise. + * nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise. + * nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise. + * nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise. + * nscd/nscd_getgr_r.c (nscd_getgr_r): Optimize a bit: use simpler read mechanism when there are no group members and avoid no-op read syscall in this case. diff --git a/nscd/nscd_getai.c b/nscd/nscd_getai.c index 5df32dc6dc..56f963776e 100644 --- a/nscd/nscd_getai.c +++ b/nscd/nscd_getai.c @@ -168,8 +168,8 @@ __nscd_getai (const char *key, struct nscd_ai_result **result, int *h_errnop) /* Store the error number. */ *h_errnop = ai_resp.error; - /* The `errno' to some value != ERANGE. */ - __set_errno (ENOENT); + /* Set errno to 0 to indicate no error, just no found record. */ + __set_errno (0); /* Even though we have not found anything, the result is zero. */ retval = 0; } diff --git a/nscd/nscd_getgr_r.c b/nscd/nscd_getgr_r.c index 543ee17703..a277a1d355 100644 --- a/nscd/nscd_getgr_r.c +++ b/nscd/nscd_getgr_r.c @@ -302,8 +302,8 @@ nscd_getgr_r (const char *key, size_t keylen, request_type type, } else { - /* The `errno' to some value != ERANGE. */ - __set_errno (ENOENT); + /* Set errno to 0 to indicate no error, just no found record. */ + __set_errno (0); /* Even though we have not found anything, the result is zero. */ retval = 0; } diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c index 03b73a4a47..a211404756 100644 --- a/nscd/nscd_gethst_r.c +++ b/nscd/nscd_gethst_r.c @@ -379,8 +379,8 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type, /* Store the error number. */ *h_errnop = hst_resp.error; - /* The `errno' to some value != ERANGE. */ - __set_errno (ENOENT); + /* Set errno to 0 to indicate no error, just no found record. */ + __set_errno (0); /* Even though we have not found anything, the result is zero. */ retval = 0; } diff --git a/nscd/nscd_getpw_r.c b/nscd/nscd_getpw_r.c index b84baa1a66..21f792bb4e 100644 --- a/nscd/nscd_getpw_r.c +++ b/nscd/nscd_getpw_r.c @@ -211,8 +211,8 @@ nscd_getpw_r (const char *key, size_t keylen, request_type type, } else { - /* The `errno' to some value != ERANGE. */ - __set_errno (ENOENT); + /* Set errno to 0 to indicate no error, just no found record. */ + __set_errno (0); /* Even though we have not found anything, the result is zero. */ retval = 0; } diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c index a725b1d3de..3cd5a24298 100644 --- a/nscd/nscd_getserv_r.c +++ b/nscd/nscd_getserv_r.c @@ -301,8 +301,8 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, } else { - /* The `errno' to some value != ERANGE. */ - __set_errno (ENOENT); + /* Set errno to 0 to indicate no error, just no found record. */ + __set_errno (0); /* Even though we have not found anything, the result is zero. */ retval = 0; } diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c index b499f9cf99..866535200f 100644 --- a/nscd/nscd_helper.c +++ b/nscd/nscd_helper.c @@ -39,7 +39,7 @@ /* Extra time we wait if the socket is still receiving data. This - value is in microseconds. Note that the other side is nscd on the + value is in milliseconds. Note that the other side is nscd on the local machine and it is already transmitting data. So the wait time need not be long. */ #define EXTRA_RECEIVE_TIME 200 -- cgit 1.4.1