diff options
| author | Sam Varshavchik | 2022-01-17 15:14:06 -0500 | 
|---|---|---|
| committer | Sam Varshavchik | 2022-01-17 15:15:02 -0500 | 
| commit | 6ff4d7ff79a967b58b6eca3506b48c5d3219f3dc (patch) | |
| tree | 651e32310c73c86c316db520174fe89e63bc5e7f /imap | |
| parent | 49028a9eb32a570b3bc73777d0474e458c1c1949 (diff) | |
| download | courier-libs-6ff4d7ff79a967b58b6eca3506b48c5d3219f3dc.tar.bz2 | |
Fix minor memory leaks.
bdbobj_nextkey can leak memory.
Looks like some glibc or valgrind configs detect memory leaks from putenv(),
use setenv() instead. It's POSIX 2001.
Take this opportunity to clean up the test script.
Diffstat (limited to 'imap')
| -rw-r--r-- | imap/ChangeLog | 4 | ||||
| -rw-r--r-- | imap/imapd.c | 23 | ||||
| -rwxr-xr-x | imap/testsuite | 82 | ||||
| -rw-r--r-- | imap/testsuite.txt | 24 | ||||
| -rw-r--r-- | imap/testsuitefix.pl.in | 2 | 
5 files changed, 87 insertions, 48 deletions
| diff --git a/imap/ChangeLog b/imap/ChangeLog index c5fea32..7ca1cd0 100644 --- a/imap/ChangeLog +++ b/imap/ChangeLog @@ -1,3 +1,7 @@ +2022-01-17  Sam Varshavchik  <mrsam@courier-mta.com> + +	* Fix minor memory leaks. +  5.1.7  2022-01-16  Arjen de Korte <build+github@de-korte.org> diff --git a/imap/imapd.c b/imap/imapd.c index c0a4aa9..ccc1991 100644 --- a/imap/imapd.c +++ b/imap/imapd.c @@ -6591,16 +6591,11 @@ int	uid=0;  static void dogethostname()  { -char	buf[2048]; -char	*p; +	char	buf[2048];  	if (gethostname(buf, sizeof(buf)) < 0)  		strcpy(buf, "courier-imap"); -	p=malloc(strlen(buf)+sizeof("HOSTNAME=")); -	if (!p) -		write_error_exit(0); -	strcat(strcpy(p, "HOSTNAME="), buf); -	putenv(p); +	setenv("HOSTNAME", buf, 1);  }  #if 0 @@ -6764,14 +6759,13 @@ int main(int argc, char **argv)  	{  		const char *p; -		putenv("TCPREMOTEIP=127.0.0.1"); -		putenv("TCPREMOTEPORT=0"); +		setenv("TCPREMOTEIP", "127.0.0.1", 1); +		setenv("TCPREMOTEPORT", "0", 1);  		p=getenv("AUTHENTICATED");  		if (!p || !*p)  		{  			struct passwd *pw=getpwuid(getuid()); -			char *me;  			if (!pw)  			{ @@ -6781,12 +6775,7 @@ int main(int argc, char **argv)  				exit(1);  			} -			me=malloc(sizeof("AUTHENTICATED=")+strlen(pw->pw_name)); -			if (!me) -				write_error_exit(0); - -			strcat(strcpy(me, "AUTHENTICATED="), pw->pw_name); -			putenv(me); +			setenv("AUTHENTICATED", pw->pw_name, 1);  		}  	} @@ -6805,7 +6794,7 @@ int main(int argc, char **argv)  	if (!protocol || !*protocol)  		protocol="IMAP"; -	putenv("IMAP_STARTTLS=NO");	/* No longer grok STARTTLS */ +	setenv("IMAP_STARTTLS", "NO", 1);	/* No longer grok STARTTLS */  	/* We use select() with a timeout, so use non-blocking filedescs */ diff --git a/imap/testsuite b/imap/testsuite index 37a264b..268d370 100755 --- a/imap/testsuite +++ b/imap/testsuite @@ -130,7 +130,7 @@ EOF  inituid -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  a001 select inbox  a002 fetch 1 (bodystructure)  a003 fetch 1 (body[]) @@ -227,7 +227,7 @@ touch -t 199901010000 confmdtest/new/msg3  inituid -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  b000 status inbox ( MESSAGES RECENT UIDNEXT UIDVALIDITY UNSEEN)  b001 select inbox  b001a status inbox ( MESSAGES RECENT UIDNEXT UIDVALIDITY UNSEEN) @@ -272,7 +272,7 @@ b031 fetch 2 (bodystructure)  adone logout  EOF -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  foo select inbox.bozo  foo store 1 +flags \Deleted  foo expunge @@ -284,7 +284,7 @@ mkdir confmdtest/tmp || exit 1  mkdir confmdtest/cur || exit 1  mkdir confmdtest/new || exit 1  echo "10000S,2C" >confmdtest/maildirsize -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  c001 select inbox  c002 append inbox {5}  test @@ -314,7 +314,7 @@ mkdir confmdtest/tmp || exit 1  mkdir confmdtest/cur || exit 1  mkdir confmdtest/new || exit 1  echo "10000S,5C" >confmdtest/maildirsize -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  d001 select inbox  d002 append inbox {5}  test @@ -325,7 +325,7 @@ d005 noop  ddone logout  EOF  cat confmdtest/maildirsize -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  e001 select inbox  e002 copy 1:2 inbox  e003 noop @@ -334,7 +334,7 @@ EOF  cat confmdtest/maildirsize  ../maildir/maildirmake -f Trash confmdtest || exit 1 -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  f001 select inbox  f002 copy 1:2 inbox  f002 copy 1:2 inbox.Trash @@ -349,7 +349,7 @@ fdone logout  EOF  cat confmdtest/maildirsize  echo "Counts:" `ls confmdtest/cur | wc -l` `ls confmdtest/.Trash/cur | wc -l` -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  g001 select inbox  g002 select Trash  g003 select INBOX.Trash @@ -373,7 +373,7 @@ chmod u-rwx confmdtest2/.b/cur  echo "test `pwd`/confmdtest2" >confmdtest/shared-maildirs -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  h001 list "" "*"  h002 list "" "%"  h003 list "" "%.%" @@ -428,19 +428,19 @@ EOF  ../maildir/maildirmake -f c confmdtest  ../maildir/maildirmake -f Trash confmdtest2 -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  ii001 list "" "*"  ii002 list "" "*"  iidone logout  EOF -env IMAP_BROKENUIDV=1 IMAP_CHECK_ALL_FOLDERS=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 IMAP_CHECK_ALL_FOLDERS=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  ii003 list "" "*"  ii004 list "" "*"  iidone logout  EOF -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  i001 select shared.test.b  i002 select shared.test.a  i003 close @@ -524,7 +524,7 @@ EOF  inituid -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  T001 select INBOX  T002 fetch 1:* (uid body[header.fields(date)])  T003 THREAD ORDEREDSUBJECT US-ASCII ALL @@ -545,7 +545,7 @@ EOF  rm -rf confmdtest  ../maildir/maildirmake confmdtest || exit 1  ../maildir/maildirmake -f Trash confmdtest || exit 1 -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  J001 list "" "*"  J002 lsub "" "*"  J003 SUBSCRIBE INBOX @@ -630,7 +630,7 @@ EOF  inituid -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  K001 select INBOX  K002 THREAD REFERENCES US-ASCII ALL  KDONE logout @@ -640,7 +640,7 @@ rm -rf confmdtest  ../maildir/maildirmake confmdtest || exit 1  ../maildir/maildirmake -f Trash confmdtest || exit 1 -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  L001 CREATE INBOX.a  L002 CREATE INBOX.a.a  L003 CREATE INBOX.aa @@ -682,7 +682,7 @@ rm -rf confmdtest  ../maildir/maildirmake confmdtest || exit 1  ../maildir/maildirmake -q 10C confmdtest || exit 1 -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  M001 CREATE INBOX.a  M002 APPEND INBOX \Seen {5}  test @@ -696,7 +696,7 @@ M008 RENAME INBOX.a INBOX.b  MDONE logout  EOF  cat confmdtest/maildirsize -env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  M009 DELETE INBOX.b  MDONE logout  EOF @@ -705,7 +705,7 @@ cat confmdtest/maildirsize  rm -rf confmdtest  ../maildir/maildirmake confmdtest || exit 1 -env IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  N001 LIST "" "*"  N002 append inbox \Deleted {11}  test @@ -722,7 +722,7 @@ EOF  rm -rf confmdtest  ../maildir/maildirmake confmdtest || exit 1  ../maildir/maildirmake -q10C confmdtest -env IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  O001 append inbox NIL {11}  test @@ -739,7 +739,7 @@ EOF  cat confmdtest/maildirsize  rm -f confmdtest/maildirsize -env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  p001 SELECT INBOX  p002 CREATE INBOX.a  p003 COPY 1 INBOX.a @@ -775,7 +775,7 @@ P026 SEARCH KEYWORD -Label2 KEYWORD -Label1  pDONE LOGOUT  EOF -env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  Q001 select INBOX  Q002 fetch 1:* FLAGS  Q003 status INBOX.Trash MESSAGES @@ -792,7 +792,7 @@ EOF  rm -rf confmdtest  ../maildir/maildirmake confmdtest || exit 1 -env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  R001 CREATE INBOX.a  R002 LIST (ACL MYRIGHTS POSTADDRESS) "" "*"  R003 ACL STORE INBOX owner -t @@ -899,7 +899,7 @@ Subject: test  test  EOF -env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  S001 SELECT INBOX.a  S002 COPY 1 INBOX.a  S003 NOOP @@ -973,7 +973,7 @@ echo "user2	1	1	`pwd`	confmdtest3" >confmdtest4/indexb || exit 1  IMAP_SHAREDINDEXFILE=`pwd`/confmdtest4/index  export IMAP_SHAREDINDEXFILE -env AUTHENTICATED=user1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env AUTHENTICATED=user1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 $IMAPINVOKE <<EOF  T001 ACL STORE INBOX user=user0 +l  T002 CREATE INBOX.a  T003 ACL STORE INBOX.a anyone +lr @@ -985,7 +985,7 @@ user1  T005 LOGOUT  EOF -env AUTHENTICATED=user2 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest3 $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env AUTHENTICATED=user2 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest3 $IMAPINVOKE <<EOF  T010 ACL STORE INBOX anyone +l  T011 CREATE INBOX.a  T012 append INBOX.a \Seen {22} @@ -996,14 +996,14 @@ user2  T013 LOGOUT  EOF -env AUTHENTICATED=user0 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env AUTHENTICATED=user0 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest $IMAPINVOKE <<EOF  T020 list(acl) "" "#shared.*"  T021 ACL STORE INBOX anyone acdilrsw  T022 list(acl) "" "#shared.%"  T023 LOGOUT  EOF -env AUTHENTICATED=user2 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest3 $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env AUTHENTICATED=user2 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest3 $IMAPINVOKE <<EOF  T030 LIST "" "#shared.*"  T031 LIST "" "#shared.%"  T032 LIST "" "#shared.a.%" @@ -1038,7 +1038,7 @@ user.2	1	1	`pwd`	confmdtest3  usér/3	1	1	`pwd`	confmdtest3  EOF -env AUTHENTICATED=user1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env AUTHENTICATED=user1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 $IMAPINVOKE <<EOF  a ENABLE UTF8=ACCEPT  T055 LIST "" "#shared.b.*"  T056 LIST "" "#shared.b.%" @@ -1047,7 +1047,7 @@ T058 LIST "" "#shared.b.use&-2.*"  TDONE LOGOUT  EOF -env IMAP_SHAREDMUNGENAMES=1 AUTHENTICATED=user1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_SHAREDMUNGENAMES=1 AUTHENTICATED=user1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 $IMAPINVOKE <<EOF  a ENABLE UTF8=ACCEPT  T055 LIST "" "#shared.b.*"  T056 LIST "" "#shared.b.%" @@ -1071,7 +1071,7 @@ EOF  echo "usergroup1	1	1	`pwd`	confmdtest" >confmdtest4/indexgroup1 || exit 1 -env IMAP_SHAREDMUNGENAMES=1 AUTHENTICATED=user1 OPTIONS=sharedgroup=group1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 $IMAPINVOKE <<EOF | sed 's/UIDVALIDITY [0-9]*/UIDVALIDITY/;s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g' +env IMAP_SHAREDMUNGENAMES=1 AUTHENTICATED=user1 OPTIONS=sharedgroup=group1 IMAP_KEYWORDS=1 IMAP_MOVE_EXPUNGE_TO_TRASH=1 IMAP_BROKENUIDV=1 MAILDIR=confmdtest2 $IMAPINVOKE <<EOF  T072 LIST "" #shared.*  T073 LIST(ACL) "" INBOX  T074 ACL STORE INBOX user=fred lr @@ -1089,3 +1089,23 @@ T085 GETACL INBOX  T086 LIST(ACL) "" INBOX  TDONE LOGOUT  EOF + +rm -rf confmdtest confmdtest2 +../maildir/maildirmake confmdtest +../maildir/maildirmake -S confmdtest2 +../maildir/maildirmake -s write -f writable confmdtest2 +../maildir/maildirmake --add another=`pwd`/confmdtest2 confmdtest + +env IMAP_BROKENUIDV=1 MAILDIR=confmdtest AUTHENTICATED=user1 $IMAPINVOKE <<EOF +U001 APPEND INBOX \Seen {5} +test + +U002 LIST "" "*" +U003 SELECT INBOX +U004 COPY 1 "shared.another.writable" +U005 STATUS invalid (UIDVALIDITY) +U006 DELETE INBOX +U007 LISTRIGHTS INBOX user=user1 +U008 LISTRIGHTS shared.another.writable user=user1 +U009 MYRIGHTS INBOX +EOF diff --git a/imap/testsuite.txt b/imap/testsuite.txt index e5a2888..834d6de 100644 --- a/imap/testsuite.txt +++ b/imap/testsuite.txt @@ -1699,3 +1699,27 @@  001413 T086 OK LIST completed
  001414 * BYE Courier-IMAP server shutting down
  001415 TDONE OK LOGOUT completed
 +001416 * PREAUTH Ready.
 +001417 + OK
 +001418 U001 OK APPEND Ok.
 +001419 * LIST (\HasNoChildren) "." "shared.another.writable"
 +001419 * LIST (\Noselect \HasChildren) "." "shared"
 +001419 * LIST (\Noselect \HasChildren) "." "shared.another"
 +001419 * LIST (\Unmarked \HasNoChildren) "." "INBOX"
 +001419 U002 OK LIST completed
 +001420 * FLAGS (\Draft \Answered \Flagged \Deleted \Seen \Recent)
 +001421 * OK [PERMANENTFLAGS (\Draft \Answered \Flagged \Deleted \Seen)] Limited
 +001422 * 1 EXISTS
 +001423 * 0 RECENT
 +001424 * OK [UIDVALIDITY] Ok
 +001425 * OK [MYRIGHTS "acdilrsw"] ACL
 +001426 U003 OK [READ-WRITE] Ok
 +001427 U004 OK COPY completed.
 +001428 U005 NO Mailbox does not exist, or must be subscribed to.
 +001429 U006 NO Cannot delete currently-open folder.
 +001430 * LISTRIGHTS "INBOX" "user=user1" "" a c d i l p r s w
 +001430 U007 OK LISTRIGHTS completed.
 +001431 * LISTRIGHTS "shared.another.writable" "user=user1" "" a c d i l p r s w
 +001431 U008 OK LISTRIGHTS completed.
 +001432 * MYRIGHTS "INBOX" "acdilrsw"
 +001433 U009 OK MYRIGHTS completed.
 diff --git a/imap/testsuitefix.pl.in b/imap/testsuitefix.pl.in index abe0e6f..aa1ab87 100644 --- a/imap/testsuitefix.pl.in +++ b/imap/testsuitefix.pl.in @@ -12,6 +12,8 @@ $n=0;  while (<>)  { +    s/UIDVALIDITY \d+/UIDVALIDITY/; +    s/INTERNALDATE "[^"]*"/INTERNALDATE -DATE-/g;      s/\[COPYUID.*\] //;      s/\[APPENDUID.*\] //;      s/^\* ADD \"UID=.*/* ADD UID/; | 
