Fix compile error in ssl_pthread_server
diff --git a/ChangeLog b/ChangeLog
index 52c8bd1..536d829 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@
= 1.3 branch
Bugfix
* Support escaping of commas in x509_string_to_names()
+ * Fix compile error in ssl_pthread_server (found by Julian Ospald).
= PolarSSL 1.3.8 released 2014-07-11
Security
diff --git a/programs/ssl/ssl_pthread_server.c b/programs/ssl/ssl_pthread_server.c
index cc6ad89..019e4e8 100644
--- a/programs/ssl/ssl_pthread_server.c
+++ b/programs/ssl/ssl_pthread_server.c
@@ -129,6 +129,10 @@
ssl_context ssl;
ctr_drbg_context ctr_drbg;
+ /* Make sure memory references are valid */
+ memset( &ssl, 0, sizeof( ssl_context ) );
+ memset( &ctr_drbg, 0, sizeof( ctr_drbg_context ) );
+
snprintf( pers, sizeof(pers), "SSL Pthread Thread %d", thread_id );
printf( " [ #%d ] Client FD %d\n", thread_id, client_fd );
printf( " [ #%d ] Seeding the random number generator...\n", thread_id );
@@ -176,7 +180,7 @@
if( ( ret = ssl_set_own_cert( &ssl, thread_info->server_cert, thread_info->server_key ) ) != 0 )
{
printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret );
- goto exit;
+ goto thread_exit;
}
printf( " [ #%d ] ok\n", thread_id );
@@ -308,6 +312,7 @@
#endif
net_close( client_fd );
+ ctr_drbg_free( &ctr_drbg );
ssl_free( &ssl );
thread_info->thread_complete = 1;
@@ -492,7 +497,6 @@
#if defined(POLARSSL_SSL_CACHE_C)
ssl_cache_free( &cache );
#endif
- ctr_drbg_free( &ctr_drbg );
entropy_free( &entropy );
polarssl_mutex_free( &debug_mutex );