safe_memset() wasn't safe with modern compilers anymore. Another try based on David Jacobson's code in https://www.mail-archive.com/openssl-dev@openssl.org/msg34134.html :
safe_memset() wasn't safe with modern compilers anymore.
Another try based on David Jacobson's code in
https://www.mail-archive.com/openssl-dev@openssl.org/msg34134.html :

"""
Since vs points to a volatile, the load in the while clause actually has to
be done. That forces the compiler to actually store c into at least the byte
that is tested, in practice byte zero. But the fact that the index is
volatile zero, and since it is volatile it could spontaneously change to
anything, the compiler has to store c into all bytes.

The key observation is that while you can't pass a volatile to memset (you
get a warning and the volatile gets stripped away), you can use a volatile
in a test that could go the wrong way if the memset were elided.
"""

dscho/dovecot,dscho/dovecot,dscho/dovecot,dscho/dovecot,dscho/dovecot