tls: delay handshake structure init

pull/14564/head
Victor Julien 10 months ago
parent 4d9c0bdb19
commit 9075d73e6d

@ -1620,6 +1620,9 @@ static int SSLv3ParseHandshakeType(SSLState *ssl_state, const uint8_t *input,
case SSLV3_HS_CLIENT_HELLO:
ssl_state->current_flags = SSL_AL_FLAG_STATE_CLIENT_HELLO;
if (ssl_state->curr_connp->hs == NULL)
ssl_state->curr_connp->hs = SCTLSHandshakeNew();
rc = TLSDecodeHandshakeHello(ssl_state, input, input_len);
if (rc < 0)
return rc;
@ -1629,6 +1632,9 @@ static int SSLv3ParseHandshakeType(SSLState *ssl_state, const uint8_t *input,
ssl_state->current_flags = SSL_AL_FLAG_STATE_SERVER_HELLO;
DEBUG_VALIDATE_BUG_ON(ssl_state->curr_connp->message_length != input_len);
if (ssl_state->curr_connp->hs == NULL)
ssl_state->curr_connp->hs = SCTLSHandshakeNew();
rc = TLSDecodeHandshakeHello(ssl_state, input, input_len);
if (rc < 0)
return rc;
@ -2823,8 +2829,6 @@ static void *SSLStateAlloc(void *orig_state, AppProto proto_orig)
SSLState *ssl_state = SCCalloc(1, sizeof(SSLState));
if (unlikely(ssl_state == NULL))
return NULL;
ssl_state->client_connp.hs = SCTLSHandshakeNew();
ssl_state->server_connp.hs = SCTLSHandshakeNew();
TAILQ_INIT(&ssl_state->server_connp.certs);
TAILQ_INIT(&ssl_state->client_connp.certs);

Loading…
Cancel
Save