diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2017-12-19 14:03:35 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2017-12-19 14:06:42 +0000 |
commit | 6c94516fb49f450f291c2092b829f3094215cf04 (patch) | |
tree | 3da169933fb461079dd0169907e3504126f0c126 /contrib/epee/src/wipeable_string.cpp | |
parent | wipeable_string: ignore reserve size less than actual size (diff) | |
download | monero-6c94516fb49f450f291c2092b829f3094215cf04.tar.xz |
wipeable_string: move a wipe from reserve to grow
That way, all implicit wipes ends up in grow, which is more robust
Diffstat (limited to 'contrib/epee/src/wipeable_string.cpp')
-rw-r--r-- | contrib/epee/src/wipeable_string.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/contrib/epee/src/wipeable_string.cpp b/contrib/epee/src/wipeable_string.cpp index 2ec1e5469..894c47bbd 100644 --- a/contrib/epee/src/wipeable_string.cpp +++ b/contrib/epee/src/wipeable_string.cpp @@ -89,6 +89,8 @@ void wipeable_string::grow(size_t sz, size_t reserved) reserved = sz; if (reserved <= buffer.capacity()) { + if (sz < buffer.size()) + wipefunc(buffer.data() + sz, buffer.size() - sz); buffer.resize(sz); return; } @@ -115,9 +117,6 @@ void wipeable_string::pop_back() void wipeable_string::resize(size_t sz) { - CHECK_AND_ASSERT_THROW_MES(wipefunc, "wipefunc is not set"); - if (sz < buffer.size()) - wipefunc(buffer.data() + sz, buffer.size() - sz); grow(sz); } |