提交 5bdcd362 编写于 作者: M Matt Caswell

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: NAndy Polyakov <appro@openssl.org>
上级 8d1ebff4
...@@ -432,6 +432,11 @@ int DTLSv1_listen(SSL *s, BIO_ADDR *client) ...@@ -432,6 +432,11 @@ int DTLSv1_listen(SSL *s, BIO_ADDR *client)
BIO_ADDR *tmpclient = NULL; BIO_ADDR *tmpclient = NULL;
PACKET pkt, msgpkt, msgpayload, session, cookiepkt; 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 */ /* Ensure there is no state left over from a previous invocation */
if (!SSL_clear(s)) if (!SSL_clear(s))
return -1; return -1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册