This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
> > hjl@varesearch.com (H.J. Lu) writes: > > > Here is the revised patch for nscd. > > Yep, this is fine. Thanks, > The code is hard to read. This patch cleans it up a little bit and makes it more readable. -- H.J. Lu (hjl@gnu.org) -- Tue Aug 31 15:19:12 1999 H.J. Lu <hjl@gnu.org> * nscd/nscd_getgr_r.c (nscd_getgr_r): Cleanup the buffer count. Index: nscd/nscd_getgr_r.c =================================================================== RCS file: /work/cvs/gnu/glibc-2.1/nscd/nscd_getgr_r.c,v retrieving revision 1.1.1.15 diff -u -p -r1.1.1.15 nscd_getgr_r.c --- nscd/nscd_getgr_r.c 1999/08/31 17:28:53 1.1.1.15 +++ nscd/nscd_getgr_r.c 1999/08/31 22:18:14 @@ -147,19 +147,20 @@ nscd_getgr_r (const char *key, size_t ke align the pointer. */ align = ((__alignof__ (char *) - (p - ((char *) 0))) & (__alignof__ (char *) - 1)); - if (buflen < (align + (1 + gr_resp.gr_mem_cnt) * sizeof (char *) - + gr_resp.gr_name_len + gr_resp.gr_passwd_len)) + total_len = align + (1 + gr_resp.gr_mem_cnt) * sizeof (char *) + + gr_resp.gr_name_len + gr_resp.gr_passwd_len; + if (buflen < total_len) { no_room: __set_errno (ERANGE); __close (sock); return ERANGE; } + buflen -= total_len; p += align; resultbuf->gr_mem = (char **) p; p += (1 + gr_resp.gr_mem_cnt) * sizeof (char *); - buflen -= align + (1 + gr_resp.gr_mem_cnt) * sizeof (char *); /* Set pointers for strings. */ resultbuf->gr_name = p; @@ -179,8 +180,6 @@ nscd_getgr_r (const char *key, size_t ke vec[1].iov_base = resultbuf->gr_name; vec[1].iov_len = gr_resp.gr_name_len + gr_resp.gr_passwd_len; total_len += gr_resp.gr_name_len + gr_resp.gr_passwd_len; - - buflen -= gr_resp.gr_name_len + gr_resp.gr_passwd_len; /* Get this data. */ if (__readv (sock, vec, 2) != total_len)
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |