Loading ssl/record/rec_layer.h +1 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,7 @@ typedef struct record_layer_st { #define RECORD_LAYER_get_rrec(rl) (&(rl)->rrec) #define RECORD_LAYER_get_wrec(rl) (&(rl)->wrec) void RECORD_LAYER_clear(RECORD_LAYER *rl); __owur int ssl23_read_bytes(SSL *s, int n); __owur int ssl23_write_bytes(SSL *s); __owur int ssl3_write_bytes(SSL *s, int type, const void *buf, int len); Loading ssl/record/s3_pkt.c +27 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,33 @@ # define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0 #endif void RECORD_LAYER_clear(RECORD_LAYER *rl) { unsigned char *rp, *wp; size_t rlen, wlen; int read_ahead; SSL *s; s = rl->s; read_ahead = rl->read_ahead; rp = SSL3_BUFFER_get_buf(&rl->rbuf); rlen = SSL3_BUFFER_get_len(&rl->rbuf); wp = SSL3_BUFFER_get_buf(&rl->wbuf); wlen = SSL3_BUFFER_get_len(&rl->wbuf); memset(rl, 0, sizeof (RECORD_LAYER)); SSL3_BUFFER_set_buf(&rl->rbuf, rp); SSL3_BUFFER_set_len(&rl->rbuf, rlen); SSL3_BUFFER_set_buf(&rl->wbuf, wp); SSL3_BUFFER_set_len(&rl->wbuf, wlen); /* Do I need to do this? As far as I can tell read_ahead did not * previously get reset by SSL_clear...so I'll keep it that way..but is * that right? */ rl->read_ahead = read_ahead; rl->s = s; } int ssl3_read_n(SSL *s, int n, int max, int extend) { /* Loading ssl/ssl_lib.c +1 −21 Original line number Diff line number Diff line Loading @@ -189,10 +189,6 @@ SSL3_ENC_METHOD ssl3_undef_enc_method = { int SSL_clear(SSL *s) { unsigned char *rp, *wp; size_t rlen, wlen; int read_ahead; if (s->method == NULL) { SSLerr(SSL_F_SSL_CLEAR, SSL_R_NO_METHOD_SPECIFIED); return (0); Loading Loading @@ -245,23 +241,7 @@ int SSL_clear(SSL *s) } else s->method->ssl_clear(s); read_ahead = RECORD_LAYER_get_read_ahead(&s->rlayer); rp = SSL3_BUFFER_get_buf(RECORD_LAYER_get_rbuf(&s->rlayer)); rlen = SSL3_BUFFER_get_len(RECORD_LAYER_get_rbuf(&s->rlayer)); wp = SSL3_BUFFER_get_buf(RECORD_LAYER_get_wbuf(&s->rlayer)); wlen = SSL3_BUFFER_get_len(RECORD_LAYER_get_wbuf(&s->rlayer)); memset(&s->rlayer, 0, sizeof s->rlayer); SSL3_BUFFER_set_buf(RECORD_LAYER_get_rbuf(&s->rlayer), rp); SSL3_BUFFER_set_len(RECORD_LAYER_get_rbuf(&s->rlayer), rlen); SSL3_BUFFER_set_buf(RECORD_LAYER_get_wbuf(&s->rlayer), wp); SSL3_BUFFER_set_len(RECORD_LAYER_get_wbuf(&s->rlayer), wlen); /* Do I need to do this? As far as I can tell read_ahead did not * previously get reset by SSL_clear...so I'll keep it that way..but is * that right? */ RECORD_LAYER_set_read_ahead(&s->rlayer, read_ahead); RECORD_LAYER_set_ssl(&s->rlayer, s); RECORD_LAYER_clear(&s->rlayer); return (1); } Loading Loading
ssl/record/rec_layer.h +1 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,7 @@ typedef struct record_layer_st { #define RECORD_LAYER_get_rrec(rl) (&(rl)->rrec) #define RECORD_LAYER_get_wrec(rl) (&(rl)->wrec) void RECORD_LAYER_clear(RECORD_LAYER *rl); __owur int ssl23_read_bytes(SSL *s, int n); __owur int ssl23_write_bytes(SSL *s); __owur int ssl3_write_bytes(SSL *s, int type, const void *buf, int len); Loading
ssl/record/s3_pkt.c +27 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,33 @@ # define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0 #endif void RECORD_LAYER_clear(RECORD_LAYER *rl) { unsigned char *rp, *wp; size_t rlen, wlen; int read_ahead; SSL *s; s = rl->s; read_ahead = rl->read_ahead; rp = SSL3_BUFFER_get_buf(&rl->rbuf); rlen = SSL3_BUFFER_get_len(&rl->rbuf); wp = SSL3_BUFFER_get_buf(&rl->wbuf); wlen = SSL3_BUFFER_get_len(&rl->wbuf); memset(rl, 0, sizeof (RECORD_LAYER)); SSL3_BUFFER_set_buf(&rl->rbuf, rp); SSL3_BUFFER_set_len(&rl->rbuf, rlen); SSL3_BUFFER_set_buf(&rl->wbuf, wp); SSL3_BUFFER_set_len(&rl->wbuf, wlen); /* Do I need to do this? As far as I can tell read_ahead did not * previously get reset by SSL_clear...so I'll keep it that way..but is * that right? */ rl->read_ahead = read_ahead; rl->s = s; } int ssl3_read_n(SSL *s, int n, int max, int extend) { /* Loading
ssl/ssl_lib.c +1 −21 Original line number Diff line number Diff line Loading @@ -189,10 +189,6 @@ SSL3_ENC_METHOD ssl3_undef_enc_method = { int SSL_clear(SSL *s) { unsigned char *rp, *wp; size_t rlen, wlen; int read_ahead; if (s->method == NULL) { SSLerr(SSL_F_SSL_CLEAR, SSL_R_NO_METHOD_SPECIFIED); return (0); Loading Loading @@ -245,23 +241,7 @@ int SSL_clear(SSL *s) } else s->method->ssl_clear(s); read_ahead = RECORD_LAYER_get_read_ahead(&s->rlayer); rp = SSL3_BUFFER_get_buf(RECORD_LAYER_get_rbuf(&s->rlayer)); rlen = SSL3_BUFFER_get_len(RECORD_LAYER_get_rbuf(&s->rlayer)); wp = SSL3_BUFFER_get_buf(RECORD_LAYER_get_wbuf(&s->rlayer)); wlen = SSL3_BUFFER_get_len(RECORD_LAYER_get_wbuf(&s->rlayer)); memset(&s->rlayer, 0, sizeof s->rlayer); SSL3_BUFFER_set_buf(RECORD_LAYER_get_rbuf(&s->rlayer), rp); SSL3_BUFFER_set_len(RECORD_LAYER_get_rbuf(&s->rlayer), rlen); SSL3_BUFFER_set_buf(RECORD_LAYER_get_wbuf(&s->rlayer), wp); SSL3_BUFFER_set_len(RECORD_LAYER_get_wbuf(&s->rlayer), wlen); /* Do I need to do this? As far as I can tell read_ahead did not * previously get reset by SSL_clear...so I'll keep it that way..but is * that right? */ RECORD_LAYER_set_read_ahead(&s->rlayer, read_ahead); RECORD_LAYER_set_ssl(&s->rlayer, s); RECORD_LAYER_clear(&s->rlayer); return (1); } Loading