From: Daniel Stenberg Date: Tue, 1 Jun 2021 09:17:27 +0000 (+0200) Subject: vtls: exit addsessionid if no cache is inited X-Git-Tag: curl-7_78_0~232 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c7b93a76ea10c321c0377ccd5f100af17d1936cb;p=thirdparty%2Fcurl.git vtls: exit addsessionid if no cache is inited Follow-up to b249592d29ae0 Avoids NULL pointer derefs. Closes #7165 --- diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index 1e6272b9f2..e49f8eafb2 100644 --- a/lib/vtls/vtls.c +++ b/lib/vtls/vtls.c @@ -499,8 +499,8 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data, int sockindex) { size_t i; - struct Curl_ssl_session *store = &data->state.session[0]; - long oldest_age = data->state.session[0].age; /* zero if unused */ + struct Curl_ssl_session *store; + long oldest_age; char *clone_host; char *clone_conn_to_host; int conn_to_port; @@ -516,6 +516,11 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data, const char *hostname = conn->host.name; #endif (void)sockindex; + if(!data->state.session) + return CURLE_OK; + + store = &data->state.session[0]; + oldest_age = data->state.session[0].age; /* zero if unused */ DEBUGASSERT(SSL_SET_OPTION(primary.sessionid)); clone_host = strdup(hostname);