I had a similar issue that was fixed by moving the CRYPTO_cleanup_all_ex_data 
command to the end of the application (as has been suggested).  Have you tried 
running Valgrind with the application?  This may tell you where the memory leak 
is occurring.

--Kevin

p.s.  You will need to compile OpenSSL with the -DPURIFY option (and you may 
need to grab a recent patch that I mailed to openssl-dev to get -DPURIFY 
working properly).

--Kevin

-----Original Message-----
From: owner-openssl-us...@openssl.org [mailto:owner-openssl-us...@openssl.org] 
On Behalf Of David
Sent: Monday, January 11, 2010 11:48 AM
To: openssl-users@openssl.org
Subject: Re: memory growing when using SSL connections

Hi Jeremy,

    I did try removing the CRYPTO_cleanup_all_ex_data() call, based on Dr. 
Henson's response, but I still have the same problem.

    I  bypassed the SSL calls and used pure telnet to my server and there 
were no signs of the application growing.

    Incidentally, I don't see this problem when running on a Solaris box. 
Perhaps, it has something to do with the AIX environment.

Regards,
David

--------------------------------------------------
From: "Jeremy Hunt" <jere...@optimation.com.au>
Sent: Sunday, January 10, 2010 6:56 PM
To: <openssl-users@openssl.org>
Subject: Re: memory growing when using SSL connections

> Hi David et al,
>
> On reading the responses so far two new thoughts occur to me:
>
> 1. In view of Dr Henson's response, I wonder if removing the 
> CRYPTO_cleanup_all_ex_data() call in your loop will fix the problem. 
> Perhaps reusing the context structure after calling it may have the 
> reverse effect.
>
> 2. It may not be an SSL problem at all. Can you remove the SSL calls from 
> your application and see if you still get the memory leak? Your underlying 
> telnet application may be the cause.
>
> Good Luck,
>
> Jeremy
>
> Dr. Stephen Henson wrote:
>> [safeTgram (safetgram-in) receive status: NOT encrypted, NOT signed.]
>>
>>
>> On Thu, Jan 07, 2010, David wrote:
>>
>>
>>> Hi,
>>>
>>> I'm using tn3270 sessions running over SSL. I may have up to 124 
>>> sessions activated concurrently, although I plan to get up to 250 
>>> sessions at some point.
>>> Whenever the sessions are stopped and restarted, I notice intermittently 
>>> that memory grows in multiples of 4K bytes.
>>> I'm running on AIX 5.1, 5.2 and 5.3 and using openssl-0.9.8l.  There 
>>> doesn't appear to be an obvious memory leak in either my application or 
>>> the OpenSSL stuff (all memory allocated when the sessions are started 
>>> are freed when the sessions are stopped).
>>> Here's a summary of the code structure:
>>>
>>> SSL_library_init();
>>> meth = TLSv1_client_method();
>>> RAND_seed();
>>> ctx = SSL_CTX_new(meth);
>>>
>>> while ([some telnet connection wants to do SSL])
>>> {
>>>     ssl = SSL_new(ctx);
>>>     SSL_set_fd()
>>>     SSL_set_cipher_list();   SSL_set_connect_state();
>>>     SSL_connect();
>>>     do SSL_read(), SSL_write()
>>>     SSL_shutdown();
>>>     close FD;
>>>     SSL_free();
>>>     CRYPTO_cleanup_all_ex_data();
>>>   }
>>>          Any ideas would be appreciated. Thanks,
>>> David
>>>
>>
>> Some cleanups occur on each connection and others only when the 
>> application
>> shuts down.
>>
>> You should *not* call CRYPTO_cleanup_all_ex_data() on every SSL 
>> connection
>> because later SSL connections may use it and end up not freeing data
>> correctly.
>>
>> This is especially an issue if connections use compression (OpenSSL 
>> compiled
>> against zlib) as it is by default in some linux distributions.
>>
>> Steve.
>> --
>> Dr Stephen N. Henson. OpenSSL project core developer.
>> Commercial tech support now available see: http://www.openssl.org
>> ______________________________________________________________________
>> OpenSSL Project                                 http://www.openssl.org
>> User Support Mailing List                    openssl-users@openssl.org
>> Automated List Manager                           majord...@openssl.org
>>
>>
>
>
> -- 
>
> "The most likely way for the world to be destroyed, most experts agree, is 
> by accident. That's where we come in; we're computer professionals. We 
> cause accidents." -- Nathaniel Borenstein, co-creator of MIME
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-users@openssl.org
> Automated List Manager                           majord...@openssl.org 

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to