diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2012-05-05 08:55:17 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2012-05-05 08:55:17 +0000 |
commit | 6428476bdd21f998ba7ca0e969ebaeb7f1a49856 (patch) | |
tree | a63d486ec4e9d3823516c864cce646ac0a4246d6 | |
parent | fb9d631817cc2b5d83c2a6ff928851d201c992bf (diff) | |
download | newlib-6428476bdd21f998ba7ca0e969ebaeb7f1a49856.zip newlib-6428476bdd21f998ba7ca0e969ebaeb7f1a49856.tar.gz newlib-6428476bdd21f998ba7ca0e969ebaeb7f1a49856.tar.bz2 |
* mkpasswd.c (current_user): Actually *use* $HOME if it's available.
Add comment to explain what we're doing here.
-rw-r--r-- | winsup/utils/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/utils/mkpasswd.c | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index 2011c34..c94c53f 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,8 @@ +2012-05-05 Corinna Vinschen <corinna@vinschen.de> + + * mkpasswd.c (current_user): Actually *use* $HOME if it's available. + Add comment to explain what we're doing here. + 2012-04-05 Corinna Vinschen <corinna@vinschen.de> * mkgroup.c (print_special_by_sid): Rename from print_special. Change diff --git a/winsup/utils/mkpasswd.c b/winsup/utils/mkpasswd.c index 6ca4e5d..5373719 100644 --- a/winsup/utils/mkpasswd.c +++ b/winsup/utils/mkpasswd.c @@ -172,9 +172,13 @@ current_user (const char *sep, const char *passed_home_path, DWORD id_offset, *GetSidSubAuthorityCount(curr_pgrp.psid) - 1); if (passed_home_path[0] == '\0') { - char *envhome = getenv ("HOME"); /* POSIX! */ + char *envhome = getenv ("HOME"); - if (!envhome || envhome[0] == '\0') + /* If $HOME exists and is non-empty, just copy it over to homedir_psx. + Otherwise, generate a new path of the form "/home/$USER". */ + if (envhome && envhome[0] != '\0') + strncat (homedir_psx, envhome, sizeof (homedir_psx) - 1); + else { wcstombs (stpncpy (homedir_psx, "/home/", sizeof (homedir_psx)), user, sizeof (homedir_psx) - 6); |