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

move the ssl config clone call to before the connectionexists call and then

also subsequently free the ssl struct if the connection struct is to be
deleted
parent ad6fca28
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
@@ -2629,6 +2629,11 @@ static CURLcode CreateConnection(struct SessionHandle *data,
   * new one.
   * new one.
   *************************************************************/
   *************************************************************/


  /* get a cloned copy of the SSL config situation stored in the 
     connection struct */
  if(!Curl_clone_ssl_config(&data->set.ssl, &conn->ssl_config))
    return CURLE_OUT_OF_MEMORY;

  /* reuse_fresh is set TRUE if we are told to use a fresh connection
  /* reuse_fresh is set TRUE if we are told to use a fresh connection
     by force */
     by force */
  if(!data->set.reuse_fresh &&
  if(!data->set.reuse_fresh &&
@@ -2645,6 +2650,10 @@ static CURLcode CreateConnection(struct SessionHandle *data,
    if(old_conn->proxyhost)
    if(old_conn->proxyhost)
      free(old_conn->proxyhost);
      free(old_conn->proxyhost);


    /* free the SSL config struct from this connection struct as this was
       allocated in vain and is targeted for destruction */
    Curl_free_ssl_config(&conn->ssl_config);

    conn = conn_temp;        /* use this connection from now on */
    conn = conn_temp;        /* use this connection from now on */


    /* get the user+password information from the old_conn struct since it may
    /* get the user+password information from the old_conn struct since it may
@@ -2709,9 +2718,6 @@ static CURLcode CreateConnection(struct SessionHandle *data,
    ConnectionStore(data, conn);
    ConnectionStore(data, conn);
  }
  }


  if(!Curl_clone_ssl_config(&data->set.ssl, &conn->ssl_config))
    return CURLE_OUT_OF_MEMORY;

  /* Continue connectdata initialization here.
  /* Continue connectdata initialization here.
   *
   *
   * Inherit the proper values from the urldata struct AFTER we have arranged
   * Inherit the proper values from the urldata struct AFTER we have arranged