Review comment to reduce stack usage

This commit is contained in:
Tesfa Mael
2019-08-13 10:15:57 -07:00
parent b9ddbb974a
commit 1acd24deb8

View File

@ -36584,10 +36584,15 @@ WOLFSSL_STACK* wolfSSL_PKCS7_get0_signers(PKCS7* pkcs7, WOLFSSL_STACK* certs,
int wolfSSL_PEM_write_bio_PKCS7(WOLFSSL_BIO* bio, PKCS7* p7)
{
byte outputHead[2048];
byte outputFoot[2048];
word32 outputHeadSz = (word32)sizeof(outputHead);
word32 outputFootSz = (word32)sizeof(outputFoot);
#ifdef WOLFSSL_SMALL_STACK
byte* outputHead;
byte* outputFoot;
#else
byte outputHead[2048];
byte outputFoot[2048];
#endif
word32 outputHeadSz = 2048;
word32 outputFootSz = 2048;
word32 outputSz = 0;
byte* output = NULL;
byte* pem = NULL;
@ -36601,6 +36606,17 @@ int wolfSSL_PEM_write_bio_PKCS7(WOLFSSL_BIO* bio, PKCS7* p7)
if (bio == NULL || p7 == NULL)
return WOLFSSL_FAILURE;
#ifdef WOLFSSL_SMALL_STACK
outputHead = (byte*)XMALLOC(outputHeadSz, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
if (outputHead == NULL)
return MEMORY_E;
outputFoot = (byte*)XMALLOC(outputFootSz, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
if (outputFoot == NULL)
goto error;
#endif
XMEMSET(hashBuf, 0, WC_MAX_DIGEST_SIZE);
XMEMSET(outputHead, 0, outputHeadSz);
XMEMSET(outputFoot, 0, outputFootSz);
@ -36661,6 +36677,14 @@ int wolfSSL_PEM_write_bio_PKCS7(WOLFSSL_BIO* bio, PKCS7* p7)
}
error:
#ifdef WOLFSSL_SMALL_STACK
if (outputHead) {
XFREE(outputHead, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
}
if (outputFoot) {
XFREE(outputFoot, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
}
#endif
if (output) {
XFREE(output, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
}