From 864f7a0ceb89bd28b842ec5e0d0ed6abf112be9c Mon Sep 17 00:00:00 2001 From: weidai Date: Mon, 13 Mar 2006 13:26:41 +0000 Subject: fix MSVC 2005 warnings git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@217 57ff6487-cd31-0410-9ec3-f628ee90f5f0 --- secblock.h | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'secblock.h') diff --git a/secblock.h b/secblock.h index a828ba2..1212208 100644 --- a/secblock.h +++ b/secblock.h @@ -61,7 +61,7 @@ typename A::pointer StandardReallocate(A& a, T *p, typename A::size_type oldSize { A b; typename A::pointer newPointer = b.allocate(newSize, NULL); - memcpy(newPointer, p, sizeof(T)*STDMIN(oldSize, newSize)); + memcpy_s(newPointer, sizeof(T)*newSize, p, sizeof(T)*STDMIN(oldSize, newSize)); a.deallocate(p, oldSize); std::swap(a, b); return newPointer; @@ -211,7 +211,7 @@ public: explicit SecBlock(size_type size=0) : m_size(size) {m_ptr = m_alloc.allocate(size, NULL);} SecBlock(const SecBlock &t) - : m_size(t.m_size) {m_ptr = m_alloc.allocate(m_size, NULL); memcpy(m_ptr, t.m_ptr, m_size*sizeof(T));} + : m_size(t.m_size) {m_ptr = m_alloc.allocate(m_size, NULL); memcpy_s(m_ptr, m_size*sizeof(T), t.m_ptr, m_size*sizeof(T));} SecBlock(const T *t, size_type len) : m_size(len) { @@ -270,16 +270,18 @@ public: size_type size() const {return m_size;} bool empty() const {return m_size == 0;} + size_type SizeInBytes() const {return m_size*sizeof(T);} + void Assign(const T *t, size_type len) { New(len); - memcpy(m_ptr, t, len*sizeof(T)); + memcpy_s(m_ptr, m_size*sizeof(T), t, len*sizeof(T)); } void Assign(const SecBlock &t) { New(t.m_size); - memcpy(m_ptr, t.m_ptr, m_size*sizeof(T)); + memcpy_s(m_ptr, m_size*sizeof(T), t.m_ptr, m_size*sizeof(T)); } SecBlock& operator=(const SecBlock &t) @@ -292,15 +294,15 @@ public: { size_type oldSize = m_size; Grow(m_size+t.m_size); - memcpy(m_ptr+oldSize, t.m_ptr, t.m_size*sizeof(T)); + memcpy_s(m_ptr+oldSize, m_size*sizeof(T), t.m_ptr, t.m_size*sizeof(T)); return *this; } SecBlock operator+(const SecBlock &t) { SecBlock result(m_size+t.m_size); - memcpy(result.m_ptr, m_ptr, m_size*sizeof(T)); - memcpy(result.m_ptr+m_size, t.m_ptr, t.m_size*sizeof(T)); + memcpy_s(result.m_ptr, result.m_size*sizeof(T), m_ptr, m_size*sizeof(T)); + memcpy_s(result.m_ptr+m_size, t.m_size*sizeof(T), t.m_ptr, t.m_size*sizeof(T)); return result; } -- cgit v1.2.1