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