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