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/passwd.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/passwd.cc')
-rw-r--r-- | winsup/cygwin/passwd.cc | 44 |
1 files changed, 17 insertions, 27 deletions
diff --git a/winsup/cygwin/passwd.cc b/winsup/cygwin/passwd.cc index b034cf412..8c51c22a0 100644 --- a/winsup/cygwin/passwd.cc +++ b/winsup/cygwin/passwd.cc @@ -1,6 +1,6 @@ /* passwd.cc: getpwnam () and friends - Copyright 1996, 1997, 1998, 2001, 2002, 2003, 2007 Red Hat, Inc. + Copyright 1996, 1997, 1998, 2001, 2002, 2003, 2007, 2008, 2009 Red Hat, Inc. This file is part of Cygwin. @@ -159,9 +159,9 @@ getpwuid_r32 (__uid32_t uid, struct passwd *pwd, char *buffer, size_t bufsize, s return 0; /* check needed buffer size. */ - size_t needsize = strlen (temppw->pw_name) + strlen (temppw->pw_dir) + - strlen (temppw->pw_shell) + strlen (temppw->pw_gecos) + - strlen (temppw->pw_passwd) + 5; + size_t needsize = strlen (temppw->pw_name) + strlen (temppw->pw_passwd) + + strlen (temppw->pw_gecos) + strlen (temppw->pw_dir) + + strlen (temppw->pw_shell) + 5; if (needsize > bufsize) return ERANGE; @@ -169,17 +169,12 @@ getpwuid_r32 (__uid32_t uid, struct passwd *pwd, char *buffer, size_t bufsize, s *result = pwd; pwd->pw_uid = temppw->pw_uid; pwd->pw_gid = temppw->pw_gid; - pwd->pw_name = buffer; - pwd->pw_dir = pwd->pw_name + strlen (temppw->pw_name) + 1; - pwd->pw_shell = pwd->pw_dir + strlen (temppw->pw_dir) + 1; - pwd->pw_gecos = pwd->pw_shell + strlen (temppw->pw_shell) + 1; + buffer = stpcpy (pwd->pw_name = buffer, temppw->pw_name); + buffer = stpcpy (pwd->pw_passwd = buffer + 1, temppw->pw_passwd); + buffer = stpcpy (pwd->pw_gecos = buffer + 1, temppw->pw_gecos); + buffer = stpcpy (pwd->pw_dir = buffer + 1, temppw->pw_dir); + stpcpy (pwd->pw_shell = buffer + 1, temppw->pw_shell); pwd->pw_comment = NULL; - pwd->pw_passwd = pwd->pw_gecos + strlen (temppw->pw_gecos) + 1; - strcpy (pwd->pw_name, temppw->pw_name); - strcpy (pwd->pw_dir, temppw->pw_dir); - strcpy (pwd->pw_shell, temppw->pw_shell); - strcpy (pwd->pw_gecos, temppw->pw_gecos); - strcpy (pwd->pw_passwd, temppw->pw_passwd); return 0; } @@ -217,9 +212,9 @@ getpwnam_r (const char *nam, struct passwd *pwd, char *buffer, size_t bufsize, s return 0; /* check needed buffer size. */ - size_t needsize = strlen (temppw->pw_name) + strlen (temppw->pw_dir) + - strlen (temppw->pw_shell) + strlen (temppw->pw_gecos) + - strlen (temppw->pw_passwd) + 5; + size_t needsize = strlen (temppw->pw_name) + strlen (temppw->pw_passwd) + + strlen (temppw->pw_gecos) + strlen (temppw->pw_dir) + + strlen (temppw->pw_shell) + 5; if (needsize > bufsize) return ERANGE; @@ -227,17 +222,12 @@ getpwnam_r (const char *nam, struct passwd *pwd, char *buffer, size_t bufsize, s *result = pwd; pwd->pw_uid = temppw->pw_uid; pwd->pw_gid = temppw->pw_gid; - pwd->pw_name = buffer; - pwd->pw_dir = pwd->pw_name + strlen (temppw->pw_name) + 1; - pwd->pw_shell = pwd->pw_dir + strlen (temppw->pw_dir) + 1; - pwd->pw_gecos = pwd->pw_shell + strlen (temppw->pw_shell) + 1; + buffer = stpcpy (pwd->pw_name = buffer, temppw->pw_name); + buffer = stpcpy (pwd->pw_passwd = buffer + 1, temppw->pw_passwd); + buffer = stpcpy (pwd->pw_gecos = buffer + 1, temppw->pw_gecos); + buffer = stpcpy (pwd->pw_dir = buffer + 1, temppw->pw_dir); + stpcpy (pwd->pw_shell = buffer + 1, temppw->pw_shell); pwd->pw_comment = NULL; - pwd->pw_passwd = pwd->pw_gecos + strlen (temppw->pw_gecos) + 1; - strcpy (pwd->pw_name, temppw->pw_name); - strcpy (pwd->pw_dir, temppw->pw_dir); - strcpy (pwd->pw_shell, temppw->pw_shell); - strcpy (pwd->pw_gecos, temppw->pw_gecos); - strcpy (pwd->pw_passwd, temppw->pw_passwd); return 0; } |