dovecot-2.2: fts-solr: Crashfixes

dovecot at dovecot.org dovecot at dovecot.org
Wed May 13 13:56:28 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/e6e04177374d
changeset: 18677:e6e04177374d
user:      Timo Sirainen <tss at iki.fi>
date:      Wed May 13 16:54:27 2015 +0300
description:
fts-solr: Crashfixes

diffstat:

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

diffs (64 lines):

diff -r 5483aeb1ce9b -r e6e04177374d src/plugins/fts-solr/fts-backend-solr-old.c
--- a/src/plugins/fts-solr/fts-backend-solr-old.c	Wed May 13 16:46:14 2015 +0300
+++ b/src/plugins/fts-solr/fts-backend-solr-old.c	Wed May 13 16:54:27 2015 +0300
@@ -433,7 +433,7 @@
 
 	solr_connection_post_more(ctx->post, str_data(ctx->cmd),
 				  str_len(ctx->cmd));
-	return solr_connection_post_end(ctx->post);
+	return solr_connection_post_end(&ctx->post);
 }
 
 static int
diff -r 5483aeb1ce9b -r e6e04177374d src/plugins/fts-solr/fts-backend-solr.c
--- a/src/plugins/fts-solr/fts-backend-solr.c	Wed May 13 16:46:14 2015 +0300
+++ b/src/plugins/fts-solr/fts-backend-solr.c	Wed May 13 16:54:27 2015 +0300
@@ -339,7 +339,7 @@
 
 	solr_connection_post_more(ctx->post, str_data(ctx->cmd),
 				  str_len(ctx->cmd));
-	return solr_connection_post_end(ctx->post);
+	return solr_connection_post_end(&ctx->post);
 }
 
 static void
diff -r 5483aeb1ce9b -r e6e04177374d src/plugins/fts-solr/solr-connection.c
--- a/src/plugins/fts-solr/solr-connection.c	Wed May 13 16:46:14 2015 +0300
+++ b/src/plugins/fts-solr/solr-connection.c	Wed May 13 16:54:27 2015 +0300
@@ -497,18 +497,22 @@
 	if (post->failed)
 		return;
 
-	if (http_client_request_send_payload(&post->http_req, data, size) != 0 &&
-	    conn->request_status < 0)
+	if (conn->request_status == 0)
+		(void)http_client_request_send_payload(&post->http_req, data, size);
+	if (conn->request_status < 0)
 		post->failed = TRUE;
 }
 
-int solr_connection_post_end(struct solr_connection_post *post)
+int solr_connection_post_end(struct solr_connection_post **_post)
 {
+	struct solr_connection_post *post = *_post;
 	struct solr_connection *conn = post->conn;
 	int ret = post->failed ? -1 : 0;
 
 	i_assert(conn->posting);
 
+	*_post = NULL;
+
 	if (!post->failed) {
 		if (http_client_request_finish_payload(&post->http_req) <= 0 ||
 			conn->request_status < 0) {
diff -r 5483aeb1ce9b -r e6e04177374d src/plugins/fts-solr/solr-connection.h
--- a/src/plugins/fts-solr/solr-connection.h	Wed May 13 16:46:14 2015 +0300
+++ b/src/plugins/fts-solr/solr-connection.h	Wed May 13 16:54:27 2015 +0300
@@ -25,6 +25,6 @@
 solr_connection_post_begin(struct solr_connection *conn);
 void solr_connection_post_more(struct solr_connection_post *post,
 			       const unsigned char *data, size_t size);
-int solr_connection_post_end(struct solr_connection_post *post);
+int solr_connection_post_end(struct solr_connection_post **post);
 
 #endif


More information about the dovecot-cvs mailing list