)]}'
{
  "commit": "5ae8e578e495731553eddba11b2d0e86c91a00ce",
  "tree": "322c1e3e33909ef4bcaaec2b642a1a6721747781",
  "parents": [
    "0dc94a239c8bc3b7ef3aa0d059e54af960f459f4"
  ],
  "author": {
    "name": "Damien Neil",
    "email": "dneil@google.com",
    "time": "Tue Apr 14 21:46:24 2026 -0400"
  },
  "committer": {
    "name": "Gopher Robot",
    "email": "gobot@golang.org",
    "time": "Fri Jun 26 12:27:07 2026 -0700"
  },
  "message": "unicode/norm: avoid infinite loop on invalid input\n\nInvalid characters are given a Properties with a size of 0.\n\nThe nextComposed function can enter an infinite loop when\nencountering an invalid character, since it advances\nits input by the (possibly 0) character size.\n\nRather than finding every place which might assume characters\nhave a non-zero size, change compInfo to return a size-1\nProperties for invalid characters and use the property flags\nto record validity.\n\nFixes golang/go#80142\n\nChange-Id: Ie0791faefeddc1e8f671b0ed73f29e906a6a6964\nReviewed-on: https://go-review.googlesource.com/c/text/+/794100\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Damien Neil \u003cdneil@google.com\u003e\nReviewed-by: Neal Patel \u003cneal@golang.org\u003e\nReviewed-by: Neal Patel \u003cnealpatel@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f3a234e5f53eaf16c37783ae14a672e791549282",
      "old_mode": 33188,
      "old_path": "unicode/norm/forminfo.go",
      "new_id": "b3cf5d9bdee236a6c6af6f59573a46c6f425008a",
      "new_mode": 33188,
      "new_path": "unicode/norm/forminfo.go"
    },
    {
      "type": "modify",
      "old_id": "417c6b26894da4d3fa68883b6d049fa7a399c569",
      "old_mode": 33188,
      "old_path": "unicode/norm/iter.go",
      "new_id": "3cc059224d9d9ee63f344c6b9b78e43661107bcb",
      "new_mode": 33188,
      "new_path": "unicode/norm/iter.go"
    },
    {
      "type": "modify",
      "old_id": "4747ad07a839c12bf7d40fc68d450c54e4e1afc2",
      "old_mode": 33188,
      "old_path": "unicode/norm/normalize.go",
      "new_id": "60b1511caa2bada551ecca6cd0b028eca01a2904",
      "new_mode": 33188,
      "new_path": "unicode/norm/normalize.go"
    },
    {
      "type": "modify",
      "old_id": "855e7b5955de92fb95bd14fee15556fbcefcf953",
      "old_mode": 33188,
      "old_path": "unicode/norm/normalize_test.go",
      "new_id": "8e27435dc26b74154250162c309664357f42340a",
      "new_mode": 33188,
      "new_path": "unicode/norm/normalize_test.go"
    }
  ]
}
