From 43e1eee55d4640579d279a9b97f8ed5a77545a73 Mon Sep 17 00:00:00 2001 From: Guido Vranken Date: Wed, 8 Jul 2020 01:04:37 +0200 Subject: [PATCH] Return MEMORY_E from wc_scrypt if allocation fails --- wolfcrypt/src/pwdbased.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/wolfcrypt/src/pwdbased.c b/wolfcrypt/src/pwdbased.c index c672c2285..cf82b1597 100644 --- a/wolfcrypt/src/pwdbased.c +++ b/wolfcrypt/src/pwdbased.c @@ -721,16 +721,22 @@ int wc_scrypt(byte* output, const byte* passwd, int passLen, bSz = 128 * blockSize; blocksSz = bSz * parallel; blocks = (byte*)XMALLOC(blocksSz, NULL, DYNAMIC_TYPE_TMP_BUFFER); - if (blocks == NULL) + if (blocks == NULL) { + ret = MEMORY_E; goto end; + } /* Temporary for scryptROMix. */ v = (byte*)XMALLOC((1 << cost) * bSz, NULL, DYNAMIC_TYPE_TMP_BUFFER); - if (v == NULL) + if (v == NULL) { + ret = MEMORY_E; goto end; + } /* Temporary for scryptBlockMix. */ y = (byte*)XMALLOC(blockSize * 128, NULL, DYNAMIC_TYPE_TMP_BUFFER); - if (y == NULL) + if (y == NULL) { + ret = MEMORY_E; goto end; + } /* Step 1. */ ret = wc_PBKDF2(blocks, passwd, passLen, salt, saltLen, 1, blocksSz,