diff options
author | Matt Caswell <matt@openssl.org> | 2015-01-30 14:57:54 +0000 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2015-03-26 13:53:07 +0000 |
commit | 28d59af8740680c89e22ac19304457f2163e4371 (patch) | |
tree | e0b10c2bf091e6fa6ef824141837bba5803d59ee /ssl/s3_pkt.c | |
parent | 52e1d7b152a92d4fc2c3704a0129ec0ee0ce5e21 (diff) | |
download | openssl-28d59af8740680c89e22ac19304457f2163e4371.tar.gz |
Encapsulate SSL3_BUFFER and all access to s->s3->rbuf.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'ssl/s3_pkt.c')
-rw-r--r-- | ssl/s3_pkt.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/ssl/s3_pkt.c b/ssl/s3_pkt.c index a196a427f2..733ed91f4a 100644 --- a/ssl/s3_pkt.c +++ b/ssl/s3_pkt.c @@ -153,7 +153,7 @@ int ssl3_read_n(SSL *s, int n, int max, int extend) if (n <= 0) return n; - rb = &(s->s3->rbuf); + rb = RECORD_LAYER_get_rbuf(&s->rlayer); if (rb->buf == NULL) if (!ssl3_setup_read_buffer(s)) return -1; @@ -336,7 +336,8 @@ static int ssl3_get_record(SSL *s) /* check if we have the header */ if ((s->rstate != SSL_ST_READ_BODY) || (s->packet_length < SSL3_RT_HEADER_LENGTH)) { - n = ssl3_read_n(s, SSL3_RT_HEADER_LENGTH, s->s3->rbuf.len, 0); + n = ssl3_read_n(s, SSL3_RT_HEADER_LENGTH, + SSL3_BUFFER_get_len(RECORD_LAYER_get_rbuf(&s->rlayer)), 0); if (n <= 0) return (n); /* error or non-blocking */ s->rstate = SSL_ST_READ_BODY; @@ -373,7 +374,9 @@ static int ssl3_get_record(SSL *s) goto err; } - if (rr->length > s->s3->rbuf.len - SSL3_RT_HEADER_LENGTH) { + if (rr->length > + SSL3_BUFFER_get_len(RECORD_LAYER_get_rbuf(&s->rlayer)) + - SSL3_RT_HEADER_LENGTH) { al = SSL_AD_RECORD_OVERFLOW; SSLerr(SSL_F_SSL3_GET_RECORD, SSL_R_PACKET_LENGTH_TOO_LONG); goto f_err; @@ -1174,9 +1177,11 @@ int ssl3_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) SSL3_RECORD *rr; void (*cb) (const SSL *ssl, int type2, int val) = NULL; - if (s->s3->rbuf.buf == NULL) /* Not initialized yet */ + if (!SSL3_BUFFER_is_initialised(RECORD_LAYER_get_rbuf(&s->rlayer))) { + /* Not initialized yet */ if (!ssl3_setup_read_buffer(s)) return (-1); + } if ((type && (type != SSL3_RT_APPLICATION_DATA) && (type != SSL3_RT_HANDSHAKE)) || (peek @@ -1288,7 +1293,8 @@ int ssl3_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) s->rstate = SSL_ST_READ_HEADER; rr->off = 0; if (s->mode & SSL_MODE_RELEASE_BUFFERS - && s->s3->rbuf.left == 0) + && SSL3_BUFFER_get_left( + RECORD_LAYER_get_rbuf(&s->rlayer)) == 0) ssl3_release_read_buffer(s); } } @@ -1391,7 +1397,9 @@ int ssl3_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) } if (!(s->mode & SSL_MODE_AUTO_RETRY)) { - if (s->s3->rbuf.left == 0) { /* no read-ahead left? */ + if (SSL3_BUFFER_get_left( + RECORD_LAYER_get_rbuf(&s->rlayer)) == 0) { + /* no read-ahead left? */ BIO *bio; /* * In the case where we try to read application data, @@ -1563,7 +1571,8 @@ int ssl3_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) } if (!(s->mode & SSL_MODE_AUTO_RETRY)) { - if (s->s3->rbuf.left == 0) { /* no read-ahead left? */ + if (SSL3_BUFFER_get_left(RECORD_LAYER_get_rbuf(&s->rlayer)) == 0) { + /* no read-ahead left? */ BIO *bio; /* * In the case where we try to read application data, but we |