From: Bastien Roucariès <[email protected]>
Signed-off-by: Bastien Roucariès <[email protected]>
---
lib/explicit_bzero.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/lib/explicit_bzero.c b/lib/explicit_bzero.c
index 2168a5285..489732791 100644
--- a/lib/explicit_bzero.c
+++ b/lib/explicit_bzero.c
@@ -32,6 +32,11 @@
#include <string.h>
+#if defined _WIN32 && !defined __CYGWIN__
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
#if _LIBC
/* glibc-internal users use __explicit_bzero_chk, and explicit_bzero
redirects to that. */
@@ -43,7 +48,9 @@
void
explicit_bzero (void *s, size_t len)
{
-#ifdef HAVE_EXPLICIT_MEMSET
+#if defined _WIN32 && !defined __CYGWIN__
+ (void) SecureZeroMemory (s, len);
+#elif HAVE_EXPLICIT_MEMSET
explicit_memset (s, 0, len);
#elif HAVE_MEMSET_S
(void) memset_s (s, len, '\0', len);
--
2.25.1