mirror of git://git.musl-libc.org/musl
add explicit_bzero implementation
maintainer's note: past sentiment was that, despite being imperfect and unable to force clearing of all possible copies of sensitive data (e.g. in registers, register spills, signal contexts left on the stack, etc.) this function would be added if major implementations agreed on it, which has happened -- several BSDs and glibc all include it.
This commit is contained in:
parent
5c8e69267b
commit
05ac345f89
|
@ -82,6 +82,7 @@ void *memccpy (void *__restrict, const void *__restrict, int, size_t);
|
||||||
char *strsep(char **, const char *);
|
char *strsep(char **, const char *);
|
||||||
size_t strlcat (char *, const char *, size_t);
|
size_t strlcat (char *, const char *, size_t);
|
||||||
size_t strlcpy (char *, const char *, size_t);
|
size_t strlcpy (char *, const char *, size_t);
|
||||||
|
void explicit_bzero (void *, size_t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
#ifdef _GNU_SOURCE
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
#define _BSD_SOURCE
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
void explicit_bzero(void *d, size_t n)
|
||||||
|
{
|
||||||
|
memset(d, 0, n);
|
||||||
|
__asm__ __volatile__ ("" : : "r"(d) : "memory");
|
||||||
|
}
|
Loading…
Reference in New Issue