summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2021-06-01 11:17:27 +0200
committerDaniel Stenberg <daniel@haxx.se>2021-06-01 13:40:30 +0200
commitc7b93a76ea10c321c0377ccd5f100af17d1936cb (patch)
tree955ae2c588f1c04025cb25c9145ce42721d7d707
parentf1cd5004b0965884af0c1e5f268ae799e24f4f16 (diff)
downloadcurl-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.c9
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);