1 /* $OpenBSD: explicit_bzero.c,v 1.3 2014/06/21 02:34:26 matthew Exp $ */ 2 /* 3 * Public domain. 4 * Written by Matthew Dempsky. 5 */ 6 #include "config.h" 7 #include <string.h> 8 9 #ifdef HAVE_ATTR_WEAK 10 __attribute__((weak)) void 11 #else 12 void 13 #endif 14 __explicit_bzero_hook(void *ATTR_UNUSED(buf), size_t ATTR_UNUSED(len)) 15 { 16 } 17 18 void 19 explicit_bzero(void *buf, size_t len) 20 { 21 #ifdef UB_ON_WINDOWS 22 SecureZeroMemory(buf, len); 23 #endif 24 memset(buf, 0, len); 25 __explicit_bzero_hook(buf, len); 26 } 27