From 895a08c0897a753a30250bb4995b5cf771ee0084 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 15 Oct 2007 03:19:44 +0000 Subject: * nscd/nscd_getgr_r.c (nscd_getgr_r): Store result of successful read from nscd. --- ChangeLog | 3 +++ nscd/nscd_getgr_r.c | 18 ++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 74e840a..f8d5b9d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2007-10-14 Ulrich Drepper + * nscd/nscd_getgr_r.c (nscd_getgr_r): Store result of successful + read from nscd. + * sysdeps/posix/getaddrinfo.c (struct sort_result): Add service_order. (rfc3484_sort): Make sure that even if qsort doesn't support diff --git a/nscd/nscd_getgr_r.c b/nscd/nscd_getgr_r.c index afb4d20..b84b06b 100644 --- a/nscd/nscd_getgr_r.c +++ b/nscd/nscd_getgr_r.c @@ -266,18 +266,16 @@ nscd_getgr_r (const char *key, size_t keylen, request_type type, /* If there are no group members TOTAL_LEN is zero. */ if (gr_name == NULL) { - if (total_len > 0) + if (total_len > 0 + && __builtin_expect (__readall (sock, resultbuf->gr_mem[0], + total_len) != total_len, 0)) { - size_t n = __readall (sock, resultbuf->gr_mem[0], total_len); - if (__builtin_expect (n != total_len, 0)) - { - /* The `errno' to some value != ERANGE. */ - __set_errno (ENOENT); - retval = ENOENT; - } - else - *result = resultbuf; + /* The `errno' to some value != ERANGE. */ + __set_errno (ENOENT); + retval = ENOENT; } + else + *result = resultbuf; } else { -- cgit v1.1