dovecot-2.2: *-login: Previous SSL fixes were still broken with ...

dovecot at dovecot.org dovecot at dovecot.org
Sun May 20 03:26:30 EEST 2012


details:   http://hg.dovecot.org/dovecot-2.2/rev/339b1337aab0
changeset: 14393:339b1337aab0
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Mar 27 00:12:39 2012 +0300
description:
*-login: Previous SSL fixes were still broken with service_count=1.

diffstat:

 src/login-common/client-common.c     |  2 --
 src/login-common/ssl-proxy-openssl.c |  8 +++-----
 src/login-common/ssl-proxy.c         |  4 ----
 src/login-common/ssl-proxy.h         |  1 -
 4 files changed, 3 insertions(+), 12 deletions(-)

diffs (65 lines):

diff -r 94286d055872 -r 339b1337aab0 src/login-common/client-common.c
--- a/src/login-common/client-common.c	Mon Mar 26 20:46:55 2012 +0300
+++ b/src/login-common/client-common.c	Tue Mar 27 00:12:39 2012 +0300
@@ -180,8 +180,6 @@
 		i_free_and_null(client->proxy_password);
 	}
 
-	if (client->ssl_proxy != NULL)
-		ssl_proxy_unset_client(client->ssl_proxy);
 	if (client->login_proxy != NULL)
 		login_proxy_free(&client->login_proxy);
 	client->v.destroy(client);
diff -r 94286d055872 -r 339b1337aab0 src/login-common/ssl-proxy-openssl.c
--- a/src/login-common/ssl-proxy-openssl.c	Mon Mar 26 20:46:55 2012 +0300
+++ b/src/login-common/ssl-proxy-openssl.c	Tue Mar 27 00:12:39 2012 +0300
@@ -659,14 +659,10 @@
 {
 	i_assert(proxy->client == NULL);
 
+	client_ref(client);
 	proxy->client = client;
 }
 
-void ssl_proxy_unset_client(struct ssl_proxy *proxy)
-{
-	proxy->client = NULL;
-}
-
 bool ssl_proxy_has_valid_client_cert(const struct ssl_proxy *proxy)
 {
 	return proxy->cert_received && !proxy->cert_broken;
@@ -800,6 +796,8 @@
 	(void)net_disconnect(proxy->fd_ssl);
 	(void)net_disconnect(proxy->fd_plain);
 
+	if (proxy->client != NULL)
+		client_unref(&proxy->client);
 	ssl_proxy_unref(proxy);
 }
 
diff -r 94286d055872 -r 339b1337aab0 src/login-common/ssl-proxy.c
--- a/src/login-common/ssl-proxy.c	Mon Mar 26 20:46:55 2012 +0300
+++ b/src/login-common/ssl-proxy.c	Tue Mar 27 00:12:39 2012 +0300
@@ -38,10 +38,6 @@
 {
 }
 
-void ssl_proxy_unset_client(struct ssl_proxy *proxy ATTR_UNUSED)
-{
-}
-
 bool ssl_proxy_has_valid_client_cert(const struct ssl_proxy *proxy ATTR_UNUSED)
 {
 	return FALSE;
diff -r 94286d055872 -r 339b1337aab0 src/login-common/ssl-proxy.h
--- a/src/login-common/ssl-proxy.h	Mon Mar 26 20:46:55 2012 +0300
+++ b/src/login-common/ssl-proxy.h	Tue Mar 27 00:12:39 2012 +0300
@@ -22,7 +22,6 @@
 			   struct ssl_proxy **proxy_r);
 void ssl_proxy_start(struct ssl_proxy *proxy);
 void ssl_proxy_set_client(struct ssl_proxy *proxy, struct client *client);
-void ssl_proxy_unset_client(struct ssl_proxy *proxy);
 bool ssl_proxy_has_valid_client_cert(const struct ssl_proxy *proxy) ATTR_PURE;
 bool ssl_proxy_has_broken_client_cert(struct ssl_proxy *proxy);
 int ssl_proxy_cert_match_name(struct ssl_proxy *proxy, const char *verify_name);


More information about the dovecot-cvs mailing list