From a67f0a537e4e0e70c575d3606ce3460f3b16b5f1 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Sat, 11 Jul 2009 12:21:59 +0000 Subject: [PATCH] Ensure 'unsigned long' is 4 bytes long (Georg Sauthoff). --- src/security/digest/sha1/sha1MessageDigest.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/security/digest/sha1/sha1MessageDigest.cpp b/src/security/digest/sha1/sha1MessageDigest.cpp index a51e250d..51eec6ae 100644 --- a/src/security/digest/sha1/sha1MessageDigest.cpp +++ b/src/security/digest/sha1/sha1MessageDigest.cpp @@ -27,6 +27,7 @@ #include "vmime/security/digest/sha1/sha1MessageDigest.hpp" #include +#include namespace vmime { @@ -161,8 +162,8 @@ void sha1MessageDigest::finalize() i = j = 0; std::memset(m_buffer, 0, 64); - std::memset(m_state, 0, 20); - std::memset(m_count, 0, 8); + std::memset(m_state, 0, 5 * sizeof(unsigned long)); + std::memset(m_count, 0, 2 * sizeof(unsigned long)); std::memset(&finalcount, 0, 8); } @@ -201,6 +202,8 @@ void sha1MessageDigest::transform unsigned long l[16]; } CHAR64LONG16; + assert(sizeof(unsigned long) == 4); + CHAR64LONG16* block; static unsigned char workspace[64];