)]}'
{
  "commit": "e8ad5cb7aacc413e7071604faf8feb5e51eac000",
  "tree": "b16c7cc246efb725e95dc5b3af8b4f3086462945",
  "parents": [
    "fe1af3a4189650f6a61d30bfcb431e61bb141f41"
  ],
  "author": {
    "name": "Nicola Murino",
    "email": "nicola.murino@gmail.com",
    "time": "Sun Jul 05 20:41:50 2026 +0200"
  },
  "committer": {
    "name": "Nicola Murino",
    "email": "nicola.murino@gmail.com",
    "time": "Sun Jul 12 08:19:12 2026 -0700"
  },
  "message": "ssh: initialize new channels fully before adding them to chanList\n\nnewChannel published the channel into the mux\u0027s chanList (via\nchanList.add) before assigning its localId, and openChannel/Accept set\nmaxIncomingPayload only after newChannel returned. For an outbound\nchannel, whose newChannel runs on an application goroutine, the mux\nloop could observe the channel through getChan before those fields\nwere initialized, reading a zero localId or maxIncomingPayload with no\nhappens-before relationship.\n\nAssign localId inside add while the chanList lock is held, and set\nmaxIncomingPayload (always channelMaxPacket) in newChannel itself, so\na channel returned by getChan is always fully initialized.\n\nChange-Id: Ib54a5d10dcb5c1ad8ed4dabe5d8d2790778be298\nReviewed-on: https://go-review.googlesource.com/c/crypto/+/797061\nReviewed-by: Filippo Valsorda \u003cfilippo@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nReviewed-by: Junyang Shao \u003cshaojunyang@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a65c79df2a4dabfa47115d072498516542faae55",
      "old_mode": 33188,
      "old_path": "ssh/channel.go",
      "new_id": "4567f6a02e960e4a7208f3065918be013e4e4f67",
      "new_mode": 33188,
      "new_path": "ssh/channel.go"
    },
    {
      "type": "modify",
      "old_id": "5775881c6a2ed5763aa71f988d5f7b550025846b",
      "old_mode": 33188,
      "old_path": "ssh/mux.go",
      "new_id": "955560bdae12e986b43bd54c108a9d12fb587319",
      "new_mode": 33188,
      "new_path": "ssh/mux.go"
    },
    {
      "type": "modify",
      "old_id": "1370091da78dccef86ba15a2d3f1e21c0ca3ca73",
      "old_mode": 33188,
      "old_path": "ssh/mux_test.go",
      "new_id": "5196b33d6f02f2690339e66c0fefea3f8fea2454",
      "new_mode": 33188,
      "new_path": "ssh/mux_test.go"
    }
  ]
}
