Additional check to handle BAD SSL_write retry

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3124)
This commit is contained in:
Rich Salz 2017-04-11 11:59:59 -04:00
parent 0856e3f167
commit cbbe9186f3

View File

@ -356,7 +356,8 @@ int ssl3_write_bytes(SSL *s, int type, const void *buf_, size_t len,
* promptly send beyond the end of the users buffer ... so we trap and * promptly send beyond the end of the users buffer ... so we trap and
* report the error in a way the user will notice * report the error in a way the user will notice
*/ */
if (len < s->rlayer.wnum) { if ((len < s->rlayer.wnum)
|| ((wb->left != 0) && (len < (s->rlayer.wnum + s->rlayer.wpend_tot)))) {
SSLerr(SSL_F_SSL3_WRITE_BYTES, SSL_R_BAD_LENGTH); SSLerr(SSL_F_SSL3_WRITE_BYTES, SSL_R_BAD_LENGTH);
return -1; return -1;
} }