summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul J Stevens <paul@nfg.nl>2010-06-12 16:08:20 +0200
committerPaul J Stevens <paul@nfg.nl>2010-06-12 16:08:20 +0200
commit01191e688148756a9ba84e66fa3586d821777177 (patch)
tree5df83aa32624933e97a703714bd92d546cd8c964
parent69a3be943eb7e09513e19c6c46ffaac40f483252 (diff)
small leaks and compiler warning
-rw-r--r--configure.in2
-rw-r--r--src/imapcommands.c16
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);