mirror of https://github.com/wolfSSL/wolfssl.git
Free memory for a msg buffer when calling wc_ShaxxxFree()
parent
778a2065ab
commit
a6b2d1621b
|
@ -79,12 +79,24 @@ static int TSIPHashUpdate(wolfssl_TSIP_Hash* hash, const byte* data, word32 sz)
|
||||||
hash->msg = (byte*)XMALLOC(hash->used + sz, hash->heap,
|
hash->msg = (byte*)XMALLOC(hash->used + sz, hash->heap,
|
||||||
DYNAMIC_TYPE_TMP_BUFFER);
|
DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
} else {
|
} else {
|
||||||
|
#ifdef FREERTOS
|
||||||
|
byte* pt = (byte*)XMALLOC(hash->used + sz, hash->heap,
|
||||||
|
DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
if (pt == NULL) {
|
||||||
|
return MEMORY_E;
|
||||||
|
}
|
||||||
|
XMEMCPY(pt, hash->msg, hash->used);
|
||||||
|
XFREE(hash->msg, hash->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
hash->msg = NULL;
|
||||||
|
hash->msg = pt;
|
||||||
|
#else
|
||||||
byte* pt = (byte*)XREALLOC(hash->msg, hash->used + sz, hash->heap,
|
byte* pt = (byte*)XREALLOC(hash->msg, hash->used + sz, hash->heap,
|
||||||
DYNAMIC_TYPE_TMP_BUFFER);
|
DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
if (pt == NULL) {
|
if (pt == NULL) {
|
||||||
return MEMORY_E;
|
return MEMORY_E;
|
||||||
}
|
}
|
||||||
hash->msg = pt;
|
hash->msg = pt;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if (hash->msg == NULL) {
|
if (hash->msg == NULL) {
|
||||||
return MEMORY_E;
|
return MEMORY_E;
|
||||||
|
|
|
@ -667,6 +667,13 @@ void wc_ShaFree(wc_Sha* sha)
|
||||||
#ifdef WOLFSSL_PIC32MZ_HASH
|
#ifdef WOLFSSL_PIC32MZ_HASH
|
||||||
wc_ShaPic32Free(sha);
|
wc_ShaPic32Free(sha);
|
||||||
#endif
|
#endif
|
||||||
|
#if (defined(WOLFSSL_RENESAS_TSIP_CRYPT) && \
|
||||||
|
!defined(NO_WOLFSSL_RENESAS_TSIP_CRYPT_HASH))
|
||||||
|
if (sha->msg != NULL) {
|
||||||
|
XFREE(sha->msg, sha->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
sha->msg = NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* !WOLFSSL_TI_HASH */
|
#endif /* !WOLFSSL_TI_HASH */
|
||||||
|
@ -729,7 +736,6 @@ int wc_ShaCopy(wc_Sha* src, wc_Sha* dst)
|
||||||
#if defined(WOLFSSL_HASH_FLAGS) || defined(WOLF_CRYPTO_CB)
|
#if defined(WOLFSSL_HASH_FLAGS) || defined(WOLF_CRYPTO_CB)
|
||||||
dst->flags |= WC_HASH_FLAG_ISCOPY;
|
dst->flags |= WC_HASH_FLAG_ISCOPY;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif /* defined(WOLFSSL_RENESAS_TSIP_CRYPT) ... */
|
#endif /* defined(WOLFSSL_RENESAS_TSIP_CRYPT) ... */
|
||||||
|
|
|
@ -1362,7 +1362,9 @@ void wc_Sha256Free(wc_Sha256* sha256)
|
||||||
wc_DevCryptoFree(&sha256->ctx);
|
wc_DevCryptoFree(&sha256->ctx);
|
||||||
#endif /* WOLFSSL_DEVCRYPTO */
|
#endif /* WOLFSSL_DEVCRYPTO */
|
||||||
#if (defined(WOLFSSL_AFALG_HASH) && defined(WOLFSSL_AFALG_HASH_KEEP)) || \
|
#if (defined(WOLFSSL_AFALG_HASH) && defined(WOLFSSL_AFALG_HASH_KEEP)) || \
|
||||||
(defined(WOLFSSL_DEVCRYPTO_HASH) && defined(WOLFSSL_DEVCRYPTO_HASH_KEEP))
|
(defined(WOLFSSL_DEVCRYPTO_HASH) && defined(WOLFSSL_DEVCRYPTO_HASH_KEEP)) || \
|
||||||
|
(defined(WOLFSSL_RENESAS_TSIP_CRYPT) && \
|
||||||
|
!defined(NO_WOLFSSL_RENESAS_TSIP_CRYPT_HASH))
|
||||||
if (sha256->msg != NULL) {
|
if (sha256->msg != NULL) {
|
||||||
XFREE(sha256->msg, sha256->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(sha256->msg, sha256->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
sha256->msg = NULL;
|
sha256->msg = NULL;
|
||||||
|
|
Loading…
Reference in New Issue