diff --git a/src/libsodium/sodium/utils.c b/src/libsodium/sodium/utils.c index 0edb4e55..f4e44c83 100644 --- a/src/libsodium/sodium/utils.c +++ b/src/libsodium/sodium/utils.c @@ -102,9 +102,6 @@ _sodium_dummy_symbol_to_prevent_memzero_lto(void *const pnt, void sodium_memzero(void * const pnt, const size_t len) { - if (len == 0) { - return; - } #ifdef _WIN32 SecureZeroMemory(pnt, len); #elif defined(HAVE_MEMSET_S) @@ -116,8 +113,10 @@ sodium_memzero(void * const pnt, const size_t len) #elif defined(HAVE_EXPLICIT_MEMSET) explicit_memset(pnt, 0, len); #elif HAVE_WEAK_SYMBOLS - memset(pnt, 0, len); - _sodium_dummy_symbol_to_prevent_memzero_lto(pnt, len); + if (len > 0U) { + memset(pnt, 0, len); + _sodium_dummy_symbol_to_prevent_memzero_lto(pnt, len); + } # ifdef HAVE_INLINE_ASM __asm__ __volatile__ ("" : : "r"(pnt) : "memory"); # endif