Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
EXPLICIT_MEMSET(3) Library Functions Manual EXPLICIT_MEMSET(3) NAME explicit_memset - guarantee writing a byte to a byte string LIBRARY Standard C Library (libc, -lc) SYNOPSIS #include <string.h> void * explicit_memset(void *b, int c, size_t len); DESCRIPTION The explicit_memset() function writes len bytes of value c (converted to an unsigned char) to the string b. It is guaranteed not to be optimized away by the compiler even if b is no longer used and is about to be freed or go out of scope. RETURN VALUES The explicit_memset() function returns the original value of b. EXAMPLES Create a buffer on the stack for a secret key, use it, and then zero it in memory before throwing it away. void f(void) { uint8_t key[32]; crypto_random(key, sizeof(key)); do_crypto_stuff(key, sizeof(key)); ... explicit_memset(key, 0, sizeof(key)); } SEE ALSO consttime_memequal(3), memset(3) HISTORY The explicit_memset() function appeared in NetBSD 7.0. NetBSD 10.99 August 28, 2013 NetBSD 10.99