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')) {