)]}'
{
  "commit": "7decb1a7c232cbc626b7e959e347f14ab3ecf37e",
  "tree": "c1a6f6c337c73e7934978e83514e9db5e95312d1",
  "parents": [
    "a1f7940b9718d56086c93552deca81282ec53430"
  ],
  "author": {
    "name": "Philipp Hancke",
    "email": "philipp.hancke@googlemail.com",
    "time": "Mon Jun 22 17:28:23 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jun 23 08:50:06 2026"
  },
  "message": "snap: fix race condition\n\nWith the SNAP out-of-band SCTP connect (WebRTC-Sctp-Snap), the dcSCTP\nsocket is created in DcSctpTransport::Start() but only connected later\nin MaybeConnectSocket(), once the DTLS transport becomes writable. The\nDTLS transport can decrypt and deliver an inbound packet as soon as its\nhandshake completes, which precedes writability (set_writable() is\ndeferred until ICE is writable). A packet arriving in that window is\ndelivered to the still-kClosed socket, which rejects it as having an\ninvalid verification tag.\n\nEnd-to-end this is masked by SCTP retransmission, so it only surfaces as\nan \u0027invalid verification tag\u0027 log line and a one-RTO delay opening the\ndata channel. The dcsctp_transport unit test observes the drop directly\nvia the mock socket.\n\nBug: webrtc:526609852\nChange-Id: Iff17f2deb766ae465d68728d613e8c17d046263e\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/484720\nReviewed-by: Victor Boivie \u003cboivie@webrtc.org\u003e\nReviewed-by: Denise Tell \u003cdct@google.com\u003e\nCommit-Queue: Philipp Hancke \u003cphilipp.hancke@googlemail.com\u003e\nCr-Commit-Position: refs/heads/main@{#48061}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "98ab48a2cbab4df70eb263a240d5d8ae3ad13ab3",
      "old_mode": 33188,
      "old_path": "media/BUILD.gn",
      "new_id": "1f1eac7950d13e79ec42e6519c3eb69caeee143a",
      "new_mode": 33188,
      "new_path": "media/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "2bdfe26a07d8e1397aa47ad12847f4c9cf565996",
      "old_mode": 33188,
      "old_path": "media/sctp/dcsctp_transport.cc",
      "new_id": "9b96c190847a4a19c5a53ec3750dcaaa05e8d543",
      "new_mode": 33188,
      "new_path": "media/sctp/dcsctp_transport.cc"
    },
    {
      "type": "modify",
      "old_id": "8973803100bb1f8130679ac745a0ae06c23409b6",
      "old_mode": 33188,
      "old_path": "media/sctp/dcsctp_transport_unittest.cc",
      "new_id": "450c72e8f393d7f62d3eef945dea414c2b57c44b",
      "new_mode": 33188,
      "new_path": "media/sctp/dcsctp_transport_unittest.cc"
    }
  ]
}
