Skip to content

Commit

Permalink
There is only one read buffer
Browse files Browse the repository at this point in the history
Pipelining introduced the concept of multiple records being read in one
go. Therefore we work with an array of SSL3_RECORD objects. The pipelining
change erroneously made a change in ssl3_get_record() to apply the current
record offset to the SSL3_BUFFER we are using for reading. This is wrong -
there is only ever one read buffer. This reverts that change. In practice
this should make little difference because the code block in question is
only ever used when we are processing a single record.

Reviewed-by: Viktor Dukhovni <[email protected]>
  • Loading branch information
mattcaswell committed May 17, 2016
1 parent 5507b96 commit 6da5739
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion ssl/record/ssl3_record.c
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ int ssl3_get_record(SSL *s)

rr[num_recs].length = ((p[0] & 0x7f) << 8) | p[1];

if (rr[num_recs].length > SSL3_BUFFER_get_len(&rbuf[num_recs])
if (rr[num_recs].length > SSL3_BUFFER_get_len(rbuf)
- SSL2_RT_HEADER_LENGTH) {
al = SSL_AD_RECORD_OVERFLOW;
SSLerr(SSL_F_SSL3_GET_RECORD, SSL_R_PACKET_LENGTH_TOO_LONG);
Expand Down

0 comments on commit 6da5739

Please sign in to comment.