mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 02:37:28 +02:00
PKCS7: Check size in wc_PKCS7_InitWithCert before XMEMCPY to avoid overflow.
This commit is contained in:
@ -1100,6 +1100,16 @@ int wc_PKCS7_InitWithCert(PKCS7* pkcs7, byte* derCert, word32 derCertSz)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (dCert->pubKeySize > (MAX_RSA_INT_SZ + MAX_RSA_E_SZ) ||
|
||||
dCert->serialSz > MAX_SN_SZ) {
|
||||
WOLFSSL_MSG("Invalid size in certificate\n");
|
||||
FreeDecodedCert(dCert);
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
XFREE(dCert, pkcs7->heap, DYNAMIC_TYPE_DCERT);
|
||||
#endif
|
||||
return ASN_PARSE_E;
|
||||
}
|
||||
|
||||
XMEMCPY(pkcs7->publicKey, dCert->publicKey, dCert->pubKeySize);
|
||||
pkcs7->publicKeySz = dCert->pubKeySize;
|
||||
pkcs7->publicKeyOID = dCert->keyOID;
|
||||
|
Reference in New Issue
Block a user