diff options
author | Akihiko Odaki <akihiko.odaki@daynix.com> | 2023-06-01 12:18:59 +0900 |
---|---|---|
committer | Michael Tokarev <mjt@tls.msk.ru> | 2023-11-29 16:20:11 +0300 |
commit | 3c0463a650008aec7de29cf84540652730510921 (patch) | |
tree | 89f2d307010d562fe4a09fe2352b2a32f92c66ba /include | |
parent | fdebed6dcd788e408deaa0e9bf1abe85af139623 (diff) |
net: Update MemReentrancyGuard for NIC
Recently MemReentrancyGuard was added to DeviceState to record that the
device is engaging in I/O. The network device backend needs to update it
when delivering a packet to a device.
This implementation follows what bottom half does, but it does not add
a tracepoint for the case that the network device backend started
delivering a packet to a device which is already engaging in I/O. This
is because such reentrancy frequently happens for
qemu_flush_queued_packets() and is insignificant.
Fixes: CVE-2023-3019
Reported-by: Alexander Bulekov <alxndr@bu.edu>
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Acked-by: Alexander Bulekov <alxndr@bu.edu>
Signed-off-by: Jason Wang <jasowang@redhat.com>
(cherry picked from commit 9050f976e447444ea6ee2ba12c9f77e4b0dc54bc)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/net.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/net.h b/include/net/net.h index 4f1b702f00..5a7c0e9ebf 100644 --- a/include/net/net.h +++ b/include/net/net.h @@ -118,6 +118,7 @@ struct NetClientState { typedef struct NICState { NetClientState *ncs; NICConf *conf; + MemReentrancyGuard *reentrancy_guard; void *opaque; bool peer_deleted; } NICState; |