#include "tommath_private.h" #ifdef MP_WARRAY_FREE_C /* LibTomMath, multiple-precision integer library -- Tom St Denis */ /* SPDX-License-Identifier: Unlicense */ /* static check that the multiplication won't overflow */ MP_STATIC_ASSERT(warray_free_sz_does_not_overflow, (sizeof(mp_word) * MP_WARRAY) >= MP_WARRAY) static int s_warray_free(void) { int ret = 0; if (s_mp_warray.w_used) return -2; if (s_mp_warray.w_free) { s_mp_zero_buf(s_mp_warray.w_free, sizeof(mp_word) * MP_WARRAY); MP_FREE(s_mp_warray.w_free, sizeof(mp_word) * MP_WARRAY); s_mp_warray.w_free = NULL; } return ret; } int mp_warray_free(void) { if (MP_HAS(MP_SMALL_STACK_SIZE)) return s_warray_free(); return -1; } #endif