explicit_bzero: On native Windows, use SecureZeroMemory().
authorBastien Roucariès <rouca@debian.org>
Sun, 12 Apr 2020 23:09:15 +0000 (01:09 +0200)
committerBruno Haible <bruno@clisp.org>
Mon, 13 Apr 2020 22:15:02 +0000 (00:15 +0200)
* lib/explicit_bzero.c: Include <windows.h>.
(explicit_bzero): On native Windows, use SecureZeroMemory.

Signed-off-by: Bastien Roucariès <rouca@debian.org>
ChangeLog
lib/explicit_bzero.c

index 8bb1465d828819dfa8c06aa094d265460e93c749..0d4b34e39d35e90f72c4d00fbe037c6fb720c1a3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2020-04-13  Bastien Roucariès  <rouca@debian.org>
+
+       explicit_bzero: On native Windows, use SecureZeroMemory().
+       * lib/explicit_bzero.c: Include <windows.h>.
+       (explicit_bzero): On native Windows, use SecureZeroMemory.
+
 2020-04-13  Bastien Roucariès  <rouca@debian.org>
 
        explicit_bzero: Use memset_s() when available.
index 2168a52854f18db7e3945cce6746e4d20c194e05..489732791860d45de0198956dbe4e7ce548a07d8 100644 (file)
 
 #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);