BlobCache: fix uninitialized memory

When flattening the BlobCache, we insert padding for alignment. Make
sure to zero the padding bytes to have reproducible results.

Bug: 16569863
Change-Id: Id39eac5e6a1687459eb6bc2074b1339393fce711
This commit is contained in:
Antoine Labour 2014-07-28 15:35:15 -07:00
parent 1e92ed5e83
commit 5f6ebc2f9c

View file

@ -213,7 +213,14 @@ status_t BlobCache::flatten(void* buffer, size_t size) const {
memcpy(eheader->mData, keyBlob->getData(), keySize);
memcpy(eheader->mData + keySize, valueBlob->getData(), valueSize);
byteOffset += align4(entrySize);
size_t totalSize = align4(entrySize);
if (totalSize > entrySize) {
// We have padding bytes. Those will get written to storage, and contribute to the CRC,
// so make sure we zero-them to have reproducible results.
memset(eheader->mData + keySize + valueSize, 0, totalSize - entrySize);
}
byteOffset += totalSize;
}
return OK;