summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ChangeLog9
-rw-r--r--src/include/k5-int.h12
2 files changed, 17 insertions, 4 deletions
diff --git a/src/include/ChangeLog b/src/include/ChangeLog
index 9bceef3ad6..75eb6c6a62 100644
--- a/src/include/ChangeLog
+++ b/src/include/ChangeLog
@@ -1,3 +1,11 @@
+2004-07-14 Jeffrey Altman <jaltman@mit.edu>
+
+ * k5-int.h: define for WIN32 the macro krb5int_zap_data to
+ utilize the Win32 API SecureZeroMemory which is guaranteed
+ by Microsoft not to be optimized out by the compiler.
+ Both memset and ZeroMemory will be optimized out by the
+ compiler when possible.
+
2004-07-13 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (k5_call_init_function) [DELAY_INITIALIZER]
@@ -24,6 +32,7 @@
* fake-addrinfo.h (in6addr_any): If we need to define a static
copy, rename it with a macro first.
+>>>>>>> 1.444
2004-07-09 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h: Test HAVE_PTHREAD instead of HAVE_PTHREAD_H.
diff --git a/src/include/k5-int.h b/src/include/k5-int.h
index fe7a5a113d..d668f1ec9a 100644
--- a/src/include/k5-int.h
+++ b/src/include/k5-int.h
@@ -672,13 +672,17 @@ krb5_error_code krb5int_pbkdf2_hmac_sha1 (const krb5_data *, unsigned long,
const krb5_data *);
/* Make this a function eventually? */
-#define krb5int_zap_data(ptr, len) memset((volatile void *)ptr, 0, len)
-#if defined(__GNUC__) && defined(__GLIBC__)
+#ifdef WIN32
+# define krb5int_zap_data(ptr, len) SecureZeroMemory(ptr, len)
+#else
+# define krb5int_zap_data(ptr, len) memset((volatile void *)ptr, 0, len)
+# if defined(__GNUC__) && defined(__GLIBC__)
/* GNU libc generates multiple bogus initialization warnings if we
pass memset a volatile pointer. The compiler should do well enough
with memset even without GNU libc's attempt at optimization. */
-#undef memset
-#endif
+# undef memset
+# endif
+#endif /* WIN32 */
#define zap(p,l) krb5int_zap_data(p,l)
/* A definition of init_state for DES based encryption systems.