explicit_bzero
--------------

Documentation:

  * Erasing Sensitive Data (libc),

  * man explicit_bzero.

Gnulib module: explicit_bzero

The explicit_bzero function is an approximation to what is needed, and does not suffice in general to erase information. Although calling explicit_bzero should clear the memory in question, the information that was in memory may still be available elsewhere on the machine.  Proper implementation of information erasure requires support from levels below C code.

C23 specifies the function memset_explicit, which should be preferred to explicit_bzero in new code. See memset_explicit.

Portability problems fixed by Gnulib:

  * This function is missing on some platforms: glibc 2.24, FreeBSD 10, NetBSD 7.1, OpenBSD 5.4, macOS 10.12, Solaris 11.4, Android 9.0, and many other systems.

Portability problems not fixed by Gnulib:

  * Although the module's implementation should clear the memory on platforms compatible with GCC and on platforms using traditional linkers, it may not clear the memory on non-GCC platforms that use whole-program optimization.