dovecot-2.2: fts-solr: Fixed memory leak at user deinit.

dovecot at dovecot.org dovecot at dovecot.org
Wed May 13 14:18:20 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/8973648dd361
changeset: 18678:8973648dd361
user:      Timo Sirainen <tss at iki.fi>
date:      Wed May 13 17:16:21 2015 +0300
description:
fts-solr: Fixed memory leak at user deinit.

diffstat:

 src/plugins/fts-solr/fts-backend-solr-old.c |  1 +
 src/plugins/fts-solr/fts-backend-solr.c     |  1 +
 src/plugins/fts-solr/solr-connection.c      |  5 ++++-
 src/plugins/fts-solr/solr-connection.h      |  2 +-
 4 files changed, 7 insertions(+), 2 deletions(-)

diffs (50 lines):

diff -r e6e04177374d -r 8973648dd361 src/plugins/fts-solr/fts-backend-solr-old.c
--- a/src/plugins/fts-solr/fts-backend-solr-old.c	Wed May 13 16:54:27 2015 +0300
+++ b/src/plugins/fts-solr/fts-backend-solr-old.c	Wed May 13 17:16:21 2015 +0300
@@ -249,6 +249,7 @@
 {
 	struct solr_fts_backend *backend = (struct solr_fts_backend *)_backend;
 
+	solr_connection_deinit(&backend->solr_conn);
 	i_free(backend->id_namespace);
 	i_free(backend->id_username);
 	i_free(backend);
diff -r e6e04177374d -r 8973648dd361 src/plugins/fts-solr/fts-backend-solr.c
--- a/src/plugins/fts-solr/fts-backend-solr.c	Wed May 13 16:54:27 2015 +0300
+++ b/src/plugins/fts-solr/fts-backend-solr.c	Wed May 13 17:16:21 2015 +0300
@@ -179,6 +179,7 @@
 {
 	struct solr_fts_backend *backend = (struct solr_fts_backend *)_backend;
 
+	solr_connection_deinit(&backend->solr_conn);
 	i_free(backend);
 }
 
diff -r e6e04177374d -r 8973648dd361 src/plugins/fts-solr/solr-connection.c
--- a/src/plugins/fts-solr/solr-connection.c	Wed May 13 16:54:27 2015 +0300
+++ b/src/plugins/fts-solr/solr-connection.c	Wed May 13 17:16:21 2015 +0300
@@ -142,8 +142,11 @@
 	return 0;
 }
 
-void solr_connection_deinit(struct solr_connection *conn)
+void solr_connection_deinit(struct solr_connection **_conn)
 {
+	struct solr_connection *conn = *_conn;
+
+	*_conn = NULL;
 	XML_ParserFree(conn->xml_parser);
 	i_free(conn->http_host);
 	i_free(conn->http_base_url);
diff -r e6e04177374d -r 8973648dd361 src/plugins/fts-solr/solr-connection.h
--- a/src/plugins/fts-solr/solr-connection.h	Wed May 13 16:54:27 2015 +0300
+++ b/src/plugins/fts-solr/solr-connection.h	Wed May 13 17:16:21 2015 +0300
@@ -15,7 +15,7 @@
 
 int solr_connection_init(const char *url, bool debug,
 			 struct solr_connection **conn_r, const char **error_r);
-void solr_connection_deinit(struct solr_connection *conn);
+void solr_connection_deinit(struct solr_connection **conn);
 
 int solr_connection_select(struct solr_connection *conn, const char *query,
 			   pool_t pool, struct solr_result ***box_results_r);


More information about the dovecot-cvs mailing list