dovecot-2.2: fs-metawrap: Memory leak fixes
dovecot at dovecot.org
dovecot at dovecot.org
Tue Feb 5 03:24:58 EET 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/c31ee24e7255
changeset: 15736:c31ee24e7255
user: Timo Sirainen <tss at iki.fi>
date: Tue Feb 05 03:23:46 2013 +0200
description:
fs-metawrap: Memory leak fixes
diffstat:
src/lib-fs/fs-metawrap.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diffs (51 lines):
diff -r 275973a62419 -r c31ee24e7255 src/lib-fs/fs-metawrap.c
--- a/src/lib-fs/fs-metawrap.c Tue Feb 05 03:23:30 2013 +0200
+++ b/src/lib-fs/fs-metawrap.c Tue Feb 05 03:23:46 2013 +0200
@@ -126,7 +126,7 @@
} else {
file->super_read = file->super;
}
- i_array_init(&file->file.metadata, 8);
+ fs_metadata_init(&file->file);
return &file->file;
}
@@ -134,10 +134,11 @@
{
struct metawrap_fs_file *file = (struct metawrap_fs_file *)_file;
+ if (file->input != NULL)
+ i_stream_unref(&file->input);
if (file->super_read != file->super)
fs_file_deinit(&file->super_read);
fs_file_deinit(&file->super);
- array_free(&file->file.metadata);
i_free(file->file.path);
i_free(file);
}
@@ -245,6 +246,7 @@
return fs_read_stream(file->super, max_buffer_size);
if (file->input != NULL) {
+ i_stream_ref(file->input);
i_stream_seek(file->input, 0);
return file->input;
}
@@ -253,6 +255,7 @@
I_MAX(max_buffer_size, MAX_METADATA_LINE_LEN));
file->input = i_stream_create_metawrap(input, fs_metawrap_callback, file);
i_stream_unref(&input);
+ i_stream_ref(file->input);
return file->input;
}
@@ -383,8 +386,8 @@
i_stream_unref(&input);
return -1;
}
+ i_stream_unref(&input);
if (ret == 0) {
- i_stream_unref(&input);
fs_set_error_async(_file->fs);
return -1;
}
More information about the dovecot-cvs
mailing list