[dovecot-cvs] dovecot/src/lib-index mail-index.c, 1.118,
1.119 mail-transaction-log.c, 1.16, 1.17
cras at procontrol.fi
cras at procontrol.fi
Mon May 3 17:37:51 EEST 2004
Update of /home/cvs/dovecot/src/lib-index
In directory talvi:/tmp/cvs-serv16148/lib-index
Modified Files:
mail-index.c mail-transaction-log.c
Log Message:
memory leak fixes
Index: mail-index.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index.c,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -d -r1.118 -r1.119
--- mail-index.c 3 May 2004 14:22:24 -0000 1.118
+++ mail-index.c 3 May 2004 14:37:49 -0000 1.119
@@ -30,6 +30,8 @@
void mail_index_free(struct mail_index *index)
{
+ mail_index_close(index);
+
i_free(index->error);
i_free(index->dir);
i_free(index->prefix);
@@ -564,6 +566,8 @@
if (index->opened)
return 0;
+ index->filepath = i_strconcat(index->dir, "/", index->prefix, NULL);
+
do {
index->shared_lock_count = 0;
index->excl_lock_count = 0;
@@ -580,8 +584,6 @@
(flags & MAIL_INDEX_OPEN_FLAG_FCNTL_LOCKS_DISABLE) != 0;
index->readonly = FALSE;
- index->filepath = i_strconcat(index->dir, "/",
- index->prefix, NULL);
ret = mail_index_open_files(index, flags);
if (ret <= 0)
break;
Index: mail-transaction-log.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-transaction-log.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- mail-transaction-log.c 3 May 2004 13:58:35 -0000 1.16
+++ mail-transaction-log.c 3 May 2004 14:37:49 -0000 1.17
@@ -130,6 +130,9 @@
{
mail_transaction_log_views_close(log);
+ log->head->refcount--;
+ mail_transaction_logs_clean(log);
+
log->index->log = NULL;
i_free(log);
}
@@ -222,6 +225,17 @@
static void
mail_transaction_log_file_close(struct mail_transaction_log_file *file)
{
+ if (file->buffer != NULL)
+ buffer_free(file->buffer);
+
+ if (file->mmap_base != NULL) {
+ if (munmap(file->mmap_base, file->mmap_size) < 0) {
+ mail_index_file_set_syscall_error(file->log->index,
+ file->filepath,
+ "munmap()");
+ }
+ }
+
if (close(file->fd) < 0) {
mail_index_file_set_syscall_error(file->log->index,
file->filepath, "close()");
More information about the dovecot-cvs
mailing list