From 1eccaae25ff4db3676d15cd2c5151f9a810bf637 Mon Sep 17 00:00:00 2001 From: David Garske Date: Thu, 27 Dec 2018 11:07:32 -0800 Subject: [PATCH] Fix for DTLS async shrinking input buffer too soon and causing -308 (INCOMPLETE_DATA). --- src/internal.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/internal.c b/src/internal.c index c1f8cfb05..846a04db0 100644 --- a/src/internal.c +++ b/src/internal.c @@ -10858,7 +10858,13 @@ static int DoHandShakeMsgType(WOLFSSL* ssl, byte* input, word32* inOutIdx, SendAlert(ssl, alert_fatal, decode_error); ret = DECODE_E; } - if (ret == 0 && ssl->buffers.inputBuffer.dynamicFlag) { + + if (ret == 0 && ssl->buffers.inputBuffer.dynamicFlag + #if defined(WOLFSSL_ASYNC_CRYPT) || defined(WOLFSSL_NONBLOCK_OCSP) + /* do not shrink input for async or non-block */ + && ssl->error != WC_PENDING_E && ssl->error != OCSP_WANT_READ + #endif + ) { ShrinkInputBuffer(ssl, NO_FORCED_FREE); }