diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2020-06-28 00:59:57 +0200 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2020-06-28 01:06:39 +0200 |
commit | 885cc1d01d569b9a7b702aa81a2308c88a4e309c (patch) | |
tree | d9fbf25a97060ee6c96bdb7591feb6fc8eaec581 /src/Platform | |
parent | fded83d25cf8f8b4bbd80a1250c4777063ddc221 (diff) | |
download | VeraCrypt-885cc1d01d569b9a7b702aa81a2308c88a4e309c.tar.gz VeraCrypt-885cc1d01d569b9a7b702aa81a2308c88a4e309c.zip |
Linux/MacOSX: Erase sensitive memory explicitly instead of relying on the compiler not optimizing calls to method Memory::Erase
Diffstat (limited to 'src/Platform')
-rw-r--r-- | src/Platform/Buffer.cpp | 2 | ||||
-rw-r--r-- | src/Platform/Memory.cpp | 6 | ||||
-rw-r--r-- | src/Platform/Memory.h | 2 | ||||
-rw-r--r-- | src/Platform/StringConverter.cpp | 2 |
4 files changed, 3 insertions, 9 deletions
diff --git a/src/Platform/Buffer.cpp b/src/Platform/Buffer.cpp index 7c61dc48..82c2a3f1 100644 --- a/src/Platform/Buffer.cpp +++ b/src/Platform/Buffer.cpp @@ -77,7 +77,7 @@ namespace VeraCrypt void Buffer::Erase () { if (DataSize > 0) - Memory::Erase (DataPtr, DataSize); + burn (DataPtr, DataSize); } void Buffer::Free () diff --git a/src/Platform/Memory.cpp b/src/Platform/Memory.cpp index 785f758c..c4afed64 100644 --- a/src/Platform/Memory.cpp +++ b/src/Platform/Memory.cpp @@ -10,7 +10,6 @@ code distribution packages. */ -#include "Common/Tcdefs.h" #include "Memory.h" #include "Exception.h" #include <stdlib.h> @@ -62,11 +61,6 @@ namespace VeraCrypt memcpy (memoryDestination, memorySource, size); } - void Memory::Erase (void *memory, size_t size) - { - burn (memory, size); - } - void Memory::Zero (void *memory, size_t size) { memset (memory, 0, size); diff --git a/src/Platform/Memory.h b/src/Platform/Memory.h index 2b022dfd..e0d4bfe3 100644 --- a/src/Platform/Memory.h +++ b/src/Platform/Memory.h @@ -16,6 +16,7 @@ #include <new> #include <memory.h> #include "PlatformBase.h" +#include "Common/Tcdefs.h" #ifdef TC_WINDOWS @@ -76,7 +77,6 @@ namespace VeraCrypt static void *AllocateAligned (size_t size, size_t alignment); static int Compare (const void *memory1, size_t size1, const void *memory2, size_t size2); static void Copy (void *memoryDestination, const void *memorySource, size_t size); - static void Erase (void *memory, size_t size); static void Free (void *memory); static void FreeAligned (void *memory); static void Zero (void *memory, size_t size); diff --git a/src/Platform/StringConverter.cpp b/src/Platform/StringConverter.cpp index 6975bb39..e1a6df98 100644 --- a/src/Platform/StringConverter.cpp +++ b/src/Platform/StringConverter.cpp @@ -233,7 +233,7 @@ namespace VeraCrypt str.clear(); str.insert (0, &buf.front(), size); - Memory::Erase (&buf.front(), buf.size()); + burn (&buf.front(), buf.size()); } catch (...) { |