From 90140fc5a4398f38503e7e4d434a77144902377c Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Thu, 11 Feb 2021 21:50:51 +0700 Subject: [PATCH] always check index into certs --- src/internal.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/internal.c b/src/internal.c index 81aab0621..5687846b6 100644 --- a/src/internal.c +++ b/src/internal.c @@ -10876,7 +10876,14 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx, while (listSz) { word32 certSz; - #if !defined(OPENSSL_EXTRA) && !defined(OPENSS_EXTRA_X509_SMALL) + + #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) + if (args->totalCerts > ssl->verifyDepth) { + ssl->peerVerifyRet = X509_V_ERR_CERT_CHAIN_TOO_LONG; + ret = MAX_CHAIN_ERROR; + break; /* break out to do certificate verify callback */ + } + #else if (args->totalCerts >= ssl->verifyDepth || args->totalCerts >= MAX_CHAIN_DEPTH) { ERROR_OUT(MAX_CHAIN_ERROR, exit_ppc);