comp_methods in a SSL_CTX points at an internal database. Do *not* free that, since it's shared by all SSL_CTX's, present and future.
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index 105bcb2..621d101 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c
@@ -1247,8 +1247,12 @@ sk_X509_NAME_pop_free(a->client_CA,X509_NAME_free); if (a->extra_certs != NULL) sk_X509_pop_free(a->extra_certs,X509_free); +#if 0 /* This should never be done, since it removes a global database */ if (a->comp_methods != NULL) sk_SSL_COMP_pop_free(a->comp_methods,SSL_COMP_free); +#else + a->comp_methods = NULL; +#endif OPENSSL_free(a); }