diff --git a/wolfcrypt/src/pkcs7.c b/wolfcrypt/src/pkcs7.c index 504fe990e..fcea611fc 100644 --- a/wolfcrypt/src/pkcs7.c +++ b/wolfcrypt/src/pkcs7.c @@ -4610,8 +4610,13 @@ static int PKCS7_VerifySignedData(PKCS7* pkcs7, const byte* hashBuf, ret = ASN_PARSE_E; } /* if indef, skip EOF */ - if (isIndef && pkiMsg[idx] == ASN_EOC && pkiMsg[idx+1] == 0) { - idx += 2; /* skip EOF + zero byte */ + if (isIndef) { + if (idx + 1 >= pkiMsgSz) { + ret = ASN_PARSE_E; + } + else if (pkiMsg[idx] == ASN_EOC && pkiMsg[idx+1] == 0) { + idx += 2; /* skip EOF + zero byte */ + } } }