diff --git a/wolfcrypt/src/random.c b/wolfcrypt/src/random.c index 7122b3beb..4b81f09cc 100644 --- a/wolfcrypt/src/random.c +++ b/wolfcrypt/src/random.c @@ -772,6 +772,11 @@ static int _InitRng(WC_RNG* rng, byte* nonce, word32 nonceSz, if (ret == DRBG_SUCCESS) ret = Hash_DRBG_Generate(rng->drbg, NULL, 0); + + if (ret != DRBG_SUCCESS) { + XFREE(rng->drbg, rng->heap, DYNAMIC_TYPE_RNG); + rng->drbg = NULL; + } } ForceZero(seed, seedSz);