Index: cipher-chachapoly.c =================================================================== RCS file: /cvs/src/usr.bin/ssh/cipher-chachapoly.c,v retrieving revision 1.4 diff -u -p -r1.4 cipher-chachapoly.c --- cipher-chachapoly.c 31 Jan 2014 16:39:19 -0000 1.4 +++ cipher-chachapoly.c 15 Mar 2014 22:31:37 -0000 @@ -22,6 +22,7 @@ #include /* needed for misc.h */ #include "log.h" +#include "xmalloc.h" #include "misc.h" #include "cipher-chachapoly.h" Index: digest-libc.c =================================================================== RCS file: /cvs/src/usr.bin/ssh/digest-libc.c,v retrieving revision 1.2 diff -u -p -r1.2 digest-libc.c --- digest-libc.c 2 Feb 2014 03:44:31 -0000 1.2 +++ digest-libc.c 15 Mar 2014 22:31:37 -0000 @@ -28,6 +28,7 @@ #include "buffer.h" #include "digest.h" +#include "xmalloc.h" typedef void md_init_fn(void *mdctx); typedef void md_update_fn(void *mdctx, const u_int8_t *m, size_t mlen); Index: digest-openssl.c =================================================================== RCS file: /cvs/src/usr.bin/ssh/digest-openssl.c,v retrieving revision 1.2 diff -u -p -r1.2 digest-openssl.c --- digest-openssl.c 2 Feb 2014 03:44:31 -0000 1.2 +++ digest-openssl.c 15 Mar 2014 22:31:37 -0000 @@ -24,6 +24,7 @@ #include "buffer.h" #include "digest.h" +#include "xmalloc.h" struct ssh_digest_ctx { int alg; Index: hmac.c =================================================================== RCS file: /cvs/src/usr.bin/ssh/hmac.c,v retrieving revision 1.10 diff -u -p -r1.10 hmac.c --- hmac.c 31 Jan 2014 16:39:19 -0000 1.10 +++ hmac.c 15 Mar 2014 22:31:37 -0000 @@ -21,6 +21,7 @@ #include "buffer.h" #include "digest.h" #include "hmac.h" +#include "xmalloc.h" struct ssh_hmac_ctx { int alg; Index: kexc25519.c =================================================================== RCS file: /cvs/src/usr.bin/ssh/kexc25519.c,v retrieving revision 1.5 diff -u -p -r1.5 kexc25519.c --- kexc25519.c 31 Jan 2014 16:39:19 -0000 1.5 +++ kexc25519.c 15 Mar 2014 22:31:37 -0000 @@ -40,6 +40,7 @@ #include "kex.h" #include "log.h" #include "digest.h" +#include "xmalloc.h" extern int crypto_scalarmult_curve25519(u_char a[CURVE25519_SIZE], const u_char b[CURVE25519_SIZE], const u_char c[CURVE25519_SIZE]) Index: xmalloc.c =================================================================== RCS file: /cvs/src/usr.bin/ssh/xmalloc.c,v retrieving revision 1.29 diff -u -p -r1.29 xmalloc.c --- xmalloc.c 4 Jan 2014 17:50:55 -0000 1.29 +++ xmalloc.c 15 Mar 2014 22:31:37 -0000 @@ -98,3 +98,9 @@ xasprintf(char **ret, const char *fmt, . return (i); } + +void +explicit_bzero(void *b, size_t len) +{ + memset(b, 0, len); +} Index: xmalloc.h =================================================================== RCS file: /cvs/src/usr.bin/ssh/xmalloc.h,v retrieving revision 1.14 diff -u -p -r1.14 xmalloc.h --- xmalloc.h 17 May 2013 00:13:14 -0000 1.14 +++ xmalloc.h 15 Mar 2014 22:31:37 -0000 @@ -23,3 +23,4 @@ char *xstrdup(const char *); int xasprintf(char **, const char *, ...) __attribute__((__format__ (printf, 2, 3))) __attribute__((__nonnull__ (2))); +void explicit_bzero(void *b, size_t len);