[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/2] misc: explicit_bzero: Use SecureZeroMemory if available
[Thread Prev] | [Thread Next]
- Subject: [PATCH 2/2] misc: explicit_bzero: Use SecureZeroMemory if available
- From: Alberto Aguirre <albaguirre@xxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Fri, 2 Mar 2018 15:01:01 -0600
- To: libssh@xxxxxxxxxx
- Cc: Alberto Aguirre <albaguirre@xxxxxxxxx>
Useful on Windows platforms where SecureZeroMemory is available. Signed-off-by: Alberto Aguirre <albaguirre@xxxxxxxxx> --- ConfigureChecks.cmake | 2 ++ config.h.cmake | 3 +++ src/misc.c | 2 ++ 3 files changed, 7 insertions(+) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index f495faf0..fc42d982 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -180,6 +180,8 @@ if (WIN32) check_function_exists(_strtoui64 HAVE__STRTOUI64) set(HAVE_SELECT TRUE) + + check_symbol_exists(SecureZeroMemory "windows.h" HAVE_SECURE_ZERO_MEMORY) else (WIN32) check_function_exists(poll HAVE_POLL) check_function_exists(select HAVE_SELECT) diff --git a/config.h.cmake b/config.h.cmake index dea776ed..3a14b450 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -166,6 +166,9 @@ /* Define to 1 if you have the `memset_s' function. */ #cmakedefine HAVE_MEMSET_S 1 +/* Define to 1 if you have the `SecureZeroMemory' function. */ +#cmakedefine HAVE_SECURE_ZERO_MEMORY 1 + /*************************** LIBRARIES ***************************/ /* Define to 1 if you have the `crypto' library (-lcrypto). */ diff --git a/src/misc.c b/src/misc.c index c7b34f26..9f424281 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1057,6 +1057,8 @@ void explicit_bzero(void *s, size_t n) { #if defined(HAVE_MEMSET_S) memset_s(s, n, '\0', n); +#elif defined(HAVE_SECURE_ZERO_MEMORY) + SecureZeroMemory(s, n); #else memset(s, '\0', n); #if defined(HAVE_GCC_VOLATILE_MEMORY_PROTECTION) -- 2.14.1
[PATCH 0/2] Prefer memset_s or SecureZeroMemory if available | Alberto Aguirre <albaguirre@xxxxxxxxx> |