blob: 93f7adcc27fdb1ceb07d503b5318bb966ebbfda5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
Change to the user's directory after dropping privileges, in case it is only
accessible to the user (for example, if it's in NFS with root squashing).
Incomplete - we probably need to do the same for rshd and ftpd.
diff -up krb5/src/appl/bsd/login.c krb5/src/appl/bsd/login.c
--- krb5/src/appl/bsd/login.c 2007-07-11 13:50:34.000000000 -0400
+++ krb5/src/appl/bsd/login.c 2007-07-11 13:50:36.000000000 -0400
@@ -1497,13 +1497,8 @@ int main(argc, argv)
}
#endif /* USE_PAM */
- if (chdir(pwd->pw_dir) < 0) {
- printf("No directory %s!\n", pwd->pw_dir);
- if (chdir("/"))
- exit(0);
- pwd->pw_dir = "/";
- printf("Logging in with home = \"/\".\n");
- }
+ if (chdir("/"))
+ exit(0);
/* nothing else left to fail -- really log in */
{
@@ -1710,6 +1705,14 @@ int main(argc, argv)
sleepexit(1);
}
+ if (chdir(pwd->pw_dir) < 0) {
+ printf("No directory %s!\n", pwd->pw_dir);
+ if (chdir("/"))
+ exit(0);
+ pwd->pw_dir = "/";
+ printf("Logging in with home = \"/\".\n");
+ }
+
/*
* We are the user now. Re-create the destroyed ccache and
* ticket file.
|