diff options
author | Ted Unangst <tedu@cvs.openbsd.org> | 2011-01-10 23:23:57 +0000 |
---|---|---|
committer | Ted Unangst <tedu@cvs.openbsd.org> | 2011-01-10 23:23:57 +0000 |
commit | 0da47356692d60755345bd20924a410a62488591 (patch) | |
tree | a2141b9e0a04fea991225a0485b42e97f04d8642 /sys/lib/libkern/explicit_bzero.c | |
parent | 9094476fda5c4bd97de59d2fa4888c758f70b8a6 (diff) |
add a new function, explicit_bzero, to be used for erasing "secret" stuff.
unlike normal bzero, we guarantee that the compiler will not optimize out
calls to this function for otherwise dead variables.
to be adjusted as needed when compilers and linkers get smarter.
ok deraadt miod
Diffstat (limited to 'sys/lib/libkern/explicit_bzero.c')
-rw-r--r-- | sys/lib/libkern/explicit_bzero.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/lib/libkern/explicit_bzero.c b/sys/lib/libkern/explicit_bzero.c new file mode 100644 index 00000000000..7550a2f0c8d --- /dev/null +++ b/sys/lib/libkern/explicit_bzero.c @@ -0,0 +1,20 @@ +/* $OpenBSD: explicit_bzero.c,v 1.1 2011/01/10 23:23:56 tedu Exp $ */ +/* + * Public domain. + * Written by Ted Unangst + */ + +#if !defined(_KERNEL) && !defined(_STANDALONE) +#include <string.h> +#else +#include <lib/libkern/libkern.h> +#endif + +/* + * explicit_bzero - don't let the compiler optimize away bzero + */ +void +explicit_bzero(void *p, size_t n) +{ + bzero(p, n); +} |