Commit d84a0c51 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

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

would crash. This corrects the problem.
parent d9a7c7de
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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];