aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl_gnutls.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ssl_gnutls.c')
-rw-r--r--lib/ssl_gnutls.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/ssl_gnutls.c b/lib/ssl_gnutls.c
index b698e630..f6bdd6b2 100644
--- a/lib/ssl_gnutls.c
+++ b/lib/ssl_gnutls.c
@@ -235,7 +235,7 @@ struct ssl_session
static void ssl_cache_add( struct scd *conn )
{
- size_t data_size;
+ size_t data_size = 0;
struct ssl_session *data;
char *hostname;
@@ -244,7 +244,7 @@ static void ssl_cache_add( struct scd *conn )
return;
data = g_malloc( sizeof( struct ssl_session ) + data_size );
- if( gnutls_session_get_data( conn->session, data->data, &data->size ) != 0 )
+ if( gnutls_session_get_data( conn->session, data->data, &data_size ) != 0 )
{
g_free( data );
return;
@@ -334,6 +334,9 @@ static gboolean ssl_handshake( gpointer data, gint source, b_input_condition con
struct scd *conn = data;
int st, stver;
+ /* This function returns false, so avoid calling b_event_remove again */
+ conn->inpa = -1;
+
if( ( st = gnutls_handshake( conn->session ) ) < 0 )
{
if( st == GNUTLS_E_AGAIN || st == GNUTLS_E_INTERRUPTED )