mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +02:00
Merge pull request #6922 from JacobBarthelmeh/coverity
clean up some coverity reports
This commit is contained in:
@ -13353,6 +13353,7 @@ int LoadCertByIssuer(WOLFSSL_X509_STORE* store, X509_NAME* issuer, int type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
XFREE(filename, NULL, DYNAMIC_TYPE_OPENSSL);
|
XFREE(filename, NULL, DYNAMIC_TYPE_OPENSSL);
|
||||||
|
filename = NULL;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
(void) type;
|
(void) type;
|
||||||
@ -15478,6 +15479,8 @@ static int DoCertificateStatus(WOLFSSL* ssl, byte* input, word32* inOutIdx,
|
|||||||
else if (idx == 1) /* server cert must be OK */
|
else if (idx == 1) /* server cert must be OK */
|
||||||
ret = BAD_CERTIFICATE_STATUS_ERROR;
|
ret = BAD_CERTIFICATE_STATUS_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* only frees 'single' if single->isDynamic is set */
|
||||||
FreeOcspResponse(response);
|
FreeOcspResponse(response);
|
||||||
|
|
||||||
*inOutIdx += status_length;
|
*inOutIdx += status_length;
|
||||||
|
35
src/ssl.c
35
src/ssl.c
@ -6464,7 +6464,8 @@ static int ProcessBufferTryDecodeRsa(WOLFSSL_CTX* ctx, WOLFSSL* ssl,
|
|||||||
#ifdef WOLF_PRIVATE_KEY_ID
|
#ifdef WOLF_PRIVATE_KEY_ID
|
||||||
if ((ret != 0) && (devId != INVALID_DEVID
|
if ((ret != 0) && (devId != INVALID_DEVID
|
||||||
#ifdef HAVE_PK_CALLBACKS
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|| wolfSSL_CTX_IsPrivatePkSet(ctx)
|
|| ((ssl == NULL) ? wolfSSL_CTX_IsPrivatePkSet(ctx) :
|
||||||
|
wolfSSL_CTX_IsPrivatePkSet(ssl->ctx))
|
||||||
#endif
|
#endif
|
||||||
)) {
|
)) {
|
||||||
word32 nSz;
|
word32 nSz;
|
||||||
@ -6542,7 +6543,8 @@ static int ProcessBufferTryDecodeRsa(WOLFSSL_CTX* ctx, WOLFSSL* ssl,
|
|||||||
#ifdef WOLF_PRIVATE_KEY_ID
|
#ifdef WOLF_PRIVATE_KEY_ID
|
||||||
if (ret != 0 && (devId != INVALID_DEVID
|
if (ret != 0 && (devId != INVALID_DEVID
|
||||||
#ifdef HAVE_PK_CALLBACKS
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|| wolfSSL_CTX_IsPrivatePkSet(ctx)
|
|| ((ssl == NULL) ? wolfSSL_CTX_IsPrivatePkSet(ctx) :
|
||||||
|
wolfSSL_CTX_IsPrivatePkSet(ssl->ctx))
|
||||||
#endif
|
#endif
|
||||||
)) {
|
)) {
|
||||||
/* if using crypto or PK callbacks, try public key decode */
|
/* if using crypto or PK callbacks, try public key decode */
|
||||||
@ -6623,7 +6625,8 @@ static int ProcessBufferTryDecodeEcc(WOLFSSL_CTX* ctx, WOLFSSL* ssl,
|
|||||||
#ifdef WOLF_PRIVATE_KEY_ID
|
#ifdef WOLF_PRIVATE_KEY_ID
|
||||||
if (ret != 0 && (devId != INVALID_DEVID
|
if (ret != 0 && (devId != INVALID_DEVID
|
||||||
#ifdef HAVE_PK_CALLBACKS
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|| wolfSSL_CTX_IsPrivatePkSet(ctx)
|
|| ((ssl == NULL) ? wolfSSL_CTX_IsPrivatePkSet(ctx) :
|
||||||
|
wolfSSL_CTX_IsPrivatePkSet(ssl->ctx))
|
||||||
#endif
|
#endif
|
||||||
)) {
|
)) {
|
||||||
/* if using crypto or PK callbacks, try public key decode */
|
/* if using crypto or PK callbacks, try public key decode */
|
||||||
@ -6709,7 +6712,8 @@ static int ProcessBufferTryDecodeEd25519(WOLFSSL_CTX* ctx, WOLFSSL* ssl,
|
|||||||
#ifdef WOLF_PRIVATE_KEY_ID
|
#ifdef WOLF_PRIVATE_KEY_ID
|
||||||
if (ret != 0 && (devId != INVALID_DEVID
|
if (ret != 0 && (devId != INVALID_DEVID
|
||||||
#ifdef HAVE_PK_CALLBACKS
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|| wolfSSL_CTX_IsPrivatePkSet(ctx)
|
|| ((ssl == NULL) ? wolfSSL_CTX_IsPrivatePkSet(ctx) :
|
||||||
|
wolfSSL_CTX_IsPrivatePkSet(ssl->ctx))
|
||||||
#endif
|
#endif
|
||||||
)) {
|
)) {
|
||||||
/* if using crypto or PK callbacks, try public key decode */
|
/* if using crypto or PK callbacks, try public key decode */
|
||||||
@ -6788,7 +6792,8 @@ static int ProcessBufferTryDecodeEd448(WOLFSSL_CTX* ctx, WOLFSSL* ssl,
|
|||||||
#ifdef WOLF_PRIVATE_KEY_ID
|
#ifdef WOLF_PRIVATE_KEY_ID
|
||||||
if (ret != 0 && (devId != INVALID_DEVID
|
if (ret != 0 && (devId != INVALID_DEVID
|
||||||
#ifdef HAVE_PK_CALLBACKS
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|| wolfSSL_CTX_IsPrivatePkSet(ctx)
|
|| ((ssl == NULL) ? wolfSSL_CTX_IsPrivatePkSet(ctx) :
|
||||||
|
wolfSSL_CTX_IsPrivatePkSet(ssl->ctx))
|
||||||
#endif
|
#endif
|
||||||
)) {
|
)) {
|
||||||
/* if using crypto or PK callbacks, try public key decode */
|
/* if using crypto or PK callbacks, try public key decode */
|
||||||
@ -29974,12 +29979,16 @@ static void SESSION_ex_data_cache_update(WOLFSSL_SESSION* session, int idx,
|
|||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
if (get) {
|
if (get) {
|
||||||
*getRet = wolfSSL_CRYPTO_get_ex_data(
|
if (getRet) {
|
||||||
|
*getRet = wolfSSL_CRYPTO_get_ex_data(
|
||||||
&cacheSession->ex_data, idx);
|
&cacheSession->ex_data, idx);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
*setRet = wolfSSL_CRYPTO_set_ex_data(
|
if (setRet) {
|
||||||
|
*setRet = wolfSSL_CRYPTO_set_ex_data(
|
||||||
&cacheSession->ex_data, idx, data);
|
&cacheSession->ex_data, idx, data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
foundCache = 1;
|
foundCache = 1;
|
||||||
break;
|
break;
|
||||||
@ -36384,7 +36393,7 @@ static int wolfSSL_BIO_to_MIME_crlf(WOLFSSL_BIO* in, WOLFSSL_BIO* out)
|
|||||||
#endif
|
#endif
|
||||||
XMEMSET(line, 0, MAX_MIME_LINE_LEN);
|
XMEMSET(line, 0, MAX_MIME_LINE_LEN);
|
||||||
|
|
||||||
while ((lineLen = wolfSSL_BIO_gets(in, line, (int)sizeof(line))) > 0) {
|
while ((lineLen = wolfSSL_BIO_gets(in, line, MAX_MIME_LINE_LEN)) > 0) {
|
||||||
|
|
||||||
if (line[lineLen - 1] == '\r' || line[lineLen - 1] == '\n') {
|
if (line[lineLen - 1] == '\r' || line[lineLen - 1] == '\n') {
|
||||||
canonLineLen = (word32)lineLen;
|
canonLineLen = (word32)lineLen;
|
||||||
@ -36769,7 +36778,7 @@ int wolfSSL_PEM_write_bio_PKCS7(WOLFSSL_BIO* bio, PKCS7* p7)
|
|||||||
hashType = wc_OidGetHash(p7->hashOID);
|
hashType = wc_OidGetHash(p7->hashOID);
|
||||||
hashSz = wc_HashGetDigestSize(hashType);
|
hashSz = wc_HashGetDigestSize(hashType);
|
||||||
if (hashSz > WC_MAX_DIGEST_SIZE)
|
if (hashSz > WC_MAX_DIGEST_SIZE)
|
||||||
return WOLFSSL_FAILURE;
|
goto error;
|
||||||
|
|
||||||
/* only SIGNED_DATA is supported */
|
/* only SIGNED_DATA is supported */
|
||||||
switch (p7->contentOID) {
|
switch (p7->contentOID) {
|
||||||
@ -36777,18 +36786,18 @@ int wolfSSL_PEM_write_bio_PKCS7(WOLFSSL_BIO* bio, PKCS7* p7)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
WOLFSSL_MSG("Unknown PKCS#7 Type");
|
WOLFSSL_MSG("Unknown PKCS#7 Type");
|
||||||
return WOLFSSL_FAILURE;
|
goto error;
|
||||||
};
|
};
|
||||||
|
|
||||||
if ((wc_PKCS7_EncodeSignedData_ex(p7, hashBuf, hashSz,
|
if ((wc_PKCS7_EncodeSignedData_ex(p7, hashBuf, hashSz,
|
||||||
outputHead, &outputHeadSz, outputFoot, &outputFootSz)) != 0)
|
outputHead, &outputHeadSz, outputFoot, &outputFootSz)) != 0)
|
||||||
return WOLFSSL_FAILURE;
|
goto error;
|
||||||
|
|
||||||
outputSz = outputHeadSz + p7->contentSz + outputFootSz;
|
outputSz = outputHeadSz + p7->contentSz + outputFootSz;
|
||||||
output = (byte*)XMALLOC(outputSz, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
output = (byte*)XMALLOC(outputSz, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
|
||||||
if (!output)
|
if (!output)
|
||||||
return WOLFSSL_FAILURE;
|
goto error;
|
||||||
|
|
||||||
XMEMSET(output, 0, outputSz);
|
XMEMSET(output, 0, outputSz);
|
||||||
outputSz = 0;
|
outputSz = 0;
|
||||||
@ -37177,6 +37186,8 @@ error:
|
|||||||
XFREE(section, NULL, DYNAMIC_TYPE_PKCS7);
|
XFREE(section, NULL, DYNAMIC_TYPE_PKCS7);
|
||||||
if (canonSection != NULL)
|
if (canonSection != NULL)
|
||||||
XFREE(canonSection, NULL, DYNAMIC_TYPE_PKCS7);
|
XFREE(canonSection, NULL, DYNAMIC_TYPE_PKCS7);
|
||||||
|
if (canonLine != NULL)
|
||||||
|
XFREE(canonLine, NULL, DYNAMIC_TYPE_PKCS7);
|
||||||
if (bcont) {
|
if (bcont) {
|
||||||
wolfSSL_BIO_free(*bcont);
|
wolfSSL_BIO_free(*bcont);
|
||||||
*bcont = NULL; /* reset 'bcount' pointer to NULL on failure */
|
*bcont = NULL; /* reset 'bcount' pointer to NULL on failure */
|
||||||
|
15
src/x509.c
15
src/x509.c
@ -1548,15 +1548,19 @@ int wolfSSL_X509V3_EXT_print(WOLFSSL_BIO *out, WOLFSSL_X509_EXTENSION *ext,
|
|||||||
if (sk->next) {
|
if (sk->next) {
|
||||||
if ((valLen = XSNPRINTF(val, len, "%*s%s,",
|
if ((valLen = XSNPRINTF(val, len, "%*s%s,",
|
||||||
indent, "", str->strData))
|
indent, "", str->strData))
|
||||||
>= len)
|
>= len) {
|
||||||
|
XFREE(val, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
return rc;
|
return rc;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if ((valLen = XSNPRINTF(val, len, "%*s%s",
|
if ((valLen = XSNPRINTF(val, len, "%*s%s",
|
||||||
indent, "", str->strData))
|
indent, "", str->strData))
|
||||||
>= len)
|
>= len) {
|
||||||
|
XFREE(val, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
return rc;
|
return rc;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (tmpLen + valLen > tmpSz) {
|
if ((tmpLen + valLen) >= tmpSz) {
|
||||||
XFREE(val, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(val, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -6480,7 +6484,8 @@ static int X509PrintSignature_ex(WOLFSSL_BIO* bio, byte* sig,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (valLen >= (int)sizeof(tmp) - tmpLen - 1) {
|
if ((tmpLen < 0) || (valLen < 0) ||
|
||||||
|
(valLen >= ((int)sizeof(tmp) - tmpLen - 1))) {
|
||||||
ret = WOLFSSL_FAILURE;
|
ret = WOLFSSL_FAILURE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -12823,6 +12828,7 @@ int wolfSSL_X509_NAME_print_ex(WOLFSSL_BIO* bio, WOLFSSL_X509_NAME* name,
|
|||||||
>= tmpSz)
|
>= tmpSz)
|
||||||
{
|
{
|
||||||
WOLFSSL_MSG("buffer overrun");
|
WOLFSSL_MSG("buffer overrun");
|
||||||
|
XFREE(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
return WOLFSSL_FAILURE;
|
return WOLFSSL_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -12833,6 +12839,7 @@ int wolfSSL_X509_NAME_print_ex(WOLFSSL_BIO* bio, WOLFSSL_X509_NAME* name,
|
|||||||
>= tmpSz)
|
>= tmpSz)
|
||||||
{
|
{
|
||||||
WOLFSSL_MSG("buffer overrun");
|
WOLFSSL_MSG("buffer overrun");
|
||||||
|
XFREE(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
return WOLFSSL_FAILURE;
|
return WOLFSSL_FAILURE;
|
||||||
}
|
}
|
||||||
tmpSz = len + nameStrSz + 1; /* 1 for '=' */
|
tmpSz = len + nameStrSz + 1; /* 1 for '=' */
|
||||||
|
@ -33607,6 +33607,9 @@ int DecodeAsymKey(const byte* input, word32* inOutIdx, word32 inSz,
|
|||||||
|
|
||||||
if (input == NULL || inOutIdx == NULL || inSz == 0 ||
|
if (input == NULL || inOutIdx == NULL || inSz == 0 ||
|
||||||
privKey == NULL || privKeyLen == NULL) {
|
privKey == NULL || privKeyLen == NULL) {
|
||||||
|
#ifdef WOLFSSL_ASN_TEMPLATE
|
||||||
|
FREE_ASNGETDATA(dataASN, NULL);
|
||||||
|
#endif
|
||||||
return BAD_FUNC_ARG;
|
return BAD_FUNC_ARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -785,8 +785,10 @@ static int wc_HpkeEncap(Hpke* hpke, void* ephemeralKey, void* receiverKey,
|
|||||||
#ifdef ECC_TIMING_RESISTANT
|
#ifdef ECC_TIMING_RESISTANT
|
||||||
rng = wc_rng_new(NULL, 0, hpke->heap);
|
rng = wc_rng_new(NULL, 0, hpke->heap);
|
||||||
|
|
||||||
if (rng == NULL)
|
if (rng == NULL) {
|
||||||
return RNG_FAILURE_E;
|
ret = RNG_FAILURE_E;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
wc_ecc_set_rng((ecc_key*)ephemeralKey, rng);
|
wc_ecc_set_rng((ecc_key*)ephemeralKey, rng);
|
||||||
#endif
|
#endif
|
||||||
|
@ -6107,11 +6107,15 @@ static int wc_PKCS7_KariGenerateKEK(WC_PKCS7_KARI* kari, WC_RNG* rng,
|
|||||||
(!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION != 2))) && \
|
(!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION != 2))) && \
|
||||||
!defined(HAVE_SELFTEST)
|
!defined(HAVE_SELFTEST)
|
||||||
ret = wc_ecc_set_rng(kari->senderKey, rng);
|
ret = wc_ecc_set_rng(kari->senderKey, rng);
|
||||||
if (ret != 0)
|
if (ret != 0) {
|
||||||
|
XFREE(secret, kari->heap, DYNAMIC_TYPE_PKCS7);
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
ret = wc_ecc_set_rng(kari->recipKey, rng);
|
ret = wc_ecc_set_rng(kari->recipKey, rng);
|
||||||
if (ret != 0)
|
if (ret != 0) {
|
||||||
|
XFREE(secret, kari->heap, DYNAMIC_TYPE_PKCS7);
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
(void)rng;
|
(void)rng;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1866,9 +1866,13 @@ int wc_RNG_GenerateBlock(WC_RNG* rng, byte* output, word32 sz)
|
|||||||
if (ret == DRBG_SUCCESS)
|
if (ret == DRBG_SUCCESS)
|
||||||
ret = Hash_DRBG_Generate((DRBG_internal *)rng->drbg, output, sz);
|
ret = Hash_DRBG_Generate((DRBG_internal *)rng->drbg, output, sz);
|
||||||
|
|
||||||
ForceZero(newSeed, sizeof(newSeed));
|
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
|
if (newSeed != NULL) {
|
||||||
|
ForceZero(newSeed, SEED_SZ + SEED_BLOCK_SZ);
|
||||||
|
}
|
||||||
XFREE(newSeed, rng->heap, DYNAMIC_TYPE_SEED);
|
XFREE(newSeed, rng->heap, DYNAMIC_TYPE_SEED);
|
||||||
|
#else
|
||||||
|
ForceZero(newSeed, sizeof(newSeed));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
Reference in New Issue
Block a user