1 /* OPENBSD ORIGINAL: lib/libc/string/explicit_bzero.c */
2 /* $OpenBSD: explicit_bzero.c,v 1.1 2014/01/22 21:06:45 tedu Exp $ */
5 * Written by Ted Unangst
11 * explicit_bzero - don't let the compiler optimize away bzero
14 #ifndef HAVE_EXPLICIT_BZERO
19 explicit_bzero(void *p, size_t n)
21 (void)memset_s(p, n, 0, n);
24 #else /* HAVE_MEMSET_S */
27 * Indirect bzero through a volatile pointer to hopefully avoid
28 * dead-store optimisation eliminating the call.
30 static void (* volatile ssh_bzero)(void *, size_t) = bzero;
33 explicit_bzero(void *p, size_t n)
38 #endif /* HAVE_MEMSET_S */
40 #endif /* HAVE_EXPLICIT_BZERO */