summaryrefslogtreecommitdiffhomepage
path: root/dbhelpers.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2016-03-17 23:21:33 +0800
committerMatt Johnston <matt@ucc.asn.au>2016-03-17 23:21:33 +0800
commit420151dbd9e9737fcb7df46529b5fa63a10b8efa (patch)
tree47e6ec4fc3bfcd6923c7669a50d5e25ed6d96644 /dbhelpers.c
parent156b28c771f9a2b18bd3ddde6d6b3c193999c904 (diff)
move m_burn and function attributes to dbhelpers
use m_burn for libtomcrypt zeromem() too
Diffstat (limited to 'dbhelpers.c')
-rw-r--r--dbhelpers.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/dbhelpers.c b/dbhelpers.c
new file mode 100644
index 0000000..f7461d9
--- /dev/null
+++ b/dbhelpers.c
@@ -0,0 +1,25 @@
+#include "dbhelpers.h"
+#include "includes.h"
+
+/* Erase data */
+void m_burn(void *data, unsigned int len) {
+
+#if defined(HAVE_MEMSET_S)
+ memset_s(data, len, 0x0, len);
+#elif defined(HAVE_EXPLICIT_BZERO)
+ explicit_bzero(data, len);
+#else
+/* Based on the method in David Wheeler's
+ * "Secure Programming for Linux and Unix HOWTO". May not be safe
+ * against link-time optimisation. */
+ volatile char *p = data;
+
+ if (data == NULL)
+ return;
+ while (len--) {
+ *p++ = 0x0;
+ }
+#endif
+}
+
+