[dovecot-cvs] dovecot/src/auth userdb-passwd.c,1.4,1.5
cras at procontrol.fi
cras at procontrol.fi
Thu May 8 07:36:23 EEST 2003
Update of /home/cvs/dovecot/src/auth
In directory danu:/tmp/cvs-serv25021
Modified Files:
userdb-passwd.c
Log Message:
Support wu-ftpd-like chrooting in /etc/passwd. If home directory ends with
"/./", it's chrooted to.
Index: userdb-passwd.c
===================================================================
RCS file: /home/cvs/dovecot/src/auth/userdb-passwd.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- userdb-passwd.c 18 Feb 2003 19:11:26 -0000 1.4
+++ userdb-passwd.c 8 May 2003 03:36:21 -0000 1.5
@@ -15,6 +15,7 @@
{
struct user_data data;
struct passwd *pw;
+ size_t len;
pw = getpwnam(user);
if (pw == NULL) {
@@ -31,7 +32,16 @@
data.gid = pw->pw_gid;
data.virtual_user = data.system_user = pw->pw_name;
- data.home = pw->pw_dir;
+
+ len = strlen(pw->pw_dir);
+ if (len < 3 || strcmp(pw->pw_dir + len - 3, "/./") != 0)
+ data.home = pw->pw_dir;
+ else {
+ /* wu-ftpd uses <chroot>/./<dir>. We don't support
+ the dir after chroot, but this should work well enough. */
+ data.home = t_strndup(pw->pw_dir, len-3);
+ data.chroot = TRUE;
+ }
callback(&data, context);
}
More information about the dovecot-cvs
mailing list