Hi,
I'm writing a c++ server application that calls thounsands of times per hour the rsa_new() and rsa_free() openssl functions. After debugging a lot I discovered that "sometimes" (I'm not able to tell a precise number) the rsa_free does not release properly the memory allocated by the rsa_new. In order to prove this I created the simple program below. If i run it, i see the related working set going bigger and bigger, 4KB per second. I'm using the 1.0.2.8 version of libeay32.dll and ssleay32.ddl under windows 7 64 bit. It this a known bug? I'm forgetting something? Thanks in advance Simone Sgualdini Italy //--------------------------------------------------------------------------- #include <vcl.h> #ifdef _cplusplus extern "C" { #endif #include <openssl/rand.h> #include <openssl/ssl.h> #include <openssl/err.h> #include <openssl/rsa.h> #include <openssl/bn.h> #ifdef _cplusplus } #endif #pragma hdrstop HMODULE libeay32DLL = NULL; HMODULE ssleay32DLL = NULL; typedef RSA * (CALLBACK *myRSA_new) (void); typedef void (CALLBACK *myRSA_free) (RSA *r); typedef int (CALLBACK *mySSL_library_init) (void); myRSA_new _RSA_new = NULL; myRSA_free _RSA_free = NULL; mySSL_library_init _SSL_library_init; //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { RSA *rsa; unsigned long count = 0; libeay32DLL = LoadLibrary("libeay32.dll"); ssleay32DLL = LoadLibrary("ssleay32.dll"); if(libeay32DLL && ssleay32DLL) { _RSA_new = (myRSA_new) GetProcAddress(libeay32DLL,"RSA_new"); _RSA_free = (myRSA_free) GetProcAddress(libeay32DLL,"RSA_free"); _SSL_library_init = (mySSL_library_init) GetProcAddress(ssleay32DLL,"SSL_library_init"); } _SSL_library_init(); while(1) { if(++count %100 == 0) // whitout this, I get a stack overflow immediately Sleep(1); *_RSA_free(_RSA_new());* } return 0; } -- Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4704 Please log in as guest with password guest if prompted -- openssl-dev mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev