diff options
author | Daniel Stenberg <daniel@haxx.se> | 2021-06-01 11:17:27 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2021-06-01 13:40:30 +0200 |
commit | c7b93a76ea10c321c0377ccd5f100af17d1936cb (patch) | |
tree | 955ae2c588f1c04025cb25c9145ce42721d7d707 | |
parent | f1cd5004b0965884af0c1e5f268ae799e24f4f16 (diff) | |
download | curl-c7b93a76ea10c321c0377ccd5f100af17d1936cb.tar.gz |
vtls: exit addsessionid if no cache is inited
Follow-up to b249592d29ae0
Avoids NULL pointer derefs.
Closes #7165
-rw-r--r-- | lib/vtls/vtls.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index 1e6272b9f..e49f8eafb 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); |