mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 11:17:29 +02:00
Fixes for scan-build warnings with ASN, PKCS12 and PKCS7.
This commit is contained in:
@ -3818,7 +3818,7 @@ int wc_RsaPublicKeyDecode_ex(const byte* input, word32* inOutIdx, word32 inSz,
|
|||||||
const byte** n, word32* nSz, const byte** e, word32* eSz)
|
const byte** n, word32* nSz, const byte** e, word32* eSz)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int length;
|
int length = 0;
|
||||||
#if defined(OPENSSL_EXTRA) || defined(RSA_DECODE_EXTRA)
|
#if defined(OPENSSL_EXTRA) || defined(RSA_DECODE_EXTRA)
|
||||||
byte b;
|
byte b;
|
||||||
#endif
|
#endif
|
||||||
@ -12369,10 +12369,11 @@ int wc_SetSubjectKeyId(Cert *cert, const char* file)
|
|||||||
WOLFSSL_MSG("wc_SetSubjectKeyId memory Problem");
|
WOLFSSL_MSG("wc_SetSubjectKeyId memory Problem");
|
||||||
return MEMORY_E;
|
return MEMORY_E;
|
||||||
}
|
}
|
||||||
|
derSz = MAX_PUBLIC_KEY_SZ;
|
||||||
|
|
||||||
derSz = wc_PemPubKeyToDer(file, der, MAX_PUBLIC_KEY_SZ);
|
XMEMSET(der, 0, derSz);
|
||||||
if (derSz <= 0)
|
derSz = wc_PemPubKeyToDer(file, der, derSz);
|
||||||
{
|
if (derSz <= 0) {
|
||||||
XFREE(der, cert->heap, DYNAMIC_TYPE_CERT);
|
XFREE(der, cert->heap, DYNAMIC_TYPE_CERT);
|
||||||
return derSz;
|
return derSz;
|
||||||
}
|
}
|
||||||
|
@ -416,7 +416,7 @@ static int GetSignData(WC_PKCS12* pkcs12, const byte* mem, word32* idx,
|
|||||||
ERROR_OUT(ASN_PARSE_E, exit_gsd);
|
ERROR_OUT(ASN_PARSE_E, exit_gsd);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ret = GetLength(mem, &curIdx, &size, totalSz)) <= 0) {
|
if ((ret = GetLength(mem, &curIdx, &size, totalSz)) < 0) {
|
||||||
goto exit_gsd;
|
goto exit_gsd;
|
||||||
}
|
}
|
||||||
mac->saltSz = size;
|
mac->saltSz = size;
|
||||||
@ -1050,7 +1050,7 @@ int wc_PKCS12_parse(WC_PKCS12* pkcs12, const char* psw,
|
|||||||
/* put the new node into the list */
|
/* put the new node into the list */
|
||||||
if (certList != NULL) {
|
if (certList != NULL) {
|
||||||
WOLFSSL_MSG("Pushing new cert onto queue");
|
WOLFSSL_MSG("Pushing new cert onto queue");
|
||||||
tailList->next = node;
|
certList->next = node;
|
||||||
tailList = node;
|
tailList = node;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -1108,6 +1108,7 @@ int wc_PKCS12_parse(WC_PKCS12* pkcs12, const char* psw,
|
|||||||
/* free list, not wanted */
|
/* free list, not wanted */
|
||||||
wc_FreeCertList(certList, pkcs12->heap);
|
wc_FreeCertList(certList, pkcs12->heap);
|
||||||
}
|
}
|
||||||
|
(void)tailList; /* not used */
|
||||||
|
|
||||||
ret = 0; /* success */
|
ret = 0; /* success */
|
||||||
|
|
||||||
|
@ -5464,6 +5464,14 @@ int wc_PKCS7_AddRecipient_KTRI(PKCS7* pkcs7, const byte* cert, word32 certSz,
|
|||||||
issuerSKIDSeqSz = SetExplicit(0, issuerSKIDSz + KEYID_SIZE,
|
issuerSKIDSeqSz = SetExplicit(0, issuerSKIDSz + KEYID_SIZE,
|
||||||
issuerSKIDSeq);
|
issuerSKIDSeq);
|
||||||
} else {
|
} else {
|
||||||
|
FreeDecodedCert(decoded);
|
||||||
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
|
XFREE(serial, pkcs7->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
XFREE(keyAlgArray, pkcs7->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
XFREE(encryptedKey, pkcs7->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
XFREE(decoded, pkcs7->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
#endif
|
||||||
|
XFREE(recip, pkcs7->heap, DYNAMIC_TYPE_PKCS7);
|
||||||
return PKCS7_RECIP_E;
|
return PKCS7_RECIP_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6731,7 +6739,7 @@ int wc_PKCS7_AddRecipient_KEKRI(PKCS7* pkcs7, int keyWrapOID, byte* kek,
|
|||||||
word32 recipSeqSz = 0, verSz = 0;
|
word32 recipSeqSz = 0, verSz = 0;
|
||||||
word32 kekIdSeqSz = 0, kekIdOctetStrSz = 0;
|
word32 kekIdSeqSz = 0, kekIdOctetStrSz = 0;
|
||||||
word32 otherAttSeqSz = 0, encAlgoIdSz = 0, encKeyOctetStrSz = 0;
|
word32 otherAttSeqSz = 0, encAlgoIdSz = 0, encKeyOctetStrSz = 0;
|
||||||
word32 encryptedKeySz;
|
int encryptedKeySz;
|
||||||
|
|
||||||
int timeSz = 0;
|
int timeSz = 0;
|
||||||
#ifndef NO_ASN_TIME
|
#ifndef NO_ASN_TIME
|
||||||
@ -6783,15 +6791,19 @@ int wc_PKCS7_AddRecipient_KEKRI(PKCS7* pkcs7, int keyWrapOID, byte* kek,
|
|||||||
encryptedKeySz = wc_PKCS7_KeyWrap(pkcs7->cek, pkcs7->cekSz, kek, kekSz,
|
encryptedKeySz = wc_PKCS7_KeyWrap(pkcs7->cek, pkcs7->cekSz, kek, kekSz,
|
||||||
encryptedKey, encryptedKeySz, keyWrapOID,
|
encryptedKey, encryptedKeySz, keyWrapOID,
|
||||||
direction);
|
direction);
|
||||||
if (encryptedKeySz <= 0) {
|
if (encryptedKeySz < 0) {
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
XFREE(encryptedKey, pkcs7->heap, DYNAMIC_TYPE_PKCS7);
|
XFREE(encryptedKey, pkcs7->heap, DYNAMIC_TYPE_PKCS7);
|
||||||
#endif
|
#endif
|
||||||
XFREE(recip, pkcs7->heap, DYNAMIC_TYPE_PKCS7);
|
XFREE(recip, pkcs7->heap, DYNAMIC_TYPE_PKCS7);
|
||||||
return encryptedKeySz;
|
return encryptedKeySz;
|
||||||
}
|
}
|
||||||
|
/* handle a zero size encKey case as WC_KEY_SIZE_E */
|
||||||
if (encryptedKeySz > MAX_ENCRYPTED_KEY_SZ) {
|
if (encryptedKeySz == 0 || encryptedKeySz > MAX_ENCRYPTED_KEY_SZ) {
|
||||||
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
|
XFREE(encryptedKey, pkcs7->heap, DYNAMIC_TYPE_PKCS7);
|
||||||
|
#endif
|
||||||
|
XFREE(recip, pkcs7->heap, DYNAMIC_TYPE_PKCS7);
|
||||||
return WC_KEY_SIZE_E;
|
return WC_KEY_SIZE_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user