)]}'
{
  "commit": "303dafdc110da965b9b4b376dfd91f34d95b82da",
  "tree": "580bd061fc4f90f18090100b0edf642271edbcdb",
  "parents": [
    "787af2b8c80638c51a4fc8e44f84e6891f243ec7"
  ],
  "author": {
    "name": "Matthew Demidoff",
    "email": "m@bottleneck.cc",
    "time": "Sat Aug 29 14:58:34 2026 +0200"
  },
  "committer": {
    "name": "Matthew Demidoff",
    "email": "m@bottleneck.cc",
    "time": "Sat Aug 29 19:19:26 2026 +0200"
  },
  "message": "Abort instead of unwinding out of an inconsistent BTreeMap::split_off\n\nAfter the first move_suffix in Root::split_off, the source and result\ntrees share values through two temporarily invalid structures. If a\nlater key comparison panics, unwinding leaves the map with a stale\nlength over a partially detached tree, and consuming iteration then\ndouble-frees the shared values, reachable from safe code.\n\nGuard the descent loop with a mem::DropGuard that aborts on unwind,\narmed before the first move_suffix and dismissed once the borders are\nfixed.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "64348745aa07d2c447efc7bed4d194a5d10c920d",
      "old_mode": 33188,
      "old_path": "library/alloc/src/collections/btree/map/tests.rs",
      "new_id": "a920254872e19dd35fbee8adf5e454f48683b589",
      "new_mode": 33188,
      "new_path": "library/alloc/src/collections/btree/map/tests.rs"
    },
    {
      "type": "modify",
      "old_id": "87a79e6cf3f9328baf7bc9bd4dc713a5188a0d59",
      "old_mode": 33188,
      "old_path": "library/alloc/src/collections/btree/split.rs",
      "new_id": "ee40b2df74226cddcb5ecb1e2718f83881bed07e",
      "new_mode": 33188,
      "new_path": "library/alloc/src/collections/btree/split.rs"
    },
    {
      "type": "modify",
      "old_id": "eca844481252189b539fd966667515c569f98c59",
      "old_mode": 33188,
      "old_path": "library/alloctests/lib.rs",
      "new_id": "77e56d3ac54f40465c6fa32119be4ae13cf3f1d8",
      "new_mode": 33188,
      "new_path": "library/alloctests/lib.rs"
    }
  ]
}
