diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-01-26 16:20:46 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-01-26 16:20:46 +0300 |
commit | b89fb103f2ceabe3eb47e5220056c7500e3e95bd (patch) | |
tree | 2f091d2b7a559f86c30d999530fdc88769c1608d /winsup/cygwin/grp.cc | |
parent | 93e884989afd2f702c758a9b635c9ea9ca394280 (diff) |
* grp.cc (getgrgid_r): Simplify code by using stpcpy.
(getgrnam_r): Ditto.
* passwd.cc (getpwuid_r32): Simplify code by using stpcpy.
(getpwnam_r): Ditto.
Diffstat (limited to 'winsup/cygwin/grp.cc')
-rw-r--r-- | winsup/cygwin/grp.cc | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/winsup/cygwin/grp.cc b/winsup/cygwin/grp.cc index d9fe4f343..970e62627 100644 --- a/winsup/cygwin/grp.cc +++ b/winsup/cygwin/grp.cc @@ -1,7 +1,7 @@ /* grp.cc Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007 Red Hat, Inc. + 2007, 2008, 2009 Red Hat, Inc. Original stubs by Jason Molenda of Cygnus Support, crash@cygnus.com First implementation by Gunther Ebert, gunther.ebert@ixos-leipzig.de @@ -195,20 +195,13 @@ getgrgid_r (__gid32_t gid, struct __group32 *grp, char *buffer, size_t bufsize, /* make a copy of tempgr */ *result = grp; grp->gr_gid = tempgr->gr_gid; - grp->gr_name = buffer; - grp->gr_passwd = grp->gr_name + strlen (tempgr->gr_name) + 1; - grp->gr_mem = (char **) (grp->gr_passwd + strlen (tempgr->gr_passwd) + 1); - char *mem = (char *) grp->gr_mem + (i + 1) * sizeof (char *); + buffer = stpcpy (grp->gr_name = buffer, tempgr->gr_name); + buffer = stpcpy (grp->gr_passwd = buffer + 1, tempgr->gr_passwd); + grp->gr_mem = (char **) (buffer + 1); + buffer = (char *) grp->gr_mem + (i + 1) * sizeof (char *); for (i = 0; tempgr->gr_mem[i]; ++i) - { - grp->gr_mem[i] = mem; - mem += strlen (tempgr->gr_mem[i]) + 1; - } + buffer = stpcpy (grp->gr_mem[i] = buffer, tempgr->gr_mem[i]) + 1; grp->gr_mem[i] = NULL; - strcpy (grp->gr_name, tempgr->gr_name); - strcpy (grp->gr_passwd, tempgr->gr_passwd); - for (i = 0; tempgr->gr_mem[i]; ++i) - strcpy (grp->gr_mem[i], tempgr->gr_mem[i]); return 0; } @@ -252,20 +245,13 @@ getgrnam_r (const char *nam, struct __group32 *grp, char *buffer, /* make a copy of tempgr */ *result = grp; grp->gr_gid = tempgr->gr_gid; - grp->gr_name = buffer; - grp->gr_passwd = grp->gr_name + strlen (tempgr->gr_name) + 1; - grp->gr_mem = (char **) (grp->gr_passwd + strlen (tempgr->gr_passwd) + 1); - char *mem = (char *) grp->gr_mem + (i + 1) * sizeof (char *); + buffer = stpcpy (grp->gr_name = buffer, tempgr->gr_name); + buffer = stpcpy (grp->gr_passwd = buffer + 1, tempgr->gr_passwd); + grp->gr_mem = (char **) (buffer + 1); + buffer = (char *) grp->gr_mem + (i + 1) * sizeof (char *); for (i = 0; tempgr->gr_mem[i]; ++i) - { - grp->gr_mem[i] = mem; - mem += strlen (tempgr->gr_mem[i]) + 1; - } + buffer = stpcpy (grp->gr_mem[i] = buffer, tempgr->gr_mem[i]) + 1; grp->gr_mem[i] = NULL; - strcpy (grp->gr_name, tempgr->gr_name); - strcpy (grp->gr_passwd, tempgr->gr_passwd); - for (i = 0; tempgr->gr_mem[i]; ++i) - strcpy (grp->gr_mem[i], tempgr->gr_mem[i]); return 0; } |