summaryrefslogtreecommitdiffstats
path: root/crypto/evp
diff options
context:
space:
mode:
authorihciah <ihciah@gmail.com>2023-05-11 09:30:14 +0000
committerTodd Short <todd.short@me.com>2023-08-04 10:30:58 -0400
commitbcbc7d60679b79fa4347e33c865306dce41ed985 (patch)
tree6c679fda97f2d353cb6106ab7889a4ca692474c9 /crypto/evp
parente1b6ecbab41514f45e9c355d01400691f74041c4 (diff)
bio: pass flags on BIO_ctrl to make flush retriable
Co-authored-by: suikammd <suikalala@gmail.com> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> (Merged from https://github.com/openssl/openssl/pull/21298)
Diffstat (limited to 'crypto/evp')
-rw-r--r--crypto/evp/bio_b64.c1
-rw-r--r--crypto/evp/bio_enc.c1
-rw-r--r--crypto/evp/bio_ok.c1
3 files changed, 3 insertions, 0 deletions
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);