File cyrus-imapd_tls-session-leak.dif of Package cyrus-imapd.3194
Index: cyrus-imapd-2.3.16/imap/tls.c
===================================================================
--- cyrus-imapd-2.3.16.orig/imap/tls.c
+++ cyrus-imapd-2.3.16/imap/tls.c
@@ -714,6 +714,10 @@ int tls_init_serverengine(const char
if (!SSL_CTX_set_cipher_list(s_ctx, cipher_list)) {
syslog(LOG_ERR,"TLS server engine: cannot load cipher list '%s'",
cipher_list);
+ if ( sess_dbopen && (DB->close)(sessdb) ) {
+ syslog(LOG_ERR, "DBERROR: error closing tlsdb: %s",
+ cyrusdb_strerror(r));
+ }
return (-1);
}
@@ -731,6 +735,10 @@ int tls_init_serverengine(const char
if (!set_cert_stuff(s_ctx, s_cert_file, s_key_file)) {
syslog(LOG_ERR,"TLS server engine: cannot load cert/key data");
+ if ( sess_dbopen && (DB->close)(sessdb) ) {
+ syslog(LOG_ERR, "DBERROR: error closing tlsdb: %s",
+ cyrusdb_strerror(r));
+ }
return (-1);
}
SSL_CTX_set_tmp_rsa_callback(s_ctx, tmp_rsa_cb);