)]}'
{
  "commit": "43fb7c74229d95570779d9724f770d50ff478123",
  "tree": "d387082c9291a12fe37744c02f0a7b96585deb17",
  "parents": [
    "abeacca61eea4f6803df4a595b656ea45c2d3249"
  ],
  "author": {
    "name": "Liu Changjie",
    "email": "liucj1228@outlook.com",
    "time": "Mon Oct 19 00:46:34 2026 +0800"
  },
  "committer": {
    "name": "Marc Kleine-Budde",
    "email": "mkl@pengutronix.de",
    "time": "Wed Oct 21 16:33:52 2026 +0200"
  },
  "message": "can: peak_usb: pcan_usb_fd_decode_buf(): accept short uCAN end-of-list records\n\nA PCAN-USB FD v2 running firmware 3.2.0 sends a 16-byte status record\nfollowed by a four-byte zero-size end marker.\n\nSince commit 93fcab2c6968 (\"can: peak_usb: validate uCAN receive record\nlengths\") these transfers cause repeated receive-buffer dumps while the\ninterface is up.\n\nThis has been observed on Linux 7.2.11-arch1-1 with matching kernel headers:\n- Classic CAN, 500 kbit/s: 25 decoder errors in 5 s before the fix; none in\n  15 s after.\n- CAN FD, 500 kbit/s nominal and 2 Mbit/s data: 26 decoder errors in 5 s\n  before the fix; none in 60 s after.\n- Three additional down/up cycles: no decoder errors.\n\npcan_usb_fd_decode_buf() requires a complete 12-byte struct pucan_msg\nbefore checking the size field, so it rejects the end marker with -EBADMSG.\n\nCheck that the size field is present before testing for an end marker.\nRequire the full header for nonzero-size records and keep the remaining\nrecord and payload length checks.\n\nFixes: 93fcab2c6968 (\"can: peak_usb: validate uCAN receive record lengths\")\nAssisted-by: LLM\nSigned-off-by: Liu Changjie \u003cliucj1228@outlook.com\u003e\nReviewed-by: Stéphane Grosjean \u003cs.grosjean@peak-system.fr\u003e\nLink: https://patch.msgid.link/CH5PR19MB997156AB3BE253C3BE445223B0AC992@CH5PR19MB997156.namprd19.prod.outlook.com\nCc: stable@vger.kernel.org\n[mkl: copy additional info to commit message]\nSigned-off-by: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\n---\nBuilt and tested the original and patched peak_usb modules on Arch\nLinux 7.2.11-arch1-1 with matching kernel headers.\n\n  - Classic CAN, 500 kbit/s: 25 decoder errors in 5 s before the fix;\n    none in 15 s after.\n  - CAN FD, 500 kbit/s nominal and 2 Mbit/s data: 26 decoder errors\n    in 5 s before the fix; none in 60 s after.\n  - Three additional down/up cycles: no decoder errors.\n\nUSB captures during the patched tests contained 406 packets with\nshort end markers. Neither receive-buffer dump recurred.\n\nThe CAN bus was disconnected; external TX/RX was not tested.\nOne startup \"can_change_state: oops, state did not change\" message and\nan RX dropped count reaching 2 were observed during the patched tests.\nTheir causes remain undetermined.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0d46f4ce5dca716b6a06233b9d4395495ab3c39b",
      "old_mode": 33188,
      "old_path": "drivers/net/can/usb/peak_usb/pcan_usb_fd.c",
      "new_id": "39f0740421c3677ecb2e273e0d6e103ff18ea34e",
      "new_mode": 33188,
      "new_path": "drivers/net/can/usb/peak_usb/pcan_usb_fd.c"
    }
  ]
}
