summaryrefslogtreecommitdiff
path: root/sys/arch/amd64/pci
diff options
context:
space:
mode:
authorJoel Sing <jsing@cvs.openbsd.org>2020-09-14 18:34:13 +0000
committerJoel Sing <jsing@cvs.openbsd.org>2020-09-14 18:34:13 +0000
commit7acbda27ee6c4cc0adc2996db60816a0466527ed (patch)
tree874415236be277148bd908b51b284778cdbc02bb /sys/arch/amd64/pci
parent285e26d73980bd782e2f1a94aa17a20e27231981 (diff)
Move state initialisation from SSL_clear() to ssl3_clear().
If we use the default method (now TLSv1.3) and end up talking to a TLSv1.2 server that gives us a session ticket, then try to resume that session, we end up trying to talk TLS without doing a handshake. This is caused by the state (S3I(s)->hs.state) getting cleared, which results in SSL_do_handshake() and others thinking they do not need to do anything (as SSL_in_init() and SSL_in_before() are not true). The reason this occurs is due to SSL_set_ssl_method() calling ssl_free() and ssl_new() when switching methods. The end result is that the S3I(s) has been freed and reallocated, losing the state in the process. Since the state is part of the S3I(s) structure, move its initialisation into ssl3_clear() - this ensures it gets correctly reinitialised across a SSL_set_ssl_method() call. Issue noticed by sthen@ with nginx and unifi. ok beck@ tb@
Diffstat (limited to 'sys/arch/amd64/pci')
0 files changed, 0 insertions, 0 deletions