@ -862,6 +862,7 @@ void *SSLStateAlloc(void)
memset ( ssl_state , 0 , sizeof ( SSLState ) ) ;
memset ( ssl_state , 0 , sizeof ( SSLState ) ) ;
( ( SSLState * ) ssl_state ) - > client_connp . cert_log_flag = 0 ;
( ( SSLState * ) ssl_state ) - > client_connp . cert_log_flag = 0 ;
( ( SSLState * ) ssl_state ) - > server_connp . cert_log_flag = 0 ;
( ( SSLState * ) ssl_state ) - > server_connp . cert_log_flag = 0 ;
TAILQ_INIT ( & ( ( SSLState * ) ssl_state ) - > server_connp . certs ) ;
return ssl_state ;
return ssl_state ;
}
}
@ -873,6 +874,7 @@ void *SSLStateAlloc(void)
void SSLStateFree ( void * p )
void SSLStateFree ( void * p )
{
{
SSLState * ssl_state = ( SSLState * ) p ;
SSLState * ssl_state = ( SSLState * ) p ;
SSLCertsChain * item ;
if ( ssl_state - > client_connp . trec )
if ( ssl_state - > client_connp . trec )
SCFree ( ssl_state - > client_connp . trec ) ;
SCFree ( ssl_state - > client_connp . trec ) ;
@ -892,6 +894,13 @@ void SSLStateFree(void *p)
if ( ssl_state - > server_connp . cert0_fingerprint )
if ( ssl_state - > server_connp . cert0_fingerprint )
SCFree ( ssl_state - > server_connp . cert0_fingerprint ) ;
SCFree ( ssl_state - > server_connp . cert0_fingerprint ) ;
/* Free certificate chain */
while ( ( item = TAILQ_FIRST ( & ssl_state - > server_connp . certs ) ) ) {
TAILQ_REMOVE ( & ssl_state - > server_connp . certs , item , next ) ;
SCFree ( item ) ;
}
TAILQ_INIT ( & ssl_state - > server_connp . certs ) ;
SCFree ( ssl_state ) ;
SCFree ( ssl_state ) ;
return ;
return ;