)]}'
{
  "commit": "a7d096765b16cee30786f7de7c20ce11f549dbc6",
  "tree": "1a19093ec12c46043471600595ec0504d7c05e5c",
  "parents": [
    "6620b244e580cf84dbf4e58d762109dbad0f96e7"
  ],
  "author": {
    "name": "A. Cody Schuffelen",
    "email": "schuffelen@google.com",
    "time": "Fri Feb 12 16:22:39 2021 -0800"
  },
  "committer": {
    "name": "Ram Muthiah",
    "email": "rammuthiah@google.com",
    "time": "Tue Jun 08 19:32:32 2021 +0000"
  },
  "message": "Use android::base::EndsWith rather than custom suffix testing.\n\nThe custom suffix testing had a bug that could cause short filenames to\nunexpectedly produce matches for each other. If the string \"abc\" was\ntested if it matched the suffix \"zxcv\" it would unexpectedly match it.\nThis is because `expected_pos \u003d file.size() - suffix.size()` would\nunintentionally match the result of `file.rfind(suffix)` when\n`suffix.size() \u003d\u003d file.size() + 1`, because `rfind` returns\nstd::string::npos on no match, which is also -1.\n\nThis problem was previously unlikely with absolute path filenames, but\ncauses a lot of spurious matches with local file paths (aosp/1582769).\nThe absolute path filenames were much longer than the local filenames.\n\nBug: 178677060\nBug: 169261091\nBug: 182328055\nTest: Treehugger\nChange-Id: I132d3d00dadc21ad8789ca6cb02b313d3b73be88\nMerged-In: I132d3d00dadc21ad8789ca6cb02b313d3b73be88\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "86e16dcf98b792b048941a3d94f0989e432b5b7a",
      "old_mode": 33188,
      "old_path": "host/libs/config/fetcher_config.cpp",
      "new_id": "7e220b5f96cef1b607c4c2758e0edf06eeeb734c",
      "new_mode": 33188,
      "new_path": "host/libs/config/fetcher_config.cpp"
    }
  ]
}
