summaryrefslogtreecommitdiff
path: root/secblock.h
diff options
context:
space:
mode:
authorweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2009-05-01 18:49:10 +0000
committerweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2009-05-01 18:49:10 +0000
commitd93f894a186f173d8928c64058ce3686c2ad3b83 (patch)
tree328460a74b10dd30edc0d2a9db153be9f20ed73c /secblock.h
parent77e3dd2dfad7412463035f90f5d6ac36fd05075e (diff)
downloadcryptopp-d93f894a186f173d8928c64058ce3686c2ad3b83.tar.gz
add and use SecureWipeArray() to avoid compiler optimizing away memset() (reported by Paul Pelzl)
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@467 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'secblock.h')
-rw-r--r--secblock.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/secblock.h b/secblock.h
index d66470e..6f3aa63 100644
--- a/secblock.h
+++ b/secblock.h
@@ -130,7 +130,7 @@ public:
void deallocate(void *p, size_type n)
{
- memset_z(p, 0, n*sizeof(T));
+ SecureWipeArray((pointer)p, n);
if (CRYPTOPP_BOOL_ALIGN16_ENABLED && T_Align16 && n*sizeof(T) >= 16)
{
@@ -232,7 +232,7 @@ public:
assert(n <= S);
assert(m_allocated);
m_allocated = false;
- memset(p, 0, n*sizeof(T));
+ SecureWipeArray((pointer)p, n);
}
else
m_fallbackAllocator.deallocate(p, n);
@@ -244,7 +244,7 @@ public:
{
assert(oldSize <= S);
if (oldSize > newSize)
- memset(p + newSize, 0, (oldSize-newSize)*sizeof(T));
+ SecureWipeArray(p+newSize, oldSize-newSize);
return p;
}