Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
Approved by: steve@openssl.org

Fix DTLS record header length bug.
This commit is contained in:
Dr. Stephen Henson
2009-09-04 16:42:17 +00:00
parent 11d655ef40
commit e8cce0babe

View File

@@ -587,9 +587,14 @@ int ssl_verify_alarm_type(long type)
int ssl3_setup_buffers(SSL *s) int ssl3_setup_buffers(SSL *s)
{ {
unsigned char *p; unsigned char *p;
unsigned int extra; unsigned int extra,headerlen;
size_t len; size_t len;
if (SSL_version(s) == DTLS1_VERSION || SSL_version(s) == DTLS1_BAD_VER)
headerlen = DTLS1_RT_HEADER_LENGTH;
else
headerlen = SSL3_RT_HEADER_LENGTH;
if (s->s3->rbuf.buf == NULL) if (s->s3->rbuf.buf == NULL)
{ {
if (s->options & SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER) if (s->options & SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER)
@@ -606,7 +611,7 @@ int ssl3_setup_buffers(SSL *s)
if (s->s3->wbuf.buf == NULL) if (s->s3->wbuf.buf == NULL)
{ {
len = SSL3_RT_MAX_PACKET_SIZE; len = SSL3_RT_MAX_PACKET_SIZE;
len += SSL3_RT_HEADER_LENGTH + 256; /* extra space for empty fragment */ len += headerlen + 256; /* extra space for empty fragment */
if ((p=OPENSSL_malloc(len)) == NULL) if ((p=OPENSSL_malloc(len)) == NULL)
goto err; goto err;
s->s3->wbuf.buf = p; s->s3->wbuf.buf = p;