Encapsulate access to s->s3->wbuf

Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
Matt Caswell
2015-01-30 16:05:47 +00:00
parent 33d23b87a0
commit db9a32e719
6 changed files with 32 additions and 19 deletions

View File

@@ -619,6 +619,9 @@ int ssl3_setup_write_buffer(SSL *s)
{
unsigned char *p;
size_t len, align = 0, headerlen;
SSL3_BUFFER *wb;
wb = RECORD_LAYER_get_wbuf(&s->rlayer);
if (SSL_version(s) == DTLS1_VERSION || SSL_version(s) == DTLS1_BAD_VER)
headerlen = DTLS1_RT_HEADER_LENGTH + 1;
@@ -629,7 +632,7 @@ int ssl3_setup_write_buffer(SSL *s)
align = (-SSL3_RT_HEADER_LENGTH) & (SSL3_ALIGN_PAYLOAD - 1);
#endif
if (s->s3->wbuf.buf == NULL) {
if (wb->buf == NULL) {
len = s->max_send_fragment
+ SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD + headerlen + align;
#ifndef OPENSSL_NO_COMP
@@ -641,8 +644,8 @@ int ssl3_setup_write_buffer(SSL *s)
if ((p = OPENSSL_malloc(len)) == NULL)
goto err;
s->s3->wbuf.buf = p;
s->s3->wbuf.len = len;
wb->buf = p;
wb->len = len;
}
return 1;
@@ -663,9 +666,13 @@ int ssl3_setup_buffers(SSL *s)
int ssl3_release_write_buffer(SSL *s)
{
if (s->s3->wbuf.buf != NULL) {
OPENSSL_free(s->s3->wbuf.buf);
s->s3->wbuf.buf = NULL;
SSL3_BUFFER *wb;
wb = RECORD_LAYER_get_wbuf(&s->rlayer);
if (wb->buf != NULL) {
OPENSSL_free(wb->buf);
wb->buf = NULL;
}
return 1;
}