Skip to content

Commit dc63370

Browse files
zhengchaoshaodavem330
authored andcommitted
net/af_packet: check len when min_header_len equals to 0
User can use AF_PACKET socket to send packets with the length of 0. When min_header_len equals to 0, packet_snd will call __dev_queue_xmit to send packets, and sock->type can be any type. Reported-by: syzbot+5ea725c25d06fb9114c4@syzkaller.appspotmail.com Fixes: fd18942 ("bpf: Don't redirect packets with invalid pkt_len") Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 3b1c314 commit dc63370

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

net/packet/af_packet.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3037,8 +3037,8 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len)
30373037
if (err)
30383038
goto out_free;
30393039

3040-
if (sock->type == SOCK_RAW &&
3041-
!dev_validate_header(dev, skb->data, len)) {
3040+
if ((sock->type == SOCK_RAW &&
3041+
!dev_validate_header(dev, skb->data, len)) || !skb->len) {
30423042
err = -EINVAL;
30433043
goto out_free;
30443044
}

0 commit comments

Comments
 (0)