summaryrefslogtreecommitdiff
path: root/auth.c
diff options
context:
space:
mode:
Diffstat (limited to 'auth.c')
-rw-r--r--auth.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/auth.c b/auth.c
index 84e0be761..436802342 100644
--- a/auth.c
+++ b/auth.c
@@ -368,7 +368,11 @@ secure_filename(FILE *f, const char *file, struct passwd *pw,
368 char *cp; 368 char *cp;
369 struct stat st; 369 struct stat st;
370 370
371 strlcpy(homedir, dirname(pw->pw_dir), sizeof(homedir)); 371 strlcpy(homedir, pw->pw_dir, sizeof(homedir));
372 if ((cp = dirname(homedir)) == NULL)
373 strlcpy(homedir, "/", sizeof(homedir));
374 else
375 memmove(homedir, cp, strlen(cp));
372 376
373 if (realpath(file, buf) == NULL) { 377 if (realpath(file, buf) == NULL) {
374 snprintf(err, errlen, "realpath %s failed: %s", file, 378 snprintf(err, errlen, "realpath %s failed: %s", file,