diff options
author | Paul J Stevens <paul@nfg.nl> | 2010-06-12 16:08:20 +0200 |
---|---|---|
committer | Paul J Stevens <paul@nfg.nl> | 2010-06-12 16:08:20 +0200 |
commit | 01191e688148756a9ba84e66fa3586d821777177 (patch) | |
tree | 5df83aa32624933e97a703714bd92d546cd8c964 | |
parent | 69a3be943eb7e09513e19c6c46ffaac40f483252 (diff) |
small leaks and compiler warning
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | src/imapcommands.c | 16 |
2 files changed, 10 insertions, 8 deletions
diff --git a/configure.in b/configure.in index 3dc213e8..ba5238f2 100644 --- a/configure.in +++ b/configure.in @@ -9,7 +9,7 @@ AM_CONFIG_HEADER(config.h:config.in) DM_MSG_CONFIGURE_START AM_INIT_AUTOMAKE AM_MAINTAINER_MODE -AC_DEFINE(_GNU_SOURCE,'','Defined GNU SOURCE') +AC_DEFINE(_GNU_SOURCE,'TRUE','Defined GNU SOURCE') # --------------------------------------------- # shared or static diff --git a/src/imapcommands.c b/src/imapcommands.c index 147de904..54b66a4d 100644 --- a/src/imapcommands.c +++ b/src/imapcommands.c @@ -831,7 +831,7 @@ void _ic_list_enter(dm_thread_data *D) int list_is_lsub = 0; GList *plist = NULL, *children = NULL; GTree *shown = NULL; - char *pstring; + char *pstring = NULL; MailboxState_T M = NULL; size_t slen; unsigned i; @@ -877,16 +877,14 @@ void _ic_list_enter(dm_thread_data *D) memset(mailbox, 0, IMAP_MAX_MAILBOX_NAMELEN); u64_t mailbox_id = *(u64_t *)children->data; - // avoid fully loading mailbox here - M = MailboxState_new(0); - MailboxState_setId(M, mailbox_id); - MailboxState_preload(M); - if ( (D->status = db_getmailboxname(mailbox_id, self->userid, mailbox)) != DM_SUCCESS) { - g_free(mailbox); break; } + // avoid fully loading mailbox here + M = MailboxState_new(0); + MailboxState_setId(M, mailbox_id); + MailboxState_preload(M); MailboxState_setName(M, mailbox); /* Enforce match of mailbox to pattern. */ @@ -950,10 +948,14 @@ void _ic_list_enter(dm_thread_data *D) g_free(pstring); } + MailboxState_free(&M); + if (! g_list_next(children)) break; children = g_list_next(children); } + g_free(mailbox); + if (shown) g_tree_destroy(shown); if (children) g_list_destroy(children); g_free(pattern); |