Release engine reference when calling SSL_CTX_free().
[openssl.git] / ssl / ssl_lib.c
index bc6016194c4f0200f40d23f1e7ebe158836f0a19..fac080c19d4661612fd733fab1cecc8cdec6d4e4 100644 (file)
 #ifndef OPENSSL_NO_DH
 #include <openssl/dh.h>
 #endif
+#ifndef OPENSSL_NO_ENGINE
+#include <openssl/engine.h>
+#endif
 
 const char *SSL_version_str=OPENSSL_VERSION_TEXT;
 
@@ -1652,6 +1655,10 @@ void SSL_CTX_free(SSL_CTX *a)
 #ifndef OPENSSL_NO_PSK
        if (a->psk_identity_hint)
                OPENSSL_free(a->psk_identity_hint);
+#endif
+#ifndef OPENSSL_NO_ENGINE
+       if (a->client_cert_engine)
+               ENGINE_finish(a->client_cert_engine);
 #endif
        OPENSSL_free(a);
        }