changeset 18698:b19ca4214e63

pgsql: Don't crash at disconnect/deinit if there's an unfinished query.
author Timo Sirainen <tss@iki.fi>
date Fri, 15 May 2015 13:27:29 +0300
parents db41043041cb
children 6a40cb15e48f
files src/lib-sql/driver-pgsql.c
diffstat 1 files changed, 5 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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);