Okey. Now i got no more memory leaks when I put the SSL code in main. However, if i try to put the exact same code in a thread the memory leak is back.
Here is the essential code I'm using; void lcserver::start() { SSL_library_init(); SSL_load_error_strings(); method = SSLv23_server_method(); ctx = SSL_CTX_new(method); Some windows socket code... while(acceptsocket = accept(listensocket,(sockaddr*)&sin,&len)) { struct clientinfo *client; client = new struct clientinfo(acceptsocket,sin.sin_addr.s_addr,clientid++,this,rooms[0]->getthis(),ctx); client->M1(); } } void clientinfo::M1() { CreateThread(0,0,(LPTHREAD_START_ROUTINE)M2,(LPVOID)this,0,0); } void clientinfo::M2(LPVOID param) { clientinfo* Call = (clientinfo*)param; Call->listenfor(); delete Call; return; } void clientinfo::listenfor() { SSL_set_bio(ssl,bio,bio); SSL_accept(ssl); while(SSL_shutdown(ssl) == 0) ; SSL_free(ssl); ERR_remove_state(0); } Just running this code which shouldn't leave any allocated memory, about 12 kb ram is still allocated. 2009/5/5 Nikos Balkanas <nbalka...@gmail.com> > Hi, > > Check the return value of SSL_shutdown(ssl). Sometimes it needs up to 4 > iterations to complete due to internal state machine. It completes when > the value != 0. Hope it helps. > > BR, > Nikos > > ----- Original Message ----- > *From:* Fabian Bergmark <fabian.bergm...@gmail.com> > *To:* openssl-users@openssl.org > *Sent:* Tuesday, May 05, 2009 9:13 PM > *Subject:* Openssl Memory leak > > Hi > > I am currently writing a Chat application using the Openssl library for > encryption. It's a multi-thread application and every client is managed by a > different thread. > However, ever since I implemented Openssl there seams to be a memory leak > of around 10 kb. > My openssl-code code is looking like following: > > SSL_set_bio(ssl,bio,bio); > SSL_accept(ssl); > SSL_shutdown(ssl); > SSL_free(ssl); > > where bio and ssl is class objects where BIO is set like > > bio = BIO_new_socket(s,BIO_NOCLOSE) > > The increased memory does not occur before SSL_accept(ssl). The first time > a client connect about a 100 kb is allocated, which I suppose is due to some > initialising function. For each new client about 0-20 kb are still allocated > after > > SSL_shutdown(ssl); > SSL_free(ssl); > > is issued. Is there some cleanup functions im forgetting? > > I am using windows btw. > >