mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-11-10 20:48:12 +00:00
Merge branch 'fix-udp-splice-checksum-alignment-across-fragments'
Alireza Asgari via says: ==================== Fix UDP splice checksum alignment across fragments When skb_splice_from_iter() appends several pipe fragments, it updates skb->len only after the loop. The software-checksum helper nevertheless uses that unchanged length as the checksum position for each fragment. An odd number of bytes already appended during the call therefore gives later fragments the wrong checksum alignment. A standalone reproducer primes a UDP socket with sendto(MSG_MORE), splices distinct pipe buffers, then uncorks the datagram. The send succeeds, but the receiver drops the packet and increments its checksum-error counter. Patch 1 passes the actual cumulative offset to the checksum helper without changing the final length update or partial-progress handling. Patch 2 adds a loopback selftest covering IPv4, IPv6, IPv4-mapped destinations, connected and unconnected sockets, prefixes and fragment boundaries. ==================== Link: https://patch.msgid.link/20260924-fix-udp-splice-checksum-v1-0-fe61d65447a8@asgari.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
38b7c47069
4 changed files with 385 additions and 3 deletions
Loading…
Add table
Add a link
Reference in a new issue