Commit 5bdcd362 authored by Matt Caswell's avatar Matt Caswell
Browse files

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: default avatarAndy Polyakov <appro@openssl.org>
parent 8d1ebff4
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -432,6 +432,11 @@ int DTLSv1_listen(SSL *s, BIO_ADDR *client)
    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;