From 696934b123f0a9135cf662fd8cdcc4a6dd4e7568 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Mon, 21 Oct 2013 21:07:39 -0700 Subject: [PATCH] _sodium_alignedcalloc(): use arc4random_buf() if available --- src/libsodium/sodium/utils.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libsodium/sodium/utils.c b/src/libsodium/sodium/utils.c index 74fc2d86..7026b497 100644 --- a/src/libsodium/sodium/utils.c +++ b/src/libsodium/sodium/utils.c @@ -54,9 +54,14 @@ _sodium_alignedcalloc(unsigned char ** const unaligned_p, const size_t len) return NULL; } *unaligned_p = unaligned; +#ifdef HAVE_ARC4RANDOM + (void) i; + arc4random_buf(unaligned, len + (size_t) 256U); +#else for (i = (size_t) 0U; i < len + (size_t) 256U; ++i) { unaligned[i] = (unsigned char) rand(); } +#endif aligned = unaligned + 64; aligned += (ptrdiff_t) 63 & (-(ptrdiff_t) aligned); memset(aligned, 0, len);