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 | |
| 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.
| -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> |
