> The way I normally trace this stuff is to run it under a debugger first to
> get the addresses of leaks then a second time with conditional breakpoints
> added at those points so that when that same address is allocated it is
> possible to do a stack trace to see the precise cause.
>
> That ex_data leak may mean you aren't calling CRYPTO_cleanup_all_ex_data().
>
> Steve.

Shouldn't this memory be cleanedup automatically when I free the object that 
it is part of?  I do understand that some things may not be deallocated if 
they are shared by multiple objects.  The last owner of the memory would 
cause the refrence count to go to zero and deallocate it.

The traces were generated at the time of memory allocation by our internal 
memory tracking code.  We havn't gone as far as making it look up sybols in 
the source and display things really pretty.  This is usually enough for us 
to figure out leaks in our code.

Adding CRYPTO_cleanup_all_ex_data() cleanup all the leaks except for the one 
associated with the RSA private keys loaded into the ctxs.  Shouldn't this be 
implicitly cleaned when the ctx is freed?  At the point in the code where the 
ctx is freed all ssl objects have been cleaned up.

I'm still concerned about the two leaks associated with the ssl object.  
Could these internal memory leaks build up over time (months) into something 
that could crash our software.  Is this memory resused or cleanedup 
eventually?

-- 

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

Reply via email to