From cbbe9186f3d625f98aecb3f4dd4aaf457066b25c Mon Sep 17 00:00:00 2001 From: Rich Salz Date: Tue, 11 Apr 2017 11:59:59 -0400 Subject: Additional check to handle BAD SSL_write retry Reviewed-by: Matt Caswell Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/3124) --- ssl/record/rec_layer_s3.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ssl/record/rec_layer_s3.c b/ssl/record/rec_layer_s3.c index 562b9e454b..14c6778ae6 100644 --- a/ssl/record/rec_layer_s3.c +++ b/ssl/record/rec_layer_s3.c @@ -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 * 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); return -1; } -- cgit v1.2.3