From fb366f063efb45e1c61b12265e8ce693fcbcff95 Mon Sep 17 00:00:00 2001 From: Guido Vranken Date: Wed, 9 Jun 2021 19:16:07 +0200 Subject: [PATCH] Additional length check improvements in Base64_SkipNewline --- wolfcrypt/src/coding.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/wolfcrypt/src/coding.c b/wolfcrypt/src/coding.c index 1b6bd5795..a35fd4356 100644 --- a/wolfcrypt/src/coding.c +++ b/wolfcrypt/src/coding.c @@ -117,10 +117,18 @@ static WC_INLINE int Base64_SkipNewline(const byte* in, word32 *inLen, word32 *o { word32 len = *inLen; word32 j = *outJ; - byte curChar = in[j]; + byte curChar; + + if (len == 0) { + return BUFFER_E; + } + + curChar = in[j++]; + len--; + while (len && curChar == ' ') { /* skip whitespace in the middle or end of line */ - curChar = in[++j]; + curChar = in[j++]; len--; } if (len && (curChar == '\r' || curChar == '\n')) {