提交 05ac345f 编写于 作者: D David Carlier 提交者: Rich Felker

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.
上级 5c8e6926
......@@ -82,6 +82,7 @@ void *memccpy (void *__restrict, const void *__restrict, int, size_t);
char *strsep(char **, const char *);
size_t strlcat (char *, const char *, size_t);
size_t strlcpy (char *, const char *, size_t);
void explicit_bzero (void *, size_t);
#endif
#ifdef _GNU_SOURCE
......
#define _BSD_SOURCE
#include <string.h>
void explicit_bzero(void *d, size_t n)
{
memset(d, 0, n);
__asm__ __volatile__ ("" : : "r"(d) : "memory");
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册