Skip to content
Snippets Groups Projects
Commit 31aad8f9 authored by Fons Rademakers's avatar Fons Rademakers
Browse files

From Coverity:

properly zero out some values.


git-svn-id: http://root.cern.ch/svn/root/trunk@31757 27541ba8-7e3a-0410-8455-c3a389f83636
parent 5dd41477
No related branches found
No related tags found
No related merge requests found
......@@ -73,6 +73,12 @@ TMD5::TMD5(const UChar_t *digest)
memset(fDigest, 0, 16);
Error("TMD5::TMD5", "digest is 0");
}
// Zero out sensitive information
memset(fBuf, 0, 4*sizeof(UInt_t));
memset(fBits, 0, 2*sizeof(UInt_t));
memset(fIn, 0, 64);
fFinalized = kTRUE;
}
......@@ -82,11 +88,9 @@ TMD5::TMD5(const TMD5 &md5)
// MD5 copy ctor. Special copy ctor avoids copying unnecessary
// temp arrays when finalized.
if (!md5.fFinalized) {
memcpy(fBuf, md5.fBuf, 4*sizeof(UInt_t));
memcpy(fBits, md5.fBits, 2*sizeof(UInt_t));
memcpy(fIn, md5.fIn, 64);
}
memcpy(fBuf, md5.fBuf, 4*sizeof(UInt_t));
memcpy(fBits, md5.fBits, 2*sizeof(UInt_t));
memcpy(fIn, md5.fIn, 64);
memcpy(fDigest, md5.fDigest, 16);
fFinalized = md5.fFinalized;
......@@ -99,11 +103,10 @@ TMD5 &TMD5::operator=(const TMD5 &rhs)
// copying unnecessary temp arrays when finalized.
if (this != &rhs) {
if (!rhs.fFinalized) {
memcpy(fBuf, rhs.fBuf, 4*sizeof(UInt_t));
memcpy(fBits, rhs.fBits, 2*sizeof(UInt_t));
memcpy(fIn, rhs.fIn, 64);
}
memcpy(fBuf, rhs.fBuf, 4*sizeof(UInt_t));
memcpy(fBits, rhs.fBits, 2*sizeof(UInt_t));
memcpy(fIn, rhs.fIn, 64);
memcpy(fDigest, rhs.fDigest, 16);
fFinalized = rhs.fFinalized;
}
......@@ -538,13 +541,12 @@ Int_t TMD5::FileChecksum(const char *file, UChar_t digest[16])
}
//______________________________________________________________________________
TBuffer &operator<<(TBuffer &buf, const TMD5 &uuid)
TBuffer &operator<<(TBuffer &buf, const TMD5 &uuid)
{
// Input operator. Delegate to Streamer.
R__ASSERT( buf.IsWriting() );
const_cast<TMD5&>(uuid).Streamer(buf);
return buf;
const_cast<TMD5&>(uuid).Streamer(buf);
return buf;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment