From c8bcfe476360b73bebb22d743617c199782472d9 Mon Sep 17 00:00:00 2001 From: TakayukiMatsuo <62984531+TakayukiMatsuo@users.noreply.github.com> Date: Tue, 14 Sep 2021 09:08:55 +0900 Subject: [PATCH] Add implementation to make wolfSSL_BIO_flush work for WOLFSSL_BIO_FILE (#4395) --- src/bio.c | 15 ++++++++++++--- wolfssl/wolfcrypt/wc_port.h | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/bio.c b/src/bio.c index 2ce59d2fc..fbdcdfd08 100644 --- a/src/bio.c +++ b/src/bio.c @@ -1842,9 +1842,18 @@ int wolfSSL_BIO_pending(WOLFSSL_BIO* bio) int wolfSSL_BIO_flush(WOLFSSL_BIO* bio) { - /* for wolfSSL no flushing needed */ WOLFSSL_ENTER("BIO_flush"); - (void)bio; - return 1; + + if (bio == NULL) + return WOLFSSL_FAILURE; + + if (bio->type == WOLFSSL_BIO_FILE) { +#if !defined(NO_FILESYSTEM) && defined(XFFLUSH) + if (XFFLUSH((FILE *)bio->ptr) != 0) + return WOLFSSL_FAILURE; + +#endif /* !NO_FILESYSTEM && XFFLUSH */ + } + return WOLFSSL_SUCCESS; } #endif /* WOLFSSL_BIO_INCLUDED */ diff --git a/wolfssl/wolfcrypt/wc_port.h b/wolfssl/wolfcrypt/wc_port.h index d579679bf..1e615a86c 100644 --- a/wolfssl/wolfcrypt/wc_port.h +++ b/wolfssl/wolfcrypt/wc_port.h @@ -972,6 +972,7 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XBADFILE NULL #define XFGETS fgets #define XFPRINTF fprintf + #define XFFLUSH fflush #if !defined(NO_WOLFSSL_DIR)\ && !defined(WOLFSSL_NUCLEUS) && !defined(WOLFSSL_NUCLEUS_1_2)