xref: /freebsd/sys/libkern/explicit_bzero.c (revision cf8e5289a110954600f135024d1515a77d0ae34d)
178b59024SXin LI /*	$OpenBSD: explicit_bzero.c,v 1.3 2014/06/21 02:34:26 matthew Exp $ */
278b59024SXin LI /*
378b59024SXin LI  * Public domain.
478b59024SXin LI  * Written by Matthew Dempsky.
578b59024SXin LI  */
678b59024SXin LI 
778b59024SXin LI #include <sys/cdefs.h>
8d427f43cSXin LI #ifdef _KERNEL
978b59024SXin LI #include <sys/libkern.h>
10d427f43cSXin LI #else
11d427f43cSXin LI #include <string.h>
12*cf8e5289SKyle Evans #include <ssp/ssp.h>
13d427f43cSXin LI #endif /* _KERNEL */
1478b59024SXin LI 
1578b59024SXin LI __attribute__((weak)) void __explicit_bzero_hook(void *, size_t);
1678b59024SXin LI 
1778b59024SXin LI __attribute__((weak)) void
__explicit_bzero_hook(void * buf,size_t len)1878b59024SXin LI __explicit_bzero_hook(void *buf, size_t len)
1978b59024SXin LI {
2078b59024SXin LI }
2178b59024SXin LI 
2278b59024SXin LI void
__ssp_real(explicit_bzero)23*cf8e5289SKyle Evans __ssp_real(explicit_bzero)(void *buf, size_t len)
2478b59024SXin LI {
2578b59024SXin LI 	memset(buf, 0, len);
2678b59024SXin LI 	__explicit_bzero_hook(buf, len);
2778b59024SXin LI }
28