Please reference http://www.openssl.org/support/faq.html#PROG13 --
> "I think I've detected a memory leak, is this a bug?"
Thanks!
It doesn't matter if I call those cleaning functions, the leaks are
still there.
/* --- cut here --- */
#include <openssl/ssl.h>
#include <openssl/bio.h>
#include <openssl/err.h>
#include <openssl/engine.h>
#include <openssl/conf.h>
int main(int argc, char *argv[])
{
SSL_library_init();
//ERR_remove_state(0);
//ERR_free_strings();
ENGINE_cleanup();
CONF_modules_unload(1);
return 1;
}
/* --- cut here --- */
valgrind: still reachable: 1,336 bytes in 81 blocks.
What now?
My problem is, I dont't know _where to read_ about doing it right. The
large output about blocks allocated from openssl makes it hard to find
my own leaks. That's quite confusing.
These functions I'm now using. Can someone please look at it and tell me
a little bit more where I should pay attention about freeing things?
,-----
| SSL_library_init();
|
| SSL_CTX* pCtx = SSL_CTX_new(SSLv3_client_method())
|
| SSL_CTX_use_certificate_chain_file(pCtx, "client.crt")
| SSL_CTX_use_PrivateKey_file(pCtx, "client.key", SSL_FILETYPE_PEM)
| SSL_CTX_check_private_key(pCtx)
| SSL_CTX_load_verify_locations(pCtx, "ca.crt", NULL))
|
| BIO* pBio = BIO_new_buffer_ssl_connect(pCtx)
|
| BIO_get_ssl(pBio, &pSsl);
| SSL_set_mode(pSsl, SSL_MODE_AUTO_RETRY);
|
| BIO_set_conn_hostname(pBio, HOSTNAME);
| BIO_set_conn_port(pBio, HTTPS_PORT);
| BIO_do_connect(pBio)
|
| SSL_CTX_set_verify(pCtx, VERIFY_SWITCHES, NULL);
| SSL_CTX_set_verify_depth(pCtx, 1);
|
| SSL_get_verify_result(pSsl)
|
| BIO_write(pBio, REQUEST, sizeof(REQUEST));
| BIO_flush(pBio)
| BIO_gets(pBio, buffer, buffer_size);
|
| SSL_CTX_free(pCtx);
| BIO_free_all(pBio);
`-----
thanks in advance
Lars
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager [EMAIL PROTECTED]