]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.4.16 v3.4.16
authorWietse Venema <wietse@porcupine.org>
Sun, 26 Jul 2020 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Sun, 26 Jul 2020 19:30:35 +0000 (17:30 -0200)
postfix/HISTORY
postfix/src/global/mail_version.h
postfix/src/tls/tls_misc.c
postfix/src/tls/tls_server.c

index d532ee9d49640a796a0d8a7c33b154ef1e577cb1..be605681c4ce6d8a0b8ae32e47d4c241ceb2feeb 100644 (file)
@@ -24484,3 +24484,13 @@ Apologies for any names omitted.
        settings in a system-wide OpenSSL configuration file, causing
        interoperability problems after an OS update. File:
        tls/tls_client.c, tls/tls_server.c.
+
+20200726
+
+       Bugfix (introduced: Postfix 3.4.15): part of a memory leak
+       fix was backported to the wrong place. File: tls/tls_misc.c.
+
+       The Postfix 3.4.15 workaround did not explictly override
+       the system-wide OpenSSL configuration of allowed TLS protocol
+       versions, for sessions where the remote SMTP client sends
+       SNI. It's better to be safe than sorry. File: tls/tls_server.c.
index 8fcc05351e56898f90d713a5f8653f148facecc7..00829b66fec677c5891567f3f822b2d737d51f29 100644 (file)
@@ -20,8 +20,8 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20200724"
-#define MAIL_VERSION_NUMBER    "3.4.15"
+#define MAIL_RELEASE_DATE      "20200726"
+#define MAIL_VERSION_NUMBER    "3.4.16"
 
 #ifdef SNAPSHOT
 #define MAIL_VERSION_DATE      "-" MAIL_RELEASE_DATE
index 3ecaa0537f3bac3f3c916d4c8827807baf652ba1..b313a3c24ebd4d82afd92aae912c5f3621d530e5 100644 (file)
@@ -923,8 +923,6 @@ void    tls_get_signature_params(TLS_SESS_STATE *TLScontext)
         */
        if (SSL_get_signature_nid(ssl, &nid) && nid != NID_undef)
            locl_sig_dgst = OBJ_nid2sn(nid);
-
-       X509_free(cert);
     }
     /* Signature algorithms for the peer end of the connection */
     if ((cert = SSL_get_peer_certificate(ssl)) != 0) {
@@ -966,6 +964,8 @@ void    tls_get_signature_params(TLS_SESS_STATE *TLScontext)
         */
        if (SSL_get_peer_signature_nid(ssl, &nid) && nid != NID_undef)
            peer_sig_dgst = OBJ_nid2sn(nid);
+
+       X509_free(cert);
     }
     if (kex_name) {
        TLScontext->kex_name = mystrdup(kex_name);
index 3d814f9d4dcec5b74935337e0679a76dae7c05a4..236f7859d4b7ac5583f68dec81f7f9ad0866b289 100644 (file)
@@ -530,6 +530,7 @@ TLS_APPL_STATE *tls_server_init(const TLS_SERVER_INIT_PROPS *props)
     /* Enable all supported protocols */
 #if OPENSSL_VERSION_NUMBER >= 0x1010000fUL
     SSL_CTX_set_min_proto_version(server_ctx, 0);
+    SSL_CTX_set_min_proto_version(sni_ctx, 0);
 #endif
 
     /*