Fix memory leak in server with expired tickets
diff --git a/ChangeLog b/ChangeLog
index 591a91c..2dd0c28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -39,6 +39,8 @@
send() would return an EAGAIN error when sending the ticket.
* ssl_cache was leaking memory when reusing a timed out entry containing a
client certificate.
+ * ssl_srv was leaking memory when client presented a timed out ticket
+ containing a client certificate
= PolarSSL 1.3.4 released on 2014-01-27
Features
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index 99f7256..8549050 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -310,7 +310,7 @@
if( ( ret = ssl_load_session( &session, ticket, clear_len ) ) != 0 )
{
SSL_DEBUG_MSG( 1, ( "failed to parse ticket content" ) );
- memset( &session, 0, sizeof( ssl_session ) );
+ ssl_session_free( &session );
return( ret );
}
@@ -319,7 +319,7 @@
if( (int) ( time( NULL) - session.start ) > ssl->ticket_lifetime )
{
SSL_DEBUG_MSG( 1, ( "session ticket expired" ) );
- memset( &session, 0, sizeof( ssl_session ) );
+ ssl_session_free( &session );
return( POLARSSL_ERR_SSL_SESSION_TICKET_EXPIRED );
}
#endif