Clean up logic in memory_cleanse() for MSVC

Commit fbf327b138 ("Minimal code
changes to allow msvc compilation.") was indeed minimal in terms
of lines touched. But as a result of that minimalism it changed the
logic in memory_cleanse() to first call std::memset() and then
additionally the MSVC-specific SecureZeroMemory() function, and it
also moved a comment to the wrong location.

This commit removes the superfluous call to std::memset() on MSVC
and ensures that the comment is in the right position again.
This commit is contained in:
Tim Ruffing 2019-06-05 22:43:28 +02:00
parent 52ec4c64e8
commit cac30a436c

View file

@ -30,14 +30,14 @@
*/
void memory_cleanse(void *ptr, size_t len)
{
#if defined(_MSC_VER)
SecureZeroMemory(ptr, len);
#else
std::memset(ptr, 0, len);
/* As best as we can tell, this is sufficient to break any optimisations that
might try to eliminate "superfluous" memsets. If there's an easy way to
detect memset_s, it would be better to use that. */
#if defined(_MSC_VER)
SecureZeroMemory(ptr, len);
#else
__asm__ __volatile__("" : : "r"(ptr) : "memory");
#endif
}