Skip to content

Commit 5c85a30

Browse files
committed
net/af_packet: check len when min_header_len equals to 0
JIRA: https://issues.redhat.com/browse/RHEL-84598 Upstream Status: net.git commit dc63370 commit dc63370 Author: Zhengchao Shao <shaozhengchao@huawei.com> Date: Wed Jul 27 17:33:12 2022 +0800 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> Signed-off-by: Davide Caratti <dcaratti@redhat.com>
1 parent 96f30f2 commit 5c85a30

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
@@ -3052,8 +3052,8 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len)
30523052
if (err)
30533053
goto out_free;
30543054

3055-
if (sock->type == SOCK_RAW &&
3056-
!dev_validate_header(dev, skb->data, len)) {
3055+
if ((sock->type == SOCK_RAW &&
3056+
!dev_validate_header(dev, skb->data, len)) || !skb->len) {
30573057
err = -EINVAL;
30583058
goto out_free;
30593059
}

0 commit comments

Comments
 (0)