Minix Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
EXPLICIT_MEMSET(3)       BSD 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.

BSD                             August 28, 2013                            BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | SEE ALSO | HISTORY