| Index: chrome/browser/safe_browsing/prefix_set.cc
|
| diff --git a/chrome/browser/safe_browsing/prefix_set.cc b/chrome/browser/safe_browsing/prefix_set.cc
|
| index 13890a0490c258d2d70e308e48610f72d742a24d..9d568cbbc64afaabdde2d40f2949095e76f0bf10 100644
|
| --- a/chrome/browser/safe_browsing/prefix_set.cc
|
| +++ b/chrome/browser/safe_browsing/prefix_set.cc
|
| @@ -192,7 +192,8 @@ PrefixSet* PrefixSet::LoadFile(const FilePath& filter_name) {
|
| // The file looks valid, start building the digest.
|
| base::MD5Context context;
|
| base::MD5Init(&context);
|
| - base::MD5Update(&context, &header, sizeof(header));
|
| + base::MD5Update(&context, base::StringPiece(reinterpret_cast<char*>(&header),
|
| + sizeof(header)));
|
|
|
| // Read the index vector. Herb Sutter indicates that vectors are
|
| // guaranteed to be contiuguous, so reading to where element 0 lives
|
| @@ -201,14 +202,18 @@ PrefixSet* PrefixSet::LoadFile(const FilePath& filter_name) {
|
| read = fread(&(index[0]), sizeof(index[0]), index.size(), file.get());
|
| if (read != index.size())
|
| return NULL;
|
| - base::MD5Update(&context, &(index[0]), index_bytes);
|
| + base::MD5Update(&context,
|
| + base::StringPiece(reinterpret_cast<char*>(&(index[0])),
|
| + index_bytes));
|
|
|
| // Read vector of deltas.
|
| deltas.resize(header.deltas_size);
|
| read = fread(&(deltas[0]), sizeof(deltas[0]), deltas.size(), file.get());
|
| if (read != deltas.size())
|
| return NULL;
|
| - base::MD5Update(&context, &(deltas[0]), deltas_bytes);
|
| + base::MD5Update(&context,
|
| + base::StringPiece(reinterpret_cast<char*>(&(deltas[0])),
|
| + deltas_bytes));
|
|
|
| base::MD5Digest calculated_digest;
|
| base::MD5Final(&calculated_digest, &context);
|
| @@ -251,7 +256,8 @@ bool PrefixSet::WriteFile(const FilePath& filter_name) const {
|
| size_t written = fwrite(&header, sizeof(header), 1, file.get());
|
| if (written != 1)
|
| return false;
|
| - base::MD5Update(&context, &header, sizeof(header));
|
| + base::MD5Update(&context, base::StringPiece(reinterpret_cast<char*>(&header),
|
| + sizeof(header)));
|
|
|
| // As for reads, the standard guarantees the ability to access the
|
| // contents of the vector by a pointer to an element.
|
| @@ -259,14 +265,19 @@ bool PrefixSet::WriteFile(const FilePath& filter_name) const {
|
| written = fwrite(&(index_[0]), sizeof(index_[0]), index_.size(), file.get());
|
| if (written != index_.size())
|
| return false;
|
| - base::MD5Update(&context, &(index_[0]), index_bytes);
|
| + base::MD5Update(&context,
|
| + base::StringPiece(reinterpret_cast<const char*>(&(index_[0])),
|
| + index_bytes));
|
|
|
| const size_t deltas_bytes = sizeof(deltas_[0]) * deltas_.size();
|
| written = fwrite(&(deltas_[0]), sizeof(deltas_[0]), deltas_.size(),
|
| file.get());
|
| if (written != deltas_.size())
|
| return false;
|
| - base::MD5Update(&context, &(deltas_[0]), deltas_bytes);
|
| + base::MD5Update(&context,
|
| + base::StringPiece(
|
| + reinterpret_cast<const char*>(&(deltas_[0])),
|
| + deltas_bytes));
|
|
|
| base::MD5Digest digest;
|
| base::MD5Final(&digest, &context);
|
|
|