Code:  bool ParamTraits<SkBitmap>::Read(const base::Pickle* m,
                                  base::PickleIterator* iter,
                                  SkBitmap* r) {
  const char* fixed_data;
  int fixed_data_size = 0;
  if (!iter->ReadData(&fixed_data, &fixed_data_size) ||
     (fixed_data_size <= 0)) {
     return false;
  }
  if (fixed_data_size != sizeof(SkBitmap_Data))
    return false;  // Message is malformed.
 
  const char* variable_data;
  int variable_data_size = 0;
  if (!iter->ReadData(&variable_data, &variable_data_size) ||
     (variable_data_size < 0)) {
     return false;
  }
  const SkBitmap_Data* bmp_data =
      reinterpret_cast<const SkBitmap_Data*>(fixed_data);
  return bmp_data->InitSkBitmapFromData(r, variable_data, variable_data_size);
 }

Vulnerability Type: 
CWE ID: CWE-125
Summary: Incorrect IPC serialization in Skia in Google Chrome prior to 65.0.3325.146 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page.
Commit Message: Update IPC ParamTraits for SkBitmap to follow best practices.

Using memcpy() to serialize a POD struct is highly discouraged. Just use
the standard IPC param traits macros for doing it.

Bug: 779428
Change-Id: I48f52c1f5c245ba274d595829ed92e8b3cb41334
Reviewed-on: https://chromium-review.googlesource.com/899649
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534562}