)]}'
{
  "commit": "f062244cdbbab374c8559fbdb6fa1ff153732e0c",
  "tree": "b4145973f8d8a4d897d6b06151f6710fd325af2f",
  "parents": [
    "352b4811465741f9094861301fd6933e3b9aed9b"
  ],
  "author": {
    "name": "Andy Heninger",
    "email": "andy.heninger@gmail.com",
    "time": "Sat Feb 13 13:28:10 2021 -0800"
  },
  "committer": {
    "name": "Frank Yung-Fong Tang",
    "email": "ftang@google.com",
    "time": "Wed Feb 17 18:49:55 2021 -0800"
  },
  "message": "ICU-21492 Fix regex compile assertion failure.\n\nA regex pattern containing nested look-behind blocks could trigger an assertion\nfailure during pattern compilation. The problem was caused by an off-by-one\nerror in the code that computes an upper bound on the match length, needed\nbecause look-behind expressions are constrained to not have unbounded match\nlength.\n\nNested look-behind blocks come into play because, when computing the maximum\nmatch length of an outer block, any inner look-behind blocks are skipped over -\nthey do not directly contribute to the length matched by the outer block. The\nproblem was in the code that skips over these nested look-behind blocks.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b75d80fa5015951cbd15397c6b85e5e47e56dab0",
      "old_mode": 33188,
      "old_path": "icu4c/source/i18n/regexcmp.cpp",
      "new_id": "ec8654d0ea07a5101010f49b04863da082f8a877",
      "new_mode": 33188,
      "new_path": "icu4c/source/i18n/regexcmp.cpp"
    },
    {
      "type": "modify",
      "old_id": "4609ee98f9af6d95c653af903b0a6267ee4533e8",
      "old_mode": 33188,
      "old_path": "icu4c/source/test/testdata/regextst.txt",
      "new_id": "12146bc30b5bb0f02f5b7ad052ba48387891d4dd",
      "new_mode": 33188,
      "new_path": "icu4c/source/test/testdata/regextst.txt"
    }
  ]
}
