)]}'
{
  "commit": "77e7c129b4e7ce57ff531b4d26397e7552d3adfb",
  "tree": "9e1c6fc5247fb79f738547b8a6530b71f81ad979",
  "parents": [
    "768cd49766e2cb80ced75d21eb6909b6131d74c0"
  ],
  "author": {
    "name": "Jakub Kicinski",
    "email": "kuba@kernel.org",
    "time": "Tue Aug 19 19:19:51 2025 -0700"
  },
  "committer": {
    "name": "Robert Kolchmeyer",
    "email": "rkolchmeyer@google.com",
    "time": "Tue Aug 26 13:05:59 2025 -0700"
  },
  "message": "tls: fix handling of zero-length records on the rx_list\n\ncommit 62708b9452f8eb77513115b17c4f8d1a22ebf843 upstream.\n\nEach recvmsg() call must process either\n - only contiguous DATA records (any number of them)\n - one non-DATA record\n\nIf the next record has different type than what has already been\nprocessed we break out of the main processing loop. If the record\nhas already been decrypted (which may be the case for TLS 1.3 where\nwe don\u0027t know type until decryption) we queue the pending record\nto the rx_list. Next recvmsg() will pick it up from there.\n\nQueuing the skb to rx_list after zero-copy decrypt is not possible,\nsince in that case we decrypted directly to the user space buffer,\nand we don\u0027t have an skb to queue (darg.skb points to the ciphertext\nskb for access to metadata like length).\n\nOnly data records are allowed zero-copy, and we break the processing\nloop after each non-data record. So we should never zero-copy and\nthen find out that the record type has changed. The corner case\nwe missed is when the initial record comes from rx_list, and it\u0027s\nzero length.\n\nBUG\u003db/440567951\nTEST\u003dpresubmit\nRELEASE_NOTE\u003dFixed KCTF-62708b9 in the Linux kernel.\n\nReported-by: Muhammad Alifa Ramdhan \u003cramdhan@starlabs.sg\u003e\nReported-by: Billy Jheng Bing-Jhong \u003cbilly@starlabs.sg\u003e\nFixes: 84c61fe1a75b (\"tls: rx: do not use the standard strparser\")\nReviewed-by: Sabrina Dubroca \u003csd@queasysnail.net\u003e\nLink: https://patch.msgid.link/20250820021952.143068-1-kuba@kernel.org\nChange-Id: I3775cf972ab094b6082449d301c1b9c2d8da0181\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/109906\nReviewed-by: Kevin Berry \u003ckpberry@google.com\u003e\nTested-by: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "84d63fc7e36a423e5376ae98635bc42f2a8ac44a",
      "old_mode": 33188,
      "old_path": "net/tls/tls_sw.c",
      "new_id": "84c65e814dada08571498869f2f3e278f745029e",
      "new_mode": 33188,
      "new_path": "net/tls/tls_sw.c"
    }
  ]
}
