aboutsummaryrefslogtreecommitdiff
path: root/src/common/password.cpp
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-10-26 10:21:06 +0100
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-11-27 22:15:37 +0000
commit549508296d5824093d22eccb3af5976c325c6329 (patch)
tree287c2040db033b9ba9e98223791244e4fd53efc1 /src/common/password.cpp
parentadd a memwipe function (diff)
downloadmonero-549508296d5824093d22eccb3af5976c325c6329.tar.xz
use memwipe in a few relevant places
Diffstat (limited to '')
-rw-r--r--src/common/password.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/common/password.cpp b/src/common/password.cpp
index 5d56464a5..01eaf62e1 100644
--- a/src/common/password.cpp
+++ b/src/common/password.cpp
@@ -46,6 +46,8 @@
#include "readline_buffer.h"
#endif
+#include "common/memwipe.h"
+
namespace
{
#if defined(_WIN32)
@@ -163,8 +165,9 @@ namespace
void clear(std::string& pass) noexcept
{
- //! TODO Call a memory wipe function that hopefully is not optimized out
- pass.replace(0, pass.capacity(), pass.capacity(), '\0');
+ // technically, the std::string documentation says the data should not be modified,
+ // but there seems to be no way to get a non const raw pointer to the data
+ memwipe((void*)pass.data(), pass.size());
pass.clear();
}