)]}'
{
  "commit": "8ce0beeaeefe49da7aad98df203db50d291f07f7",
  "tree": "a61ef834faf99446e3a4e81a6107d5d6bb3a71af",
  "parents": [
    "223176c250ff2c62c6d8adf1f93e6d42ab0bf4ad"
  ],
  "author": {
    "name": "Ryan Macnak",
    "email": "rmacnak@google.com",
    "time": "Tue Jun 23 14:52:28 2026 -0700"
  },
  "committer": {
    "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jun 23 14:52:28 2026 -0700"
  },
  "message": "[dart:io, fuchsia] Fix use-after-free when closing a server socket on the event handler\u0027s thread races with accept/read/write on the Dart thread.\n\n - Add ASAN and UBSAN builder configurations.\n - Fix mismatch in build directory computation between build.py and test.py.\n - Manually add the sanitizer runtime libraries to the test package.\n - Fix memory leak in failing to load the profiler symbols.\n - Fix memory leak in CPU feature detection.\n - Remove any pending packets refering to the socket\u0027s DescriptorInfo before deleting it.\n\nTEST\u003dci (though ASAN doesn\u0027t detect the issue without extra sleeps)\nBug: b/524683625\nChange-Id: Icddf9a34889e2b96cdf6d6db2ac142abdb052bd9\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/516140\nCommit-Queue: Ryan Macnak \u003crmacnak@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "79ebc1be5fb6539279db04f5952d9538fec1b478",
      "old_mode": 33188,
      "old_path": "BUILD.gn",
      "new_id": "6d5477d5bb10c0237c4f489e03b97d58d06f401d",
      "new_mode": 33188,
      "new_path": "BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "7ca8fe06e59ef660f36486f400bba9f16020482d",
      "old_mode": 33188,
      "old_path": "runtime/bin/eventhandler_fuchsia.cc",
      "new_id": "8d8b17c014a3fb92869ec2be681202204c54b158",
      "new_mode": 33188,
      "new_path": "runtime/bin/eventhandler_fuchsia.cc"
    },
    {
      "type": "modify",
      "old_id": "2e4049ea322f6e69549e3c5c10c78005aad690ad",
      "old_mode": 33188,
      "old_path": "runtime/bin/exe_utils.cc",
      "new_id": "a5e2432950cf1c4ef9aa28881430a3a47284d188",
      "new_mode": 33188,
      "new_path": "runtime/bin/exe_utils.cc"
    },
    {
      "type": "modify",
      "old_id": "fe6ebff9907ad0a12042d24152dd87dac881e107",
      "old_mode": 33188,
      "old_path": "runtime/vm/cpuinfo_fuchsia.cc",
      "new_id": "e006cfce2d6329e4870be63e5617c623f002274d",
      "new_mode": 33188,
      "new_path": "runtime/vm/cpuinfo_fuchsia.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e5f5397327faa784e613e77786592ed92a32fad",
      "new_mode": 33188,
      "new_path": "tests/standalone/io/regress_b_524683625_test.dart"
    },
    {
      "type": "modify",
      "old_id": "ae17071048afcf6e5fd45d12c7ca9b0c0659bb07",
      "old_mode": 33188,
      "old_path": "tools/bots/test_matrix.json",
      "new_id": "8b74ebb0be547c2c372a36cbe4b2f4065422f28d",
      "new_mode": 33188,
      "new_path": "tools/bots/test_matrix.json"
    },
    {
      "type": "modify",
      "old_id": "9e47d32b3326be0edbec3d06a446b7fea5b2a527",
      "old_mode": 33188,
      "old_path": "tools/utils.py",
      "new_id": "50a82f6ea80b8b4bb2e315f4356020280eaa4d31",
      "new_mode": 33188,
      "new_path": "tools/utils.py"
    }
  ]
}
