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