)]}'
{
  "commit": "6d313ff83e12492d68be4e56b59150937e0230ae",
  "tree": "14ffb4fc14d2638672683eedfe84b7686aeed2c8",
  "parents": [
    "2bd5f8f65cf336b7a135d1e0139203eddd75e8ba"
  ],
  "author": {
    "name": "Philipp Hancke",
    "email": "philipp.hancke@googlemail.com",
    "time": "Tue Jun 16 13:17:45 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Jun 18 10:56:00 2026"
  },
  "message": "snap: cache early dtls packets in race condition\n\nIf SCTP is negotiated after the DTLS handshake has been completed there exists a race condition with SNAP wherein the answerer can start opening  channels (and send data) before the answer with the sctp-init arrives at the offerer.\n\nCache a limited amount of decrypted and authenticated packets and replay them after receiving the answer. This problem also exists for non-snap but is mitigated by the symmetric open on both sides so the loss in one direction does not matter much.\n\nNote: doing a \"half-open\" on the offerer socket does not work as it can not send acknowledgements of received packets due to the missing peer verification tag.\n\nBug: webrtc:426480601\nChange-Id: Ic8ee193b6ca8774943e19e37073814af144ce7d4\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/478160\nReviewed-by: Harald Alvestrand \u003chta@webrtc.org\u003e\nCommit-Queue: Philipp Hancke \u003cphilipp.hancke@googlemail.com\u003e\nReviewed-by: Victor Boivie \u003cboivie@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#48041}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "db6d02beb3a5ed86a5d77053638cc3de575b4c21",
      "old_mode": 33188,
      "old_path": "media/BUILD.gn",
      "new_id": "98ab48a2cbab4df70eb263a240d5d8ae3ad13ab3",
      "new_mode": 33188,
      "new_path": "media/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "907140c4dcb9bfd7e684a18027c37fcff1c5039e",
      "old_mode": 33188,
      "old_path": "media/sctp/dcsctp_transport.cc",
      "new_id": "2bdfe26a07d8e1397aa47ad12847f4c9cf565996",
      "new_mode": 33188,
      "new_path": "media/sctp/dcsctp_transport.cc"
    },
    {
      "type": "modify",
      "old_id": "bf945c94621839a9a587e93443b12195465bb5c1",
      "old_mode": 33188,
      "old_path": "media/sctp/dcsctp_transport.h",
      "new_id": "26dd14c497cd7f561a9f48707379a5ce8876c79d",
      "new_mode": 33188,
      "new_path": "media/sctp/dcsctp_transport.h"
    },
    {
      "type": "modify",
      "old_id": "8170aeaa843a04c569790ad2fa7d1e231be796ba",
      "old_mode": 33188,
      "old_path": "media/sctp/sctp_transport_internal.h",
      "new_id": "d535f99b6b7c3f41154bdc1cef22e955a3459681",
      "new_mode": 33188,
      "new_path": "media/sctp/sctp_transport_internal.h"
    },
    {
      "type": "modify",
      "old_id": "8f0e8f3a7ea0d4423343d4b5859c9fcc3941b31a",
      "old_mode": 33188,
      "old_path": "pc/BUILD.gn",
      "new_id": "ea462735a48428c4276f714a29bd1bbe89970579",
      "new_mode": 33188,
      "new_path": "pc/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "d178e3cd482f9b15332387599b1dabc71b18ac58",
      "old_mode": 33188,
      "old_path": "pc/data_channel_integrationtest.cc",
      "new_id": "043a3523cfd6b61e1eaada8f0841fc1e471b3b6a",
      "new_mode": 33188,
      "new_path": "pc/data_channel_integrationtest.cc"
    },
    {
      "type": "modify",
      "old_id": "534953823230ea0274af69c8612a571ff1c40548",
      "old_mode": 33188,
      "old_path": "pc/sctp_transport_unittest.cc",
      "new_id": "b3be4840a2d5355c0cc8de0233e7e2187bb0f33a",
      "new_mode": 33188,
      "new_path": "pc/sctp_transport_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "cb3cbcd983c37325277331cec9644df471655802",
      "old_mode": 33188,
      "old_path": "test/pc/sctp/fake_sctp_transport.h",
      "new_id": "da11cdd1f2f5946e5b8fd6a327d43368c82db986",
      "new_mode": 33188,
      "new_path": "test/pc/sctp/fake_sctp_transport.h"
    }
  ]
}
