dovecot-2.2: pgsql: Don't crash at disconnect/deinit if there's ...

dovecot at dovecot.org dovecot at dovecot.org
Fri May 15 10:29:30 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/b19ca4214e63
changeset: 18698:b19ca4214e63
user:      Timo Sirainen <tss at iki.fi>
date:      Fri May 15 13:27:29 2015 +0300
description:
pgsql: Don't crash at disconnect/deinit if there's an unfinished query.

diffstat:

 src/lib-sql/driver-pgsql.c |  12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

diffs (29 lines):

diff -r db41043041cb -r b19ca4214e63 src/lib-sql/driver-pgsql.c
--- a/src/lib-sql/driver-pgsql.c	Fri May 15 13:07:27 2015 +0300
+++ b/src/lib-sql/driver-pgsql.c	Fri May 15 13:27:29 2015 +0300
@@ -245,8 +245,10 @@
 {
 	struct pgsql_db *db = (struct pgsql_db *)_db;
 
-	if (db->cur_result != NULL && db->cur_result->to != NULL)
-                result_finish(db->cur_result);
+	if (db->cur_result != NULL && db->cur_result->to != NULL) {
+		driver_pgsql_stop_io(db);
+		result_finish(db->cur_result);
+	}
 
 	_db->no_reconnect = TRUE;
 	driver_pgsql_close(db);
@@ -276,11 +278,7 @@
 {
 	struct pgsql_db *db = (struct pgsql_db *)_db;
 
-	if (db->cur_result != NULL && db->cur_result->to != NULL)
-                result_finish(db->cur_result);
-
-	_db->no_reconnect = TRUE;
-        driver_pgsql_close(db);
+	driver_pgsql_disconnect(_db);
 	i_free(db->host);
 	i_free(db->error);
 	i_free(db->connect_string);


More information about the dovecot-cvs mailing list