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:
parent
52ec4c64e8
commit
cac30a436c
1 changed files with 3 additions and 3 deletions
|
@ -30,14 +30,14 @@
|
||||||
*/
|
*/
|
||||||
void memory_cleanse(void *ptr, size_t len)
|
void memory_cleanse(void *ptr, size_t len)
|
||||||
{
|
{
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
SecureZeroMemory(ptr, len);
|
||||||
|
#else
|
||||||
std::memset(ptr, 0, len);
|
std::memset(ptr, 0, len);
|
||||||
|
|
||||||
/* As best as we can tell, this is sufficient to break any optimisations that
|
/* 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
|
might try to eliminate "superfluous" memsets. If there's an easy way to
|
||||||
detect memset_s, it would be better to use that. */
|
detect memset_s, it would be better to use that. */
|
||||||
#if defined(_MSC_VER)
|
|
||||||
SecureZeroMemory(ptr, len);
|
|
||||||
#else
|
|
||||||
__asm__ __volatile__("" : : "r"(ptr) : "memory");
|
__asm__ __volatile__("" : : "r"(ptr) : "memory");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue