- fix regression with valid_chroot_dirs being ignored (#654083)
This commit is contained in:
parent
f855a48f4b
commit
dea656944c
55
dovecot-2.0-bz654083.patch
Normal file
55
dovecot-2.0-bz654083.patch
Normal file
@ -0,0 +1,55 @@
|
||||
# HG changeset patch
|
||||
# User Timo Sirainen <tss@iki.fi>
|
||||
# Date 1289937106 0
|
||||
# Node ID eeaf30cfad368fd0311b87d874f2d5b27a504e0f
|
||||
# Parent f78260c108b0d86e5aa746e7e98a8015b8f691e7
|
||||
Fixed home=/home/./user style chrooting to work again.
|
||||
|
||||
--- a/src/lib-storage/mail-storage-service.c Tue Nov 16 19:32:51 2010 +0000
|
||||
+++ b/src/lib-storage/mail-storage-service.c Tue Nov 16 19:51:46 2010 +0000
|
||||
@@ -167,7 +167,9 @@
|
||||
const struct auth_user_reply *reply,
|
||||
const char **error_r)
|
||||
{
|
||||
- const char *const *str, *line;
|
||||
+ const char *home = reply->home;
|
||||
+ const char *chroot = reply->chroot;
|
||||
+ const char *const *str, *line, *p;
|
||||
unsigned int i, count;
|
||||
int ret = 0;
|
||||
|
||||
@@ -181,18 +183,26 @@
|
||||
if (reply->gid != (uid_t)-1)
|
||||
set_keyval(ctx, user, "mail_gid", dec2str(reply->gid));
|
||||
|
||||
- if (reply->home != NULL)
|
||||
+ if (home != NULL && chroot == NULL &&
|
||||
+ *user->user_set->valid_chroot_dirs != '\0' &&
|
||||
+ (p = strstr(home, "/./")) != NULL) {
|
||||
+ /* wu-ftpd like <chroot>/./<home> - check only if there's even
|
||||
+ a possibility of using them (non-empty valid_chroot_dirs) */
|
||||
+ chroot = t_strdup_until(home, p);
|
||||
+ home = p + 2;
|
||||
+ }
|
||||
+
|
||||
+ if (home != NULL)
|
||||
set_keyval(ctx, user, "mail_home", reply->home);
|
||||
|
||||
- if (reply->chroot != NULL) {
|
||||
- if (!validate_chroot(user->user_set, reply->chroot)) {
|
||||
+ if (chroot != NULL) {
|
||||
+ if (!validate_chroot(user->user_set, chroot)) {
|
||||
*error_r = t_strdup_printf(
|
||||
"userdb returned invalid chroot directory: %s "
|
||||
- "(see valid_chroot_dirs setting)",
|
||||
- reply->chroot);
|
||||
+ "(see valid_chroot_dirs setting)", chroot);
|
||||
return -1;
|
||||
}
|
||||
- set_keyval(ctx, user, "mail_chroot", reply->chroot);
|
||||
+ set_keyval(ctx, user, "mail_chroot", chroot);
|
||||
}
|
||||
|
||||
str = array_get(&reply->extra_fields, &count);
|
||||
|
||||
|
@ -2,7 +2,7 @@ Summary: Secure imap and pop3 server
|
||||
Name: dovecot
|
||||
Epoch: 1
|
||||
Version: 2.0.7
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
#dovecot itself is MIT, a few sources are PD, pigeonhole is LGPLv2
|
||||
License: MIT and LGPLv2
|
||||
Group: System Environment/Daemons
|
||||
@ -27,6 +27,9 @@ Patch1: dovecot-2.0-defaultconfig.patch
|
||||
Patch2: dovecot-1.0.beta2-mkcert-permissions.patch
|
||||
Patch3: dovecot-1.0.rc7-mkcert-paths.patch
|
||||
|
||||
#for dovecot < 2.0.8
|
||||
Patch4: dovecot-2.0-bz654083.patch
|
||||
|
||||
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: openssl-devel, pam-devel, zlib-devel, bzip2-devel, libcap-devel
|
||||
BuildRequires: libtool, autoconf, automake, pkgconfig
|
||||
@ -361,6 +364,9 @@ make check
|
||||
%{_libdir}/%{name}/dict/libdriver_pgsql.so
|
||||
|
||||
%changelog
|
||||
* Tue Nov 23 2010 Michal Hlavinka <mhlavink@redhat.com> - 1:2.0.7-2
|
||||
- fix regression with valid_chroot_dirs being ignored (#654083)
|
||||
|
||||
* Tue Nov 09 2010 Michal Hlavinka <mhlavink@redhat.com> - 1:2.0.7-1
|
||||
- dovecot updated to 2.0.7
|
||||
- IMAP: Fixed LIST-STATUS when listing subscriptions with subscriptions=no namespaces.
|
||||
|
Loading…
Reference in New Issue
Block a user