Skip to content

Commit e5c8eda

Browse files
edumazetkuba-moo
authored andcommitted
udp: call skb_orphan() before skb_attempt_defer_free()
Standard UDP receive path does not use skb->destructor. But skmsg layer does use it, since it calls skb_set_owner_sk_safe() from udp_read_skb(). This then triggers this warning in skb_attempt_defer_free(): DEBUG_NET_WARN_ON_ONCE(skb->destructor); We must call skb_orphan() to fix this issue. Fixes: 6471658 ("udp: use skb_attempt_defer_free()") Reported-by: syzbot+3e68572cf2286ce5ebe9@syzkaller.appspotmail.com Closes: https://lore.kernel.org/netdev/695b83bd.050a0220.1c9965.002b.GAE@google.com/T/#u Signed-off-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20260105093630.1976085-1-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 7801edc commit e5c8eda

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

net/ipv4/udp.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1851,6 +1851,7 @@ void skb_consume_udp(struct sock *sk, struct sk_buff *skb, int len)
18511851
sk_peek_offset_bwd(sk, len);
18521852

18531853
if (!skb_shared(skb)) {
1854+
skb_orphan(skb);
18541855
skb_attempt_defer_free(skb);
18551856
return;
18561857
}

0 commit comments

Comments
 (0)