Line | Count | Source |
1 | /* Copyright (c) 2002-2018 Dovecot authors, see the included COPYING file */ | |
2 | ||
3 | #include "lib.h" | |
4 | #include "safe-memset.h" | |
5 | ||
6 | void safe_memset(void *data, int c, size_t size) | |
7 | 1 | { |
8 | 1 | volatile unsigned int volatile_zero_idx = 0; |
9 | 1 | volatile unsigned char *p = data; |
10 | ||
11 | 1 | if (size == 0) |
12 | 0 | return; |
13 | ||
14 | 1 | do { |
15 | 1 | memset(data, c, size); |
16 | 1 | } while (p[volatile_zero_idx] != c); |
17 | 1 | } |