]> git.proxmox.com Git - mirror_qemu.git/commit - net/net.c
net: introduce qemu_receive_packet()
authorJason Wang <jasowang@redhat.com>
Wed, 24 Feb 2021 03:44:36 +0000 (11:44 +0800)
committerJason Wang <jasowang@redhat.com>
Mon, 15 Mar 2021 08:41:22 +0000 (16:41 +0800)
commit705df5466c98f3efdd2b68d3b31dad86858acad7
treef07da22288195fe5fb2a9aa912d082ad3056bb47
parent3de46e6fc489c52c9431a8a832ad8170a7569bd8
net: introduce qemu_receive_packet()

Some NIC supports loopback mode and this is done by calling
nc->info->receive() directly which in fact suppresses the effort of
reentrancy check that is done in qemu_net_queue_send().

Unfortunately we can't use qemu_net_queue_send() here since for
loopback there's no sender as peer, so this patch introduce a
qemu_receive_packet() which is used for implementing loopback mode
for a NIC with this check.

NIC that supports loopback mode will be converted to this helper.

This is intended to address CVE-2021-3416.

Cc: Prasad J Pandit <ppandit@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Jason Wang <jasowang@redhat.com>
include/net/net.h
include/net/queue.h
net/net.c
net/queue.c