diff options
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/bio/bf_buff.c | 2 | ||||
-rw-r--r-- | crypto/bio/bf_lbuf.c | 2 | ||||
-rw-r--r-- | crypto/comp/c_brotli.c | 4 | ||||
-rw-r--r-- | crypto/comp/c_zlib.c | 4 | ||||
-rw-r--r-- | crypto/comp/c_zstd.c | 4 | ||||
-rw-r--r-- | crypto/evp/bio_b64.c | 1 | ||||
-rw-r--r-- | crypto/evp/bio_enc.c | 1 | ||||
-rw-r--r-- | crypto/evp/bio_ok.c | 1 |
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); |