diff --git a/dbhelpers.c b/dbhelpers.c
index f7461d99cd744d3ae2a18aec9b6b6986f0453805..bb9c2fcb9b1a06d69cf14381cf79832a65f33931 100644
--- a/dbhelpers.c
+++ b/dbhelpers.c
@@ -9,16 +9,8 @@ void m_burn(void *data, unsigned int 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;
-	}
+	volatile void *p = data;
+    memset(p, 0x0, len);
 #endif
 }