From 79760d935a9e44ebda5c02b407903e13a29d3364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20B=C3=BChler?= Date: Thu, 22 Aug 2019 13:07:55 +0200 Subject: [PATCH] Use explicit_memset from NetBSD if available for safe_memclear (fixes #2971) --- configure.ac | 1 + src/safe_memclear.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 7eee7203..1e8c8293 100644 --- a/configure.ac +++ b/configure.ac @@ -1211,6 +1211,7 @@ AC_CHECK_FUNCS([\ clock_gettime \ epoll_ctl \ explicit_bzero \ + explicit_memset \ fork \ getloadavg \ getrlimit \ diff --git a/src/safe_memclear.c b/src/safe_memclear.c index 0e1c9dfd..46e3f179 100644 --- a/src/safe_memclear.c +++ b/src/safe_memclear.c @@ -4,7 +4,7 @@ #include -#if !defined(HAVE_MEMSET_S) && !defined(HAVE_EXPLICIT_BZERO) +#if !defined(HAVE_MEMSET_S) && !defined(HAVE_EXPLICIT_BZERO) && !defined(HAVE_EXPLICIT_MEMSET) # if defined(HAVE_WEAK_SYMBOLS) /* it seems weak functions are never inlined, even for static builds */ @@ -41,6 +41,8 @@ void safe_memclear(void *s, size_t n) { memset_s(s, n, 0, n); #elif defined(HAVE_EXPLICIT_BZERO) explicit_bzero(s, n); +#elif defined(HAVE_EXPLICIT_MEMSET) + explicit_memset(s, 0, n); #else safe_memset(s, 0, n); #endif