Question: Recently I have started studying about memory leaks in C++, so I may ask a naive questions.  

I have a c++ library that is using OpenSSL - my task is to check if there are memory leaks in this lib. I have run Visual Leak Detector to check mem leaks.  

I see that the calls to `SSL_library_init();` and `SSL_load_error_strings();` are leading leak - quick googling is showing that at the end of usage I have to call the followings: 

```
CONF_modules_free();
ERR_remove_state(0);
ENGINE_cleanup();
CONF_modules_unload(1);
ERR_free_strings();
EVP_cleanup();
CRYPTO_cleanup_all_ex_data();

```

The leak indeed decreased, but still there are two leaks(that the VLD tool shows me) that happen because the `SSL_library_init` call.  

does anyone know what else I have to do in order to free all the mem leaks?

Answer: 
To get rid of compilation error in Joe H's answer:

```
sk_SSL_COMP_free(SSL_COMP_get_compression_methods());

```
Call `SSL_COMP_free_compression_methods();`.