You are missing calls to:

    ERR_free_strings();
    ERR_remove_state(0);
    
-----Original Message-----
From: Anthony Neal [mailto:[EMAIL PROTECTED]
Sent: Friday, December 12, 2003 9:32 AM
To: [EMAIL PROTECTED]
Subject: OpenSSL 0.9.7a - Small (585 byte) memory leak


Hi there,

One of our projects uses an OpenSSL based plug-in which, according to
the OpenSSL memory debug logs, is leaking about 585 bytes.  The log is
as follows:

[10:57:19]  1856 file=err.c, line=949, thread=16384, number=332,
address=08087550
[10:57:19]  1859 file=lhash.c, line=193, thread=16384, number=12,
address=08087C78
[10:57:19] 10692 file=err.c, line=1003, thread=16384, number=81,
address=08119160
[10:57:19]  1857 file=lhash.c, line=119, thread=16384, number=96,
address=08087C88
> thread=16384, file=err.c, line=415, info="int_thread_get (err.c)"
[10:57:19]  1858 file=lhash.c, line=121, thread=16384, number=64,
address=08087768
> thread=16384, file=err.c, line=415, info="int_thread_get (err.c)"
585 bytes leaked in 5 chunks

The plugin starts up as follows:

void init()
{
    if(_memDebug != 0)
    {
        CRYPTO_malloc_debug_init();
        CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL);
        CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
    }
    else
    {
        CRYPTO_set_mem_debug_functions(0, 0, 0, 0, 0);
    }

    SSL_library_init();
    SSL_load_error_strings();
    OpenSSL_add_ssl_algorithms();
}

and shuts down as follows:

void shutdown()
{
    ENGINE_cleanup();
    CRYPTO_cleanup_all_ex_data();

    ERR_free_strings();
    for_each(_threadIdCache.begin(), _threadIdCache.end(),
ERR_remove_state);

    EVP_cleanup();

    if(_memDebug != 0)
    {
        CRYPTO_mem_leaks_fp(stderr);
    }
}

Does anyone see anything glaring that could be causing this leak?  I
know some of you are much better at interpretting as to what these leaks
could be attributed.  Any help would be greatly appreciated.

Interestingly, the memory debug messages come to about 579 bytes - could
this lead be the memory used to report this error?

-Anthony


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to