aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/pam_mkhomedir/mkhomedir_helper.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/modules/pam_mkhomedir/mkhomedir_helper.c b/modules/pam_mkhomedir/mkhomedir_helper.c
index 58195788..fac48a1f 100644
--- a/modules/pam_mkhomedir/mkhomedir_helper.c
+++ b/modules/pam_mkhomedir/mkhomedir_helper.c
@@ -362,6 +362,11 @@ main(int argc, char *argv[])
if (home_mode == 0)
home_mode = 0777 & ~u_mask;
+ if (pwd->pw_dir[0] != '/') {
+ pam_syslog(NULL, LOG_ERR, "Relative home directory %s", pwd->pw_dir);
+ return PAM_SESSION_ERR;
+ }
+
/* Stat the home directory, if something exists then we assume it is
correct and return a success */
if (stat(pwd->pw_dir, &st) == 0)