summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/string.h1
-rw-r--r--src/string/explicit_bzero.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/include/string.h b/include/string.h
index ce1dc300..795a2abc 100644
--- a/include/string.h
+++ b/include/string.h
@@ -82,6 +82,7 @@ void *memccpy (void *__restrict, const void *__restrict, int, size_t);
char *strsep(char **, const char *);
size_t strlcat (char *, const char *, size_t);
size_t strlcpy (char *, const char *, size_t);
+void explicit_bzero (void *, size_t);
#endif
#ifdef _GNU_SOURCE
diff --git a/src/string/explicit_bzero.c b/src/string/explicit_bzero.c
new file mode 100644
index 00000000..3d270040
--- /dev/null
+++ b/src/string/explicit_bzero.c
@@ -0,0 +1,8 @@
+#define _BSD_SOURCE
+#include <string.h>
+
+void explicit_bzero(void *d, size_t n)
+{
+ memset(d, 0, n);
+ __asm__ __volatile__ ("" : : "r"(d) : "memory");
+}