From 6730873037b6afad1504bb237399c343cce18451 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 25 Jul 1998 18:02:26 +0000 Subject: Update. 1998-07-25 Ulrich Drepper * sysdeps/i386/bits/byteswap.h (__bswap_64): Change __v to __w to prevent conflict with __bswap_32. --- nscd/connections.c | 8 ++++++++ nscd/nscd_getgr_r.c | 13 ++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'nscd') diff --git a/nscd/connections.c b/nscd/connections.c index e11132c..582a6cf 100644 --- a/nscd/connections.c +++ b/nscd/connections.c @@ -502,6 +502,14 @@ gr_send_answer (int conn, struct group *grp) } /* Send all the data. */ + while (nblocks > UIO_MAXIOV) + { + if (writev (sock[conn], vec, UIO_MAXIOV) != total_len) + dbg_log (_("write incomplete on send group answer: %s"), + strerror (errno)); + vec += UIO_MAXIOV; + nblocks -= UIO_MAXIOV; + } if (writev (sock[conn], vec, nblocks) != total_len) dbg_log (_("write incomplete on send group answer: %s"), strerror (errno)); diff --git a/nscd/nscd_getgr_r.c b/nscd/nscd_getgr_r.c index 9b3022c..85ebb0d 100644 --- a/nscd/nscd_getgr_r.c +++ b/nscd/nscd_getgr_r.c @@ -232,7 +232,18 @@ __nscd_getgr_r (const char *key, request_type type, struct group *resultbuf, *p++ = '\0'; } - if (__readv (sock, vec, gr_resp.gr_mem_len) != total_len) + while (i > UIO_MAXIOV) + { + if (__readv (sock, vec, UIO_MAXIOV) != total_len) + { + __close (sock); + return -1; + } + vec += UIO_MAXIOV; + i -= UIO_MAXIOV; + } + + if (__readv (sock, vec, i) != total_len) { __close (sock); return -1; -- cgit v1.1