aboutsummaryrefslogtreecommitdiff
path: root/src/support/cleanse.cpp
diff options
context:
space:
mode:
authorTim Ruffing <crypto@timruffing.de>2019-06-05 22:43:28 +0200
committerTim Ruffing <crypto@timruffing.de>2019-06-06 11:49:11 +0200
commitcac30a436cab3641bba3b774d3d3ddbc426e7908 (patch)
tree9aaee7a038f9753f347f8ad843efcf96d355f85b /src/support/cleanse.cpp
parent52ec4c64e89f478cd2134dbf25f5987d39e9b8bc (diff)
Clean up logic in memory_cleanse() for MSVC
Commit fbf327b13868861c2877c5754caf5a9816f2603c ("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.
Diffstat (limited to 'src/support/cleanse.cpp')
-rw-r--r--src/support/cleanse.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/support/cleanse.cpp b/src/support/cleanse.cpp
index 17a4a4c2b2..f895e96568 100644
--- a/src/support/cleanse.cpp
+++ b/src/support/cleanse.cpp
@@ -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
}