diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 61ecfa9c9c6b..d3bf9f49012d 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -2619,7 +2619,9 @@ static struct sk_buff *manage_oob(struct sk_buff *skb, struct sock *sk, } } else if (!(flags & MSG_PEEK)) { skb_unlink(skb, &sk->sk_receive_queue); - consume_skb(skb); + WRITE_ONCE(u->oob_skb, NULL); + kfree_skb(skb); + kfree_skb(skb); skb = skb_peek(&sk->sk_receive_queue); } }