Check for NULL pkiMsg in wc_PKCS7_DecodeEncryptedKeyPackage()

This commit is contained in:
Josh Holtrop
2025-07-09 14:41:58 -04:00
parent d2ab6edbab
commit c83a452a3c
2 changed files with 6 additions and 0 deletions

View File

@@ -18319,6 +18319,7 @@ static int test_wc_PKCS7_DecodeEncryptedKeyPackage(void)
pkcs7->encryptionKeySz = sizeof(key); pkcs7->encryptionKeySz = sizeof(key);
} }
} }
ExpectIntEQ(wc_PKCS7_DecodeEncryptedKeyPackage(pkcs7, NULL, ekp_cms_der_size, out, sizeof(out)), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
result = wc_PKCS7_DecodeEncryptedKeyPackage(pkcs7, ekp_cms_der, ekp_cms_der_size, out, sizeof(out)); result = wc_PKCS7_DecodeEncryptedKeyPackage(pkcs7, ekp_cms_der, ekp_cms_der_size, out, sizeof(out));
if (result == WC_NO_ERR_TRACE(WC_PKCS7_WANT_READ_E)) { if (result == WC_NO_ERR_TRACE(WC_PKCS7_WANT_READ_E)) {
result = wc_PKCS7_DecodeEncryptedKeyPackage(pkcs7, ekp_cms_der, ekp_cms_der_size, out, sizeof(out)); result = wc_PKCS7_DecodeEncryptedKeyPackage(pkcs7, ekp_cms_der, ekp_cms_der_size, out, sizeof(out));

View File

@@ -14888,6 +14888,11 @@ WOLFSSL_API int wc_PKCS7_DecodeEncryptedKeyPackage(wc_PKCS7 * pkcs7,
int length = 0; int length = 0;
do { do {
if (pkiMsg == NULL) {
ret = BAD_FUNC_ARG;
break;
}
/* Expect a SEQUENCE header to start the EncryptedKeyPackage ContentInfo. */ /* Expect a SEQUENCE header to start the EncryptedKeyPackage ContentInfo. */
if (GetSequence_ex(pkiMsg, &pkiIndex, &length, pkiMsgSz, 1) < 0) { if (GetSequence_ex(pkiMsg, &pkiIndex, &length, pkiMsgSz, 1) < 0) {
ret = ASN_PARSE_E; ret = ASN_PARSE_E;