)]}'
{
  "commit": "b07833c067ec08648541694dc11e02b5ab6b956a",
  "tree": "6153ea2367fae8e7bcfdb170697227716355660d",
  "parents": [
    "d701c51f7e4e57f61c4947390514fe631e06202f"
  ],
  "author": {
    "name": "Nicola Murino",
    "email": "nicola.murino@gmail.com",
    "time": "Sun Jul 19 20:28:02 2026 +0200"
  },
  "committer": {
    "name": "Nicola Murino",
    "email": "nicola.murino@gmail.com",
    "time": "Mon Aug 03 14:00:09 2026 -0700"
  },
  "message": "ssh: return window credit for discarded extended data\n\nhandleData subtracts the length of every data packet from the receive\nwindow, but extended data with a type code other than\nSSH2_EXTENDED_DATA_STDERR is then silently discarded and, since no API\nexists to read it, its window credit was never returned: adjustWindow\nonly runs as a side effect of reading a stream. A peer sending\nextended data with an unknown type code could therefore permanently\nshrink the channel window, down to a complete stall of the channel.\n\nCredit the discarded bytes back through adjustWindow. adjustWindow\nreturns io.EOF if the local side has already sent a channel close;\nignore it like ReadExtended does, since an error returned here would\nterminate the mux read loop and tear down the whole connection. For\ncomparison, OpenSSH rejects extended data with unexpected type codes\noutright and never buffers it, so the dropped bytes are simply never\ncredited back to the misbehaving peer.\n\nFixes golang/go#80333\n\nChange-Id: Ia311ce3ad008e7c89ce9752f1937c91374a4e74f\nReviewed-on: https://go-review.googlesource.com/c/crypto/+/802901\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Filippo Valsorda \u003cfilippo@golang.org\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4567f6a02e960e4a7208f3065918be013e4e4f67",
      "old_mode": 33188,
      "old_path": "ssh/channel.go",
      "new_id": "ba3279e91d68f95337b0117987e94cb9e52b7083",
      "new_mode": 33188,
      "new_path": "ssh/channel.go"
    },
    {
      "type": "modify",
      "old_id": "2266863064fc4a25c1e06a1e3e6d07e3ff8734fb",
      "old_mode": 33188,
      "old_path": "ssh/channel_test.go",
      "new_id": "34d9d430593d986098a40e1a508f42f6e236889d",
      "new_mode": 33188,
      "new_path": "ssh/channel_test.go"
    }
  ]
}
