[PATCH] driver-mysql: Avoid double-closing MySQL connection

OBS-URL: https://build.opensuse.org/package/show/server:mail/dovecot23?expand=0&rev=45
This commit is contained in:
2019-04-29 22:20:50 +00:00
committed by Git OBS Bridge
parent 6e450a619d
commit 8b970068e3
3 changed files with 44 additions and 0 deletions

36
3c5101ffd.patch Normal file
View File

@@ -0,0 +1,36 @@
From 3c5101ffdd2a8115e03ed7180d53578765dea4c9 Mon Sep 17 00:00:00 2001
From: Aki Tuomi <aki.tuomi@dovecot.fi>
Date: Tue, 4 Dec 2018 14:40:04 +0200
Subject: [PATCH] driver-mysql: Avoid double-closing MySQL connection
Fixes double-free
---
src/lib-sql/driver-mysql.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/lib-sql/driver-mysql.c b/src/lib-sql/driver-mysql.c
index c87e825e4b..5dd1c3124f 100644
--- a/src/lib-sql/driver-mysql.c
+++ b/src/lib-sql/driver-mysql.c
@@ -173,7 +173,9 @@ static int driver_mysql_connect(struct sql_db *_db)
static void driver_mysql_disconnect(struct sql_db *_db)
{
struct mysql_db *db = (struct mysql_db *)_db;
- mysql_close(db->mysql);
+ if (db->mysql != NULL)
+ mysql_close(db->mysql);
+ db->mysql = NULL;
}
static int driver_mysql_parse_connect_string(struct mysql_db *db,
@@ -311,7 +313,9 @@ static void driver_mysql_deinit_v(struct sql_db *_db)
_db->no_reconnect = TRUE;
sql_db_set_state(&db->api, SQL_DB_STATE_DISCONNECTED);
- mysql_close(db->mysql);
+ if (db->mysql != NULL)
+ mysql_close(db->mysql);
+ db->mysql = NULL;
sql_connection_log_finished(_db);
event_unref(&_db->event);

View File

@@ -1,3 +1,9 @@
-------------------------------------------------------------------
Mon Apr 29 22:11:53 UTC 2019 - Marcus Rueckert <mrueckert@suse.de>
- backport https://github.com/dovecot/core/commit/3c5101ffd.patch
[PATCH] driver-mysql: Avoid double-closing MySQL connection
-------------------------------------------------------------------
Thu Apr 18 11:40:06 UTC 2019 - Marcus Rueckert <mrueckert@suse.de>

View File

@@ -137,6 +137,7 @@ Source11: http://pigeonhole.dovecot.org/releases/%{dovecot_branch}/%{dovec
Source12: dovecot23.keyring
Patch: dovecot-2.3.0-dont_use_etc_ssl_certs.patch
Patch1: dovecot-2.3.0-better_ssl_defaults.patch
Patch2: https://github.com/dovecot/core/commit/3c5101ffd.patch
Summary: IMAP and POP3 Server Written Primarily with Security in Mind
License: BSD-3-Clause AND LGPL-2.1-or-later AND MIT
Group: Productivity/Networking/Email/Servers
@@ -316,6 +317,7 @@ dovecot tree.
%setup -q -n %{pkg_name}-%{dovecot_version} -a 1
%patch -p1
%patch1 -p1
%patch2 -p1
gzip -9v ChangeLog
# Fix plugins dir.
sed -i 's|#mail_plugin_dir = /usr/lib/dovecot|mail_plugin_dir = %{_libdir}/dovecot/modules|' doc/example-config/conf.d/10-mail.conf