Ensure we are in accept state in DTLSv1_listen Calling SSL_set_accept_state() after DTLSv1_listen() clears the state, so SSL_accept() no longer works. In 1.0.2 calling DTLSv1_listen() would set the accept state automatically. We should still do that. Fixes #1989 Reviewed-by: Andy Polyakov <appro@openssl.org>
diff --git a/ssl/d1_lib.c b/ssl/d1_lib.c index 20970c3..c1d160e 100644 --- a/ssl/d1_lib.c +++ b/ssl/d1_lib.c
@@ -432,6 +432,11 @@ BIO_ADDR *tmpclient = NULL; PACKET pkt, msgpkt, msgpayload, session, cookiepkt; + if (s->handshake_func == NULL) { + /* Not properly initialized yet */ + SSL_set_accept_state(s); + } + /* Ensure there is no state left over from a previous invocation */ if (!SSL_clear(s)) return -1;