diff --git a/wolfcrypt/src/wc_lms_impl.c b/wolfcrypt/src/wc_lms_impl.c index a6fc89da7f..8681080c94 100644 --- a/wolfcrypt/src/wc_lms_impl.c +++ b/wolfcrypt/src/wc_lms_impl.c @@ -2418,10 +2418,12 @@ static int wc_lms_treehash_update(LmsState* state, LmsPrivState* privState, } } - if (!useRoot && (ret == 0)) { - /* Copy stack back. */ - XMEMCPY(stackCache->stack, stack, params->height * params->hash_len); - stackCache->offset = (word32)((size_t)sp - (size_t)stack); + if (ret == 0) { + if (!useRoot) { + /* Copy stack back. */ + XMEMCPY(stackCache->stack, stack, params->height * params->hash_len); + stackCache->offset = (word32)((size_t)sp - (size_t)stack); + } } WC_FREE_VAR_EX(stack, NULL, DYNAMIC_TYPE_TMP_BUFFER);