1 diff -uNr openssh-3.7p1/session.c openssh-3.7p1-chroot/session.c
2 --- openssh-3.7p1/session.c Mon Sep 15 21:52:19 2003
3 +++ openssh-3.7p1-chroot/session.c Tue Sep 16 14:23:34 2003
12 Session *session_new(void);
13 @@ -1227,6 +1229,12 @@
15 do_setusercontext(struct passwd *pw)
24 if (getuid() == 0 || geteuid() == 0)
25 #endif /* HAVE_CYGWIN */
26 @@ -1264,6 +1272,27 @@
32 + user_dir = xstrdup(pw->pw_dir);
33 + new_root = user_dir + 1;
35 + while((new_root = strchr(new_root, '.')) != NULL) {
37 + if(strncmp(new_root, "/./", 3) == 0) {
41 + if(chroot(user_dir) != 0)
42 + fatal("Couldn't chroot to user directory % s", user_dir);
43 + pw->pw_dir = new_root;
53 * PAM credentials may take the form of supplementary groups.