Check for alerts while waiting for a dry event
authorMatt Caswell <matt@openssl.org>
Tue, 16 Jan 2018 10:48:01 +0000 (10:48 +0000)
committerMatt Caswell <matt@openssl.org>
Wed, 21 Mar 2018 10:32:15 +0000 (10:32 +0000)
commit041ddc366b6d18ee3993877a50299257e688c00c
treebf52815856bc9109f2b0fce22236dd1c8ab20d91
parent8e4057768586961942851d89287f43969352127a
Check for alerts while waiting for a dry event

At a couple of points in a DTLS/SCTP handshake we need to wait for a dry
event before continuing. However if an alert has been sent by the peer
then we will never receive that dry event and an infinite loop results.

This commit changes things so that we attempt to read a message if we
are waiting for a dry event but haven't got one yet. This should never
succeed, but any alerts will be processed.

Fixes #4763

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5085)
include/openssl/ssl.h
ssl/ssl_err.c
ssl/statem/statem_dtls.c