summaryrefslogtreecommitdiffstats
path: root/source/lib/username.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/lib/username.c')
-rw-r--r--source/lib/username.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/source/lib/username.c b/source/lib/username.c
index 8154a2b40e4..c7e25b7cd12 100644
--- a/source/lib/username.c
+++ b/source/lib/username.c
@@ -45,6 +45,13 @@ char *get_user_home_dir(const char *user)
static struct passwd *pass;
int snum;
+ /* Ensure the user exists. */
+
+ pass = Get_Pwnam(user);
+
+ if (!pass)
+ return(NULL);
+
/* If a path is specified in [homes] then use it instead of the
user's home directory from struct passwd. */
@@ -52,18 +59,14 @@ char *get_user_home_dir(const char *user)
static pstring home_dir;
pstrcpy(home_dir, lp_pathname(snum));
- standard_sub_snum(snum, home_dir);
+ standard_sub_home(snum, user, home_dir);
if (home_dir[0])
return home_dir;
}
- /* Get home directory from struct passwd. */
-
- pass = Get_Pwnam(user);
+ /* Return home directory from struct passwd. */
- if (!pass)
- return(NULL);
return(pass->pw_dir);
}