string: use memset_s for explicit_bzero
authorMarko Kreen <markokr@gmail.com>
Sun, 7 Sep 2014 20:14:18 +0000 (23:14 +0300)
committerMarko Kreen <markokr@gmail.com>
Sun, 7 Sep 2014 20:14:18 +0000 (23:14 +0300)
m4/usual.m4
usual/base.h
usual/string.c

index 178fee15eba99a0aad597f833d6f2fc3834efea7..123fa4644d2034595c56bd19e7bae34a7b971dd6 100644 (file)
@@ -205,7 +205,7 @@ dnl AC_CHECK_FUNCS(basename dirname) # unstable, provide always
 AC_CHECK_FUNCS(strlcpy strlcat memmem getpeereid sigaction sigqueue)
 AC_CHECK_FUNCS(inet_ntop inet_pton poll getline memrchr regcomp)
 AC_CHECK_FUNCS(err errx warn warnx getprogname setprogname)
-AC_CHECK_FUNCS(posix_memalign memalign valloc explicit_bzero)
+AC_CHECK_FUNCS(posix_memalign memalign valloc explicit_bzero memset_s)
 AC_CHECK_FUNCS(getopt getopt_long getopt_long_only)
 AC_CHECK_FUNCS(fls flsl flsll ffs ffsl ffsll)
 AC_CHECK_FUNCS(fnmatch mbsnrtowcs nl_langinfo strtod_l)
index 8b0246449b7e723ab764a300fba1672cf17fd030..769daa7a5599023a01987cf310a06aca7e4a4110 100644 (file)
 #define __EXTENSIONS__
 #endif
 
+/* C11 */
+#ifndef __STDC_WANT_LIB_EXT1__
+#define __STDC_WANT_LIB_EXT1__ 1
+#endif
+
 #include <sys/types.h>
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
index 6eec286b3be1f07dc176e31fabda67b258c63269..139d6abdd74d4111fef3771bd260d94487c4aeaf 100644 (file)
@@ -260,6 +260,13 @@ void explicit_bzero(void *buf, size_t len)
        SecureZeroMemory(buf, len);
 }
 
+#elif defined(HAVE_MEMSET_S)
+
+void explicit_bzero(void *buf, size_t len)
+{
+       memset_s(buf, len, 0, len);
+}
+
 #else /* non-win32 */
 
 /* avoid link-time optimization */