)]}'
{
  "commit": "ef04c9c028132b3e3dcd7ff43c2ddd0c24ad668b",
  "tree": "5d305858efe9a543a0ec1c1dacc47ad8d99b0e64",
  "parents": [
    "4beee493f626ffd6d05d8d05e603df9ff3b8717b"
  ],
  "author": {
    "name": "Mike Frysinger",
    "email": "vapier@chromium.org",
    "time": "Sat Aug 03 11:28:50 2019 -0400"
  },
  "committer": {
    "name": "Mike Frysinger",
    "email": "vapier@chromium.org",
    "time": "Mon Aug 05 17:38:16 2019 +0000"
  },
  "message": "string_conversion: fix pointer math\n\nSince target_ptr is of type uint16_t* already, we don\u0027t need to scale\nthe byte count as the language does that for us.  If it were void*, we\nwould need this code, but it\u0027s not.\n\nIn practice it\u0027s probably not a big deal due to how we preallocated\nmemory: when converting UTF8-\u003eUTF16, we\u0027d reserve the same number of\ncode units, and UTF8 takes more code units per codepoint than UTF16,\nso the UTF16 vector is always oversized.\n\nWhen converting UTF32-\u003eUTF16, we also reserve the same number of\ncode units, but since one UTF32 code unit could require two UTF16\ncode units (for U+10000 codepoints and higher), we would probably\ncorrupt memory in the process.  The APIs in this module don\u0027t seem\nto take into account that range in general, so for now I\u0027m only\nfixing the memory corruption.\n\nBug: google-breakpad:768\nChange-Id: Ibfaea4e866733ff8d99b505e72c500bd40d11a74\nReviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/1732888\nReviewed-by: Mark Mentovai \u003cmark@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8d806473f00f550550d737b5d554d96f3e3b335a",
      "old_mode": 33188,
      "old_path": "Makefile.am",
      "new_id": "c8a574067bb868362c7a0454088084f848d33bc8",
      "new_mode": 33188,
      "new_path": "Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "c6552bd18fe0e6d8c7d904151964d39451bbd886",
      "old_mode": 33188,
      "old_path": "Makefile.in",
      "new_id": "77b49562ca09c856c8756deabf11d8dc7439b582",
      "new_mode": 33188,
      "new_path": "Makefile.in"
    },
    {
      "type": "modify",
      "old_id": "cd05afd52df479a521a9f497851f94918ede8795",
      "old_mode": 33188,
      "old_path": "src/common/common.gyp",
      "new_id": "fe646b47adbcc4e345a92095ae37c836c651cda0",
      "new_mode": 33188,
      "new_path": "src/common/common.gyp"
    },
    {
      "type": "modify",
      "old_id": "040d3e86ea3a7a8991e425ba3501244806e7b4d7",
      "old_mode": 33188,
      "old_path": "src/common/string_conversion.cc",
      "new_id": "11d60a3664a673fa9c7d76e1966689b01b684344",
      "new_mode": 33188,
      "new_path": "src/common/string_conversion.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e9f9b55d951885f12fc1aefa214fde4c72d8062e",
      "new_mode": 33188,
      "new_path": "src/common/string_conversion_unittest.cc"
    }
  ]
}
