From 45d2b388ab539af1fe9390fdce3490939b1222e9 Mon Sep 17 00:00:00 2001 From: Sam Varshavchik Date: Fri, 28 Jan 2022 22:28:51 -0500 Subject: Fix minor memory leaks --- imap/smap.c | 9 +++++++++ imap/smapsnapshot.c | 9 +++++++++ imap/smaptestsuite | 16 +++++++++++++++- imap/smaptestsuite.txt | 24 ++++++++++++++++++++++-- 4 files changed, 55 insertions(+), 3 deletions(-) (limited to 'imap') diff --git a/imap/smap.c b/imap/smap.c index bebf5d0..450e2dc 100644 --- a/imap/smap.c +++ b/imap/smap.c @@ -687,6 +687,7 @@ static void do_listcmd(struct list_hier **head, } maildir_aclt_list_destroy(&aclt_list); + maildir_info_destroy(&minfo); } else { @@ -3141,6 +3142,7 @@ static int dosetdeleteacl(void *cb_arg, int dodelete) maildir_aclt_list_destroy(&aclt_list); return 0; } + free(path); cnt=0; maildir_aclt_list_enum(&aclt_list, @@ -3905,6 +3907,8 @@ void smap() if (maildir_info_smap_find(&minfo, fn, getenv("AUTHENTICATED")) == 0) { + maildir_smapfn_free(fn); + if (minfo.homedir && minfo.maildir) { maildir_aclt_list list; @@ -3938,6 +3942,7 @@ void smap() { if (q) free(q); + maildir_aclt_list_destroy(&list); maildir_info_destroy(&minfo); accessdenied(ACL_DELETEFOLDER); continue; @@ -3949,6 +3954,10 @@ void smap() } maildir_info_destroy(&minfo); } + else + { + maildir_smapfn_free(fn); + } } if (t && current_mailbox && diff --git a/imap/smapsnapshot.c b/imap/smapsnapshot.c index 805fd07..6ffc226 100644 --- a/imap/smapsnapshot.c +++ b/imap/smapsnapshot.c @@ -145,6 +145,7 @@ static void delete_snapshot(struct snapshot_list *snn) { strcat(strcat(strcpy(p, snapshot_dir), "/"), snn->filename); unlink(p); + free(p); } free(snn->filename); @@ -621,6 +622,14 @@ int snapshot_init(const char *folder, const char *snapshot) --cnt; } + while (sl) + { + snn=sl; + sl=sl->next; + free(snn->filename); + free(snn->prev); + free(snn); + } return rc; } diff --git a/imap/smaptestsuite b/imap/smaptestsuite index 4962027..2ea5849 100644 --- a/imap/smaptestsuite +++ b/imap/smaptestsuite @@ -661,8 +661,22 @@ test message EOF n=`expr $n + 1` done -env AUTHENTICATED=confmdtest IMAP_BROKENUIDV=1 IMAP_KEYWORDS=1 MOVE_EXPUNGE_TO_TRASH=1 MAILDIR=confmdtest PROTOCOL=SMAP1 $IMAPINVOKE <