diff options
Diffstat (limited to 'imap')
| -rw-r--r-- | imap/imapd.c | 11 | ||||
| -rwxr-xr-x | imap/testsuite | 13 | ||||
| -rw-r--r-- | imap/testsuite.txt | 11 | 
3 files changed, 33 insertions, 2 deletions
| diff --git a/imap/imapd.c b/imap/imapd.c index ccc1991..0d5cbbb 100644 --- a/imap/imapd.c +++ b/imap/imapd.c @@ -4905,6 +4905,8 @@ int	uid=0;  			if ((did_exist=folder_exists(orig_mailbox)) != 0)  			{ +				const char *p; +  				if (acl_read_folder(&l,  						    mi.homedir,  						    mi.maildir) < 0) @@ -4917,8 +4919,13 @@ int	uid=0;  					maildir_info_destroy(&mi);  					return (0);  				} -				maildir_acl_delete(mi.homedir, mi.maildir); -				/* Clear out fluff */ + +				p=strchr(mi.maildir, '.'); +				if (p) +				{ +					maildir_acl_delete(mi.homedir, p); +					/* Clear out fluff */ +				}  			}  			if (mdcreate(mailbox)) diff --git a/imap/testsuite b/imap/testsuite index 8ad8140..b8fe504 100755 --- a/imap/testsuite +++ b/imap/testsuite @@ -1170,3 +1170,16 @@ EOF  env IMAP_EMPTYTRASH=Trash:2,Trash2:3 ./imapd.testmockpurge confmdtest <<EOF | grep maildir_purge  TRASH2 LOGOUT  EOF + +rm -rf confmdtest +../maildir/maildirmake confmdtest || exit 1 +env IMAP_BROKENUIDV=1 AUTHENTICATED=user1 $IMAPINVOKE confmdtest <<EOF +V001 ACL STORE INBOX user=user2 +w +V002 CREATE INBOX.Folder.Subfolder +V003 ACL STORE INBOX.Folder user=user2 +r +V004 LIST (ACL) "" "INBOX.Folder" +V005 CREATE INBOX.Folder +V006 LIST (ACL) "" "INBOX.Folder" +EOF +ls confmdtest/courierimaphieracl 2>&1 +rm -rf confmdtest diff --git a/imap/testsuite.txt b/imap/testsuite.txt index b1f027b..73190ea 100644 --- a/imap/testsuite.txt +++ b/imap/testsuite.txt @@ -1776,3 +1776,14 @@  001482 maildir_purge: .Trash2 (259200)  001483 maildir_purge: .Trash (172800)  001484 maildir_purge: .Trash2 (259200) +001485 * PREAUTH Ready.
 +001486 * LIST (\Unmarked \HasNoChildren) "." "INBOX" (("ACL" (("owner" "acdilrsw")("administrators" "acdilrsw")("user=user2" "w"))))
 +001486 V001 OK ACL STORE completed.
 +001487 V002 OK "INBOX.Folder.Subfolder" created.
 +001488 * LIST (\Noselect \HasChildren) "." "INBOX.Folder" (("ACL" (("owner" "acdilrsw")("administrators" "acdilrsw")("user=user2" "rw"))))
 +001488 V003 OK ACL STORE completed.
 +001489 * LIST (\Noselect \HasChildren) "." "INBOX.Folder" (("ACL" (("owner" "acdilrsw")("administrators" "acdilrsw")("user=user2" "rw"))))
 +001489 V004 OK LIST completed
 +001490 V005 OK "INBOX.Folder" created.
 +001491 * LIST (\HasChildren) "." "INBOX.Folder" (("ACL" (("owner" "acdilrsw")("administrators" "acdilrsw")("user=user2" "rw"))))
 +001491 V006 OK LIST completed
 | 
