summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--imap/ChangeLog9
-rw-r--r--tcpd/libcouriergnutls.c6
-rw-r--r--tcpd/libcouriertls.c7
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);
}