提交 5178a16c 编写于 作者: M Matt Caswell

Fix DTLS1_BAD_VER regression

Commit 9cf0f187 in HEAD, and 68039af3 in 1.0.2, removed a version check
from dtls1_buffer_message() which was needed to distinguish between DTLS
1.x and Cisco's pre-standard version of DTLS (DTLS1_BAD_VER).

Based on an original patch by David Woodhouse <dwmw2@infradead.org>
RT#3703
Reviewed-by: NTim Hudson <tjh@openssl.org>
上级 a8ae0891
...@@ -1086,8 +1086,10 @@ int dtls1_buffer_message(SSL *s, int is_ccs) ...@@ -1086,8 +1086,10 @@ int dtls1_buffer_message(SSL *s, int is_ccs)
memcpy(frag->fragment, s->init_buf->data, s->init_num); memcpy(frag->fragment, s->init_buf->data, s->init_num);
if (is_ccs) { if (is_ccs) {
/* For DTLS1_BAD_VER the header length is non-standard */
OPENSSL_assert(s->d1->w_msg_hdr.msg_len + OPENSSL_assert(s->d1->w_msg_hdr.msg_len +
DTLS1_CCS_HEADER_LENGTH == (unsigned int)s->init_num); ((s->version==DTLS1_BAD_VER)?3:DTLS1_CCS_HEADER_LENGTH)
== (unsigned int)s->init_num);
} else { } else {
OPENSSL_assert(s->d1->w_msg_hdr.msg_len + OPENSSL_assert(s->d1->w_msg_hdr.msg_len +
DTLS1_HM_HEADER_LENGTH == (unsigned int)s->init_num); DTLS1_HM_HEADER_LENGTH == (unsigned int)s->init_num);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册