| @node memset_explicit | |
| @subsection @code{memset_explicit} | |
| @findex memset_explicit | |
| Documentation: | |
| @itemize | |
| @item | |
| @ifinfo | |
| @ref{Erasing Sensitive Data,,Erasing Sensitive Data,libc}, | |
| @end ifinfo | |
| @ifnotinfo | |
| @url{https://www.gnu.org/software/libc/manual/html_node/Erasing-Sensitive-Data.html}, | |
| @end ifnotinfo | |
| @c Not yet present: | |
| @c @item | |
| @c @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/memset_explicit.3.html,,man memset_explicit}. | |
| @end itemize | |
| Gnulib module: memset_explicit | |
| @mindex memset_explicit | |
| The @code{memset_explicit} function is an approximation to what is | |
| needed, and does not suffice in general to erase information. | |
| Although calling @code{memset_explicit} 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. | |
| Portability problems fixed by Gnulib: | |
| @itemize | |
| @item | |
| This function is missing on some platforms: | |
| glibc 2.36, FreeBSD 13.1, NetBSD 10.0, OpenBSD 7.2, macOS 13, Solaris 11.4, Android API level 33, | |
| and many other systems. | |
| @end itemize | |
| Portability problems not fixed by Gnulib: | |
| @itemize | |
| @item | |
| Although the module's implementation should set the memory on | |
| platforms compatible with GCC and on platforms using traditional | |
| linkers, it may not set the memory on non-GCC platforms that use | |
| whole-program optimization. | |
| @end itemize |