mirror of
https://github.com/torvalds/linux.git
synced 2026-09-12 20:53:03 +02:00
net: tcp: block mixing readable and unreadable frags
Protect tcp_sendmsg_locked() from mistakenly mixing readable and
unreadable page fragments in the same SKB.
Check that the devmem binding matches the existing SKB's readability.
If a mismatch is detected, avoid collapsing and create a new segment.
Fixes: bd61848900 ("net: devmem: Implement TX path")
Suggested-by: Eric Dumazet <edumazet@google.com>
Cc: Pavel Begunkov <asml.silence@gmail.com>
Cc: Stanislav Fomichev <sdf@fomichev.me>
Cc: Bobby Eshleman <bobbyeshleman@gmail.com>
Signed-off-by: Mina Almasry <almasrymina@google.com>
Link: https://patch.msgid.link/20260814191336.187243-2-almasrymina@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
68d8c65326
commit
d9c56501c7
|
|
@ -1240,7 +1240,8 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size)
|
|||
|
||||
trace_tcp_sendmsg_locked(sk, msg, skb, size_goal);
|
||||
|
||||
if (copy <= 0 || !tcp_skb_can_collapse_to(skb)) {
|
||||
if (copy <= 0 || !tcp_skb_can_collapse_to(skb) ||
|
||||
unlikely(skb_frags_readable(skb) != !binding)) {
|
||||
bool first_skb;
|
||||
|
||||
new_segment:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user