diff options
| -rw-r--r-- | bdbobj/bdbobj2.c | 3 | ||||
| -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 | ||||
| -rw-r--r-- | sqwebmail/ChangeLog | 4 |
7 files changed, 94 insertions, 48 deletions
diff --git a/bdbobj/bdbobj2.c b/bdbobj/bdbobj2.c index d4311b7..f289b52 100644 --- a/bdbobj/bdbobj2.c +++ b/bdbobj/bdbobj2.c @@ -70,6 +70,9 @@ DBT key, value; } #endif + if (!key.data) + return 0; + *keylen=key.size; *vallen=value.size; if ((*val=(char *)malloc(*vallen + 1)) == 0) return (0); 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/; diff --git a/sqwebmail/ChangeLog b/sqwebmail/ChangeLog index 32bfd96..4cf2868 100644 --- a/sqwebmail/ChangeLog +++ b/sqwebmail/ChangeLog @@ -1,3 +1,7 @@ +2022-01-17 Sam Varshavchik <mrsam@courier-mta.com> + + * Fix minor memory leaks. + 6.0.9 2022-01-16 Arjen de Korte <build+github@de-korte.org> |
