)]}'
{
  "commit": "94dfe1cc5974c59359a013bf2a182ff417ce604f",
  "tree": "ab5abd7ae3b011afcdb09a6b72f8ad81bc1c5694",
  "parents": [
    "fc57037462fe543af5096065ea11b5ca7e100079"
  ],
  "author": {
    "name": "Guy Hershenbaum",
    "email": "hershi@meta.com",
    "time": "Thu Feb 08 16:09:06 2024"
  },
  "committer": {
    "name": "WebRTC LUCI CQ",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed May 08 08:27:19 2024"
  },
  "message": "Fix NetworkMonitor race condition when dispatching native observers\n\nThere is a race condition in NetworkMonitor where native observers may be removed concurrently with a notification being dispatched, leading to a dangling pointer dereference (trying to dispatch an observer that was already removed and destroyed), and from there a crash with access violation.\n\nBy ensuring dispatching to native observers is done within the synchronization lock that guards additions/removals of native observers protects against this race condition.\nSince native observers callbacks are posted to the networking thread in the C++ side anyway, there should be no risk of deadlock/starvation due to long-running observers.\n\nBug: webrtc:15837\nChange-Id: Id2b788f102dbd25de76ceed434c4cd68aa9a569e\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/338643\nReviewed-by: Taylor Brandstetter \u003cdeadbeef@webrtc.org\u003e\nCommit-Queue: Harald Alvestrand \u003chta@webrtc.org\u003e\nReviewed-by: Harald Alvestrand \u003chta@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#42256}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0bc461df18f2ab1c9c823cc19e4598d9f9985e1b",
      "old_mode": 33188,
      "old_path": "sdk/android/api/org/webrtc/NetworkMonitor.java",
      "new_id": "ca7e4d56563526b4ee37ced921be970a570628c3",
      "new_mode": 33188,
      "new_path": "sdk/android/api/org/webrtc/NetworkMonitor.java"
    }
  ]
}
