net: initialize skb->peeked when cloning

syzbot reported __skb_try_recv_from_queue() was using skb->peeked
while it was potentially unitialized.

We need to clear it in __skb_clone()

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Eric Dumazet 2018-04-07 13:42:39 -07:00 committed by David S. Miller
parent b1993a2de1
commit b13dda9f9a

View File

@ -857,6 +857,7 @@ static struct sk_buff *__skb_clone(struct sk_buff *n, struct sk_buff *skb)
n->hdr_len = skb->nohdr ? skb_headroom(skb) : skb->hdr_len; n->hdr_len = skb->nohdr ? skb_headroom(skb) : skb->hdr_len;
n->cloned = 1; n->cloned = 1;
n->nohdr = 0; n->nohdr = 0;
n->peeked = 0;
n->destructor = NULL; n->destructor = NULL;
C(tail); C(tail);
C(end); C(end);