2 @subsection @code{explicit_bzero}
9 @ref{Erasing Sensitive Data,,Erasing Sensitive Data,libc},
12 @url{https://www.gnu.org/software/libc/manual/html_node/Erasing-Sensitive-Data.html},
15 @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/explicit_bzero.3.html,,man explicit_bzero}.
18 Gnulib module: explicit_bzero
20 The @code{explicit_bzero} function is an approximation to what is
21 needed, and does not suffice in general to erase information.
22 Although calling @code{explicit_bzero} should clear the memory in
23 question, the information that was in memory may still be available
24 elsewhere on the machine. Proper implementation of information
25 erasure requires support from levels below C code.
27 Portability problems fixed by Gnulib:
30 This function is missing on some platforms:
31 glibc 2.24, FreeBSD 10, NetBSD 7.1, OpenBSD 5.4, macOS 10.12, Solaris 11.4, Android 9.0,
32 and many other systems.
35 Portability problems not fixed by Gnulib:
38 Although the module's implementation should clear the memory on
39 platforms compatible with GCC and on platforms using traditional
40 linkers, it may not clear the memory on non-GCC platforms that use
41 whole-program optimization.