From c8c2c7a93d73ae8c03f35e5c55933fd07695598c Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Fri, 5 Sep 2014 18:27:48 -0700 Subject: [PATCH] Revert "The C standard says nothing about accesses via lvalue expressions with volatile types" This reverts commit fc1bc0718b6c414335db3c602af33517748165f1. --- src/libsodium/sodium/utils.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libsodium/sodium/utils.c b/src/libsodium/sodium/utils.c index 23b0bf6a..efb92638 100644 --- a/src/libsodium/sodium/utils.c +++ b/src/libsodium/sodium/utils.c @@ -69,8 +69,12 @@ sodium_memzero(void * const pnt, const size_t len) memset(pnt, 0, len); __sodium_dummy_symbol_to_prevent_lto(pnt, len); #else - static void * (* const volatile memset_ptr)(void *, int, size_t) = memset; - memset_ptr(pnt, 0, len); + volatile unsigned char *pnt_ = (volatile unsigned char *) pnt; + size_t i = (size_t) 0U; + + while (i < len) { + pnt_[i++] = 0U; + } #endif }