/* Copyright (c) 2002-2018 Dovecot authors, see the included COPYING file */ #include "lib.h" #include "safe-memset.h" void safe_memset(void *data, int c, size_t size) { volatile unsigned int volatile_zero_idx = 0; volatile unsigned char *p = data; if (size == 0) return; do { memset(data, c, size); } while (p[volatile_zero_idx] != c); }