summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'crypto')
-rw-r--r--crypto/bio/bf_buff.c2
-rw-r--r--crypto/bio/bf_lbuf.c2
-rw-r--r--crypto/comp/c_brotli.c4
-rw-r--r--crypto/comp/c_zlib.c4
-rw-r--r--crypto/comp/c_zstd.c4
-rw-r--r--crypto/evp/bio_b64.c1
-rw-r--r--crypto/evp/bio_enc.c1
-rw-r--r--crypto/evp/bio_ok.c1
8 files changed, 16 insertions, 3 deletions
diff --git a/crypto/bio/bf_buff.c b/crypto/bio/bf_buff.c
index b94c58c0a3..bad465c072 100644
--- a/crypto/bio/bf_buff.c
+++ b/crypto/bio/bf_buff.c
@@ -360,6 +360,7 @@ static long buffer_ctrl(BIO *b, int cmd, long num, void *ptr)
return 0;
if (ctx->obuf_len <= 0) {
ret = BIO_ctrl(b->next_bio, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
}
@@ -380,6 +381,7 @@ static long buffer_ctrl(BIO *b, int cmd, long num, void *ptr)
}
}
ret = BIO_ctrl(b->next_bio, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
case BIO_CTRL_DUP:
dbio = (BIO *)ptr;
diff --git a/crypto/bio/bf_lbuf.c b/crypto/bio/bf_lbuf.c
index eb23c88647..170e375e7f 100644
--- a/crypto/bio/bf_lbuf.c
+++ b/crypto/bio/bf_lbuf.c
@@ -259,6 +259,7 @@ static long linebuffer_ctrl(BIO *b, int cmd, long num, void *ptr)
return 0;
if (ctx->obuf_len <= 0) {
ret = BIO_ctrl(b->next_bio, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
}
@@ -278,6 +279,7 @@ static long linebuffer_ctrl(BIO *b, int cmd, long num, void *ptr)
}
}
ret = BIO_ctrl(b->next_bio, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
case BIO_CTRL_DUP:
dbio = (BIO *)ptr;
diff --git a/crypto/comp/c_brotli.c b/crypto/comp/c_brotli.c
index 2d98b63a89..df63a43b41 100644
--- a/crypto/comp/c_brotli.c
+++ b/crypto/comp/c_brotli.c
@@ -716,8 +716,10 @@ static long bio_brotli_ctrl(BIO *b, int cmd, long num, void *ptr)
case BIO_CTRL_FLUSH:
ret = bio_brotli_flush(b);
- if (ret > 0)
+ if (ret > 0) {
ret = BIO_flush(next);
+ BIO_copy_next_retry(b);
+ }
break;
case BIO_C_SET_BUFF_SIZE:
diff --git a/crypto/comp/c_zlib.c b/crypto/comp/c_zlib.c
index 90a1840ecd..52f2e26a73 100644
--- a/crypto/comp/c_zlib.c
+++ b/crypto/comp/c_zlib.c
@@ -640,8 +640,10 @@ static long bio_zlib_ctrl(BIO *b, int cmd, long num, void *ptr)
case BIO_CTRL_FLUSH:
ret = bio_zlib_flush(b);
- if (ret > 0)
+ if (ret > 0) {
ret = BIO_flush(next);
+ BIO_copy_next_retry(b);
+ }
break;
case BIO_C_SET_BUFF_SIZE:
diff --git a/crypto/comp/c_zstd.c b/crypto/comp/c_zstd.c
index 17dc0f64a4..7f6c5cc72c 100644
--- a/crypto/comp/c_zstd.c
+++ b/crypto/comp/c_zstd.c
@@ -762,8 +762,10 @@ static long bio_zstd_ctrl(BIO *b, int cmd, long num, void *ptr)
case BIO_CTRL_FLUSH:
ret = bio_zstd_flush(b);
- if (ret > 0)
+ if (ret > 0) {
ret = BIO_flush(next);
+ BIO_copy_next_retry(b);
+ }
break;
case BIO_C_SET_BUFF_SIZE:
diff --git a/crypto/evp/bio_b64.c b/crypto/evp/bio_b64.c
index 0292c678c9..4822d37ea4 100644
--- a/crypto/evp/bio_b64.c
+++ b/crypto/evp/bio_b64.c
@@ -496,6 +496,7 @@ static long b64_ctrl(BIO *b, int cmd, long num, void *ptr)
}
/* Finally flush the underlying BIO */
ret = BIO_ctrl(next, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
case BIO_C_DO_STATE_MACHINE:
diff --git a/crypto/evp/bio_enc.c b/crypto/evp/bio_enc.c
index a284b6d9eb..4a2e5a8303 100644
--- a/crypto/evp/bio_enc.c
+++ b/crypto/evp/bio_enc.c
@@ -360,6 +360,7 @@ static long enc_ctrl(BIO *b, int cmd, long num, void *ptr)
/* Finally flush the underlying BIO */
ret = BIO_ctrl(next, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
case BIO_C_GET_CIPHER_STATUS:
ret = (long)ctx->ok;
diff --git a/crypto/evp/bio_ok.c b/crypto/evp/bio_ok.c
index a07c9c5998..a72acfb39b 100644
--- a/crypto/evp/bio_ok.c
+++ b/crypto/evp/bio_ok.c
@@ -372,6 +372,7 @@ static long ok_ctrl(BIO *b, int cmd, long num, void *ptr)
/* Finally flush the underlying BIO */
ret = BIO_ctrl(next, cmd, num, ptr);
+ BIO_copy_next_retry(b);
break;
case BIO_C_DO_STATE_MACHINE:
BIO_clear_retry_flags(b);