Hi,

While working on DTLS, in d1_both.c:dtls1_get_message_fragment():787~866

There are calls to  OPENSSL_assert (line 787):
        /* read handshake message header */
        i=s->method->ssl_read_bytes(s,SSL3_RT_HANDSHAKE,wire,
                DTLS1_HM_HEADER_LENGTH, 0);
        if (i <= 0)     /* nbio, or an error */ 
                {
                s->rwstate=SSL_READING;
                *ok = 0;
                return i;
                }
        OPENSSL_assert(i == DTLS1_HM_HEADER_LENGTH);
...
and line 866:
        /* XDTLS:  an incorrectly formatted fragment should cause the 
         * handshake to fail */
        OPENSSL_assert(i == (int)frag_len);

The two calls causing program to abort when incorrectly formatted fragment is 
received.  Does it really so serious that a program restart is needed?

At the end of the function, there is an error label (line 904)
f_err:
        ssl3_send_alert(s,SSL3_AL_FATAL,al);
        s->init_num = 0;

        *ok=0;
        return(-1);
        }
The above two test could goto f_err in stead of aborting the whole program.


>From a user point of view, the abort is not good, it is not so an fatal error 
>from my understanding.  Please enlighten me if I miss something.

--
qun-ying
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to