diff options
author | Matt Caswell <matt@openssl.org> | 2015-09-07 22:00:36 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2015-10-30 08:32:44 +0000 |
commit | 473483d42db5d176946323ac390fcd3c80ea40e6 (patch) | |
tree | ebbfea748160a0ed690841b795c629cfc4091d31 /ssl/s3_both.c | |
parent | 76af303761670cd54a93f1b196bcd7b2eaf7c29c (diff) |
Implement DTLS client move to new state machine
Move all DTLS client side processing into the new state machine code. A
subsequent commit will clean up the old dead code.
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'ssl/s3_both.c')
-rw-r--r-- | ssl/s3_both.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/ssl/s3_both.c b/ssl/s3_both.c index 1829feb243..2afde72a63 100644 --- a/ssl/s3_both.c +++ b/ssl/s3_both.c @@ -461,8 +461,15 @@ enum WORK_STATE tls_finish_handshake(SSL *s, enum WORK_STATE wst) /* clean a few things up */ ssl3_cleanup_key_block(s); - BUF_MEM_free(s->init_buf); - s->init_buf = NULL; + + if (!SSL_IS_DTLS(s)) { + /* + * We don't do this in DTLS because we may still need the init_buf + * in case there are any unexpected retransmits + */ + BUF_MEM_free(s->init_buf); + s->init_buf = NULL; + } ssl_free_wbio_buffer(s); |