Cris Bailiff found out that when the SSL session cache was filled, libcurl

would crash. This corrects the problem.
This commit is contained in:
Daniel Stenberg 2002-01-09 09:38:37 +00:00
Родитель d9a7c7de51
Коммит d84a0c51e0
1 изменённых файлов: 3 добавлений и 2 удалений

Просмотреть файл

@ -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; (i<data->set.ssl.numsessions) && data->state.session[i].sessionid; i++) {
for(i=1; (i<data->set.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];