From 955028f858aa3b5919726861a0ed5b066a71e159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Sat, 12 Jul 2014 01:27:34 +0200 Subject: [PATCH] Fix compile error in ssl_pthread_server --- ChangeLog | 1 + programs/ssl/ssl_pthread_server.c | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 52c8bd1ec..536d82983 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,7 @@ PolarSSL ChangeLog (Sorted per branch, date) = 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 cc6ad8901..019e4e87d 100644 --- a/programs/ssl/ssl_pthread_server.c +++ b/programs/ssl/ssl_pthread_server.c @@ -129,6 +129,10 @@ static void *handle_ssl_connection( void *data ) 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 @@ static void *handle_ssl_connection( void *data ) 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 @@ thread_exit: #endif net_close( client_fd ); + ctr_drbg_free( &ctr_drbg ); ssl_free( &ssl ); thread_info->thread_complete = 1; @@ -492,7 +497,6 @@ exit: #if defined(POLARSSL_SSL_CACHE_C) ssl_cache_free( &cache ); #endif - ctr_drbg_free( &ctr_drbg ); entropy_free( &entropy ); polarssl_mutex_free( &debug_mutex );