[dovecot-cvs] dovecot/src/lib-storage/index index-mail-headers.c, 1.57, 1.58 index-search.c, 1.109, 1.110

cras at dovecot.org cras at dovecot.org
Sat Feb 25 10:24:20 EET 2006


Update of /var/lib/cvs/dovecot/src/lib-storage/index
In directory talvi:/tmp/cvs-serv21963

Modified Files:
	index-mail-headers.c index-search.c 
Log Message:
Last memory leak fix actually started crashing.



Index: index-mail-headers.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/index-mail-headers.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- index-mail-headers.c	18 Jan 2006 22:16:43 -0000	1.57
+++ index-mail-headers.c	25 Feb 2006 08:24:18 -0000	1.58
@@ -608,8 +608,13 @@
 	if (mail_cache_lookup_headers(mail->trans->cache_view, dest,
 				      mail->data.seq, headers->idx,
 				      headers->count) > 0) {
-		return i_stream_create_from_data(mail->data_pool,
-						 str_data(dest), str_len(dest));
+		if (mail->data.filter_stream != NULL)
+			i_stream_unref(&mail->data.filter_stream);
+		mail->data.filter_stream =
+			i_stream_create_from_data(default_pool,
+						  str_data(dest),
+						  str_len(dest));
+		return mail->data.filter_stream;
 	}
 	/* not in cache / error */
 	p_free(mail->data_pool, dest);

Index: index-search.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/index-search.c,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -d -r1.109 -r1.110
--- index-search.c	23 Feb 2006 18:25:44 -0000	1.109
+++ index-search.c	25 Feb 2006 08:24:18 -0000	1.110
@@ -507,7 +507,6 @@
 			input = mail_get_stream(ctx->mail, NULL, NULL);
 			if (input == NULL)
 				return FALSE;
-			i_stream_ref(input);
 		} else {
 			/* FIXME: do this once in init */
 			i_assert(*headers != NULL);
@@ -539,7 +538,6 @@
 		if (input == NULL)
 			return FALSE;
 
-		i_stream_ref(input);
 		i_stream_seek(input, hdr_size.physical_size);
 	}
 
@@ -553,7 +551,6 @@
 
 		mail_search_args_foreach(args, search_body, &body_ctx);
 	}
-	i_stream_unref(&input);
 	return TRUE;
 }
 



More information about the dovecot-cvs mailing list