diff options
Diffstat (limited to 'src/init.c')
-rw-r--r-- | src/init.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -413,6 +413,25 @@ _gpgrt_free (void *a) void +_gpgrt_wipememory (void *ptr, size_t len) +{ + if (ptr && len) + { +#if defined(HAVE_W32_SYSTEM) && defined(SecureZeroMemory) + SecureZeroMemory (ptr, len); +#elif defined(HAVE_EXPLICIT_BZERO) + explicit_bzero (ptr, len); +#else + /* Prevent compiler from optimizing away the call to memset by + * accessing memset through volatile pointer. */ + static void *(*volatile memset_ptr)(void *, int, size_t) = (void *)memset; + memset_ptr (ptr, 0, len); +#endif + } +} + + +void _gpg_err_set_errno (int err) { errno = err; |