diff options
| -rw-r--r-- | imap/ChangeLog | 9 | ||||
| -rw-r--r-- | tcpd/libcouriergnutls.c | 6 | ||||
| -rw-r--r-- | tcpd/libcouriertls.c | 7 | 
3 files changed, 17 insertions, 5 deletions
| diff --git a/imap/ChangeLog b/imap/ChangeLog index 2eeece4..fcbc247 100644 --- a/imap/ChangeLog +++ b/imap/ChangeLog @@ -1,3 +1,12 @@ +2018-09-24  Sam Varshavchik  <mrsam@courier-mta.com> + +	* couriertls: additional fixes. + +2018-09-24  Yoshinari Takaoka <mumumu@mumumu.org> + +	* couriertls: option to use a separate file for the SSL certificate's +	private key, as an alternative to the combined keyfile+certificate. +  5.0.0  2018-07-21  Sam Varshavchik  <mrsam@courier-mta.com> diff --git a/tcpd/libcouriergnutls.c b/tcpd/libcouriergnutls.c index da57d1f..7f65b04 100644 --- a/tcpd/libcouriergnutls.c +++ b/tcpd/libcouriergnutls.c @@ -1151,8 +1151,6 @@ static int get_client_cert(gnutls_session_t session,  	{  		rc=set_cert(ssl, session, st, certfilename, keyfilename);  		free(certfilename); -		if (keyfilename) -			free(keyfilename);  	}  	else  	{ @@ -1161,6 +1159,10 @@ static int get_client_cert(gnutls_session_t session,  		if (rc > 0)  			rc=0;  	} + +	if (keyfilename) +		free(keyfilename); +  	return rc;  } diff --git a/tcpd/libcouriertls.c b/tcpd/libcouriertls.c index 2eb2f96..03f819c 100644 --- a/tcpd/libcouriertls.c +++ b/tcpd/libcouriertls.c @@ -346,6 +346,7 @@ static char *get_servername_concated_readable_file(const char *filename,  	char *p;  	if (!filename || !servername) return NULL; +	if (!*filename || !*servername) return NULL;  	filename_buffer=malloc(strlen(filename)+strlen(servername)+2);  	if (!filename_buffer) @@ -376,11 +377,12 @@ static char *get_servername_concated_readable_file(const char *filename,  static char *get_ip_concated_readable_file(SSL_CTX *ctx, const char *filename, const char *ip)  { -	if (!filename || !ip) return NULL; -  	char *test_file;  	const struct tls_info *info=SSL_CTX_get_app_data(ctx); +	if (!filename || !ip) return NULL; +	if (!*filename || !*ip) return NULL; +  	test_file= malloc(strlen(filename)+strlen(ip)+2);  	if (!test_file)  	{ @@ -452,7 +454,6 @@ static int process_certfile(SSL_CTX *ctx, const char *certfile,  			return rc;  		} -		free(test_file);  		if (test_private_key_file) free(test_private_key_file);  	} | 
