)]}'
{
  "commit": "767df5f03b977da8aacb5f6ae799545ffc2a5a7c",
  "tree": "5430eb3a1a2518b899f1ae87b5f3cba394ba92b6",
  "parents": [
    "527a0bbf2502501ec349ba6397ca1289dd4169ab"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Fri Feb 19 20:01:43 2021 +0000"
  },
  "committer": {
    "name": "Commit Bot service account",
    "email": "commit-bot@chromium.org",
    "time": "Fri Feb 19 20:01:43 2021 +0000"
  },
  "message": "Fix infinite spin in wgsl parser\n\nIf the parser hits a `maximum parser recursive depth reached` situation, then we need to try and resynchronize the parser.\n\nIf we fail to do this, then the synchronized_ flag may remain true, and the parser will believe progress is still being made.\nIn this situation the parser may try to reparse the same token, forever.\n\nBy calling sync_to() we either find the end of the block, and forward progress can be made, or synchronized_ is set to false, and the parser can error out cleanly.\n\nAdd test case from fuzzer report.\n\nFixed: chromium:1180128\nChange-Id: I893077677fd3dfbd4b9b400cd32db842b06db500\nReviewed-on: https://dawn-review.googlesource.com/c/tint/+/42029\nReviewed-by: David Neto \u003cdneto@google.com\u003e\nCommit-Queue: Ben Clayton \u003cbclayton@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "37098ed67882e413f40db7eb1ec951eafe2ee978",
      "old_mode": 33188,
      "old_path": "BUILD.gn",
      "new_id": "61e64b57b65af147c241baf7a53bcedf492973d1",
      "new_mode": 33188,
      "new_path": "BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "2704dcbd3a06c6fffd46af19b474d398049bad1b",
      "old_mode": 33188,
      "old_path": "src/CMakeLists.txt",
      "new_id": "885d0bd33b3443ec2d224bc5212b76cffcdf6405",
      "new_mode": 33188,
      "new_path": "src/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "727603ad65c733ecc69f12ba9d14b67ea29045f2",
      "old_mode": 33188,
      "old_path": "src/reader/wgsl/parser_impl.cc",
      "new_id": "94ffb5a21ab9b8936aa95991c8d9bde470a7bc0c",
      "new_mode": 33188,
      "new_path": "src/reader/wgsl/parser_impl.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "891c6822efa7095b756d95cd84a1b769dda21e5f",
      "new_mode": 33188,
      "new_path": "src/reader/wgsl/parser_impl_bug_cases_test.cc"
    }
  ]
}
