From: Daniel Stenberg Date: Wed, 9 Jan 2002 09:38:37 +0000 (+0000) Subject: Cris Bailiff found out that when the SSL session cache was filled, libcurl X-Git-Tag: curl-7_9_3-pre2~24 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d84a0c51e0fe467a5aa7446e4183ea99c3ae3c94;p=curl Cris Bailiff found out that when the SSL session cache was filled, libcurl would crash. This corrects the problem. --- diff --git a/lib/ssluse.c b/lib/ssluse.c index 47ae497f0..21f27cdfb 100644 --- a/lib/ssluse.c +++ b/lib/ssluse.c @@ -552,9 +552,9 @@ int Curl_SSL_Close_All(struct SessionHandle *data) static int Store_SSL_Session(struct connectdata *conn) { SSL_SESSION *ssl_sessionid; - struct curl_ssl_session *store; int i; struct SessionHandle *data=conn->data; /* the mother of all structs */ + struct curl_ssl_session *store = &data->state.session[0]; int oldest_age=data->state.session[0].age; /* zero if unused */ /* ask OpenSSL, say please */ @@ -568,7 +568,8 @@ static int Store_SSL_Session(struct connectdata *conn) the oldest if necessary) */ /* find an empty slot for us, or find the oldest */ - for(i=0; (iset.ssl.numsessions) && data->state.session[i].sessionid; i++) { + for(i=1; (iset.ssl.numsessions) && + data->state.session[i].sessionid; i++) { if(data->state.session[i].age < oldest_age) { oldest_age = data->state.session[i].age; store = &data->state.session[i];