1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00

common/mischelp: use platform memory zeroing function for wipememory

* common/mischelp.h (wipememory): Replace macro with function
prototype.
(wipememory2): Remove.
* common/mischelp.c (wipememory): New.
* configure.ac (AC_CHECK_FUNCS): Check for 'explicit_bzero'.
--

In new wipememory function, memory is cleared through platform
provided secure memory zeroing function, SecureZeroMemory
or explicit_bzero.

If none of these is available, memset is called through
volatile function pointer to so that compiler won't optimize
away the call.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
This commit is contained in:
Jussi Kivilinna 2018-12-01 13:43:09 +02:00
parent 3a90efb7cf
commit 2a650772b4
3 changed files with 29 additions and 19 deletions

View file

@ -1400,16 +1400,16 @@ AC_FUNC_FSEEKO
AC_FUNC_VPRINTF
AC_FUNC_FORK
AC_CHECK_FUNCS([atexit canonicalize_file_name clock_gettime ctermid \
fcntl flockfile fsync ftello ftruncate funlockfile \
getaddrinfo getenv getpagesize getpwnam getpwuid \
getrlimit getrusage gettimeofday gmtime_r \
inet_ntop inet_pton isascii lstat \
memicmp memmove memrchr mmap nl_langinfo pipe \
raise rand setenv setlocale setrlimit sigaction \
sigprocmask stat stpcpy strcasecmp strerror strftime \
stricmp strlwr strncasecmp strpbrk strsep \
strtol strtoul strtoull tcgetattr timegm times \
ttyname unsetenv wait4 waitpid ])
explicit_bzero fcntl flockfile fsync ftello \
ftruncate funlockfile getaddrinfo getenv getpagesize \
getpwnam getpwuid getrlimit getrusage gettimeofday \
gmtime_r inet_ntop inet_pton isascii lstat memicmp \
memmove memrchr mmap nl_langinfo pipe raise rand \
setenv setlocale setrlimit sigaction sigprocmask \
stat stpcpy strcasecmp strerror strftime stricmp \
strlwr strncasecmp strpbrk strsep strtol strtoul \
strtoull tcgetattr timegm times ttyname unsetenv \
wait4 waitpid ])
# On some systems (e.g. Solaris) nanosleep requires linking to librl.
# Given that we use nanosleep only as an optimization over a select