]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Fix memory leak in x509_verify_cert_ku()
authorSteffan Karger <steffan@karger.me>
Sun, 7 May 2017 11:01:18 +0000 (13:01 +0200)
committerDavid Sommerseth <davids@openvpn.net>
Mon, 8 May 2017 15:55:01 +0000 (17:55 +0200)
If keyUsage was only required to be present, but no specific value was
required, we would omit to free the extracted string.  This happens as of
2.4.1, if --remote-cert-tls is used.  In that case we leak a bit of
memory on each TLS (re)negotiation.

Signed-off-by: Steffan Karger <steffan@karger.me>
Acked-by: David Sommerseth <davids@openvpn.net>
Message-Id: <1494154878-18403-1-git-send-email-steffan@karger.me>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg14563.html
Signed-off-by: David Sommerseth <davids@openvpn.net>
Changes.rst
src/openvpn/ssl_verify_openssl.c

index c1583b396a9be1acfd79695e27f81edb2fc9c680..3dba7e0ef5144892e34e352104a9793981e34e7c 100644 (file)
@@ -318,3 +318,12 @@ Version 2.4.1
   ``--remote-cert-tls`` uses the far more common keyUsage and extendedKeyUsage
   extension instead.  Make sure your certificates carry these to be able to
   use ``--remote-cert-tls``.
+
+
+Version 2.4.2
+=============
+
+Bugfixes
+--------
+- Fix memory leak introduced in 2.4.1: if --remote-cert-tls is used, we leaked
+  some memory on each TLS (re)negotiation.
index d1bdb90a94dc58ff1e71b0c684fde77fc14acadb..72eb3b0c61cfdcead978fd8851033cb5a1003079 100644 (file)
@@ -607,6 +607,7 @@ x509_verify_cert_ku(X509 *x509, const unsigned *const expected_ku,
     if (expected_ku[0] == OPENVPN_KU_REQUIRED)
     {
         /* Extension required, value checked by TLS library */
+        ASN1_BIT_STRING_free(ku);
         return SUCCESS;
     }