Provides explicit_memset supports/NetBSD.

Similar to explicit_bzero function is to defeat
compiler optimisation.
This commit is contained in:
David Carlier 2018-09-29 19:19:23 +01:00
parent d922c2480c
commit b3ba348d08
2 changed files with 3 additions and 1 deletions

View File

@ -791,7 +791,7 @@ dnl Checks for functions and headers
AC_FUNC_ALLOCA AC_FUNC_ALLOCA
AS_IF([test "x$EMSCRIPTEN" = "x"],[ AS_IF([test "x$EMSCRIPTEN" = "x"],[
AC_CHECK_FUNCS([arc4random arc4random_buf]) AC_CHECK_FUNCS([arc4random arc4random_buf])
AC_CHECK_FUNCS([mmap mlock madvise mprotect memset_s explicit_bzero nanosleep]) AC_CHECK_FUNCS([mmap mlock madvise mprotect memset_s explicit_bzero explicit_memset nanosleep])
]) ])
AC_CHECK_FUNCS([posix_memalign getpid]) AC_CHECK_FUNCS([posix_memalign getpid])

View File

@ -110,6 +110,8 @@ sodium_memzero(void *const pnt, const size_t len)
} }
#elif defined(HAVE_EXPLICIT_BZERO) #elif defined(HAVE_EXPLICIT_BZERO)
explicit_bzero(pnt, len); explicit_bzero(pnt, len);
#elif defined(HAVE_EXPLICIT_MEMSET)
explicit_memset(pnt, 0, len);
#elif HAVE_WEAK_SYMBOLS #elif HAVE_WEAK_SYMBOLS
memset(pnt, 0, len); memset(pnt, 0, len);
_sodium_dummy_symbol_to_prevent_memzero_lto(pnt, len); _sodium_dummy_symbol_to_prevent_memzero_lto(pnt, len);