freebsd-src/usr.sbin/bhyve
Pierre Pronchery 869d760cb9 bhyve: avoid TOCTOU on iov_len in virtio_vq_recordon()
Avoid a race condition when accessing guest memory, by reading memory
contents only once.

This has also been applied to _vq_record() in
sys/dev/beri/virtio/virtio.c, as per markj@'s suggestion.

Reported by:	Synacktiv
Reviewed by:	markj
Security:	HYP-10
Sponsored by:	The Alpha-Omega Project
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D45735
2024-09-27 10:20:53 -04:00
..
aarch64 bhyve: Assert success in a couple of libvmmapi calls 2024-07-31 22:41:30 +00:00
amd64 bhyve: Make boot ROM handling more consistent 2024-08-19 13:55:47 +00:00
gdb bhyve: Add arm64 support to the gdb stub 2024-06-04 15:03:17 -04:00
kbdlayout Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
acpi.c bhyve: return ENOMEM instead of EFAULT and call free() after being used 2024-01-16 09:39:25 -05:00
acpi.h
acpi_device.c
acpi_device.h
ahci.h
audio.c bhyve/audio.c: avoid re-calculating the length of dev_name 2023-12-26 09:36:31 -07:00
audio.h
basl.c bhyve: add config option to load ACPI tables into memory 2023-08-22 07:49:00 +02:00
basl.h
bhyve.8 bhyve: Add raw tcp to uart backend 2024-09-19 09:20:25 +00:00
bhyve_config.5 bhyve: Add raw tcp to uart backend 2024-09-19 09:20:25 +00:00
bhyvegc.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
bhyvegc.h
bhyverun.c bhyve: Make boot ROM handling more consistent 2024-08-19 13:55:47 +00:00
bhyverun.h bhyve: Fix handling of -r 2024-04-29 10:13:50 -04:00
block_if.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
block_if.h
bootrom.c bhyve: Make boot ROM handling more consistent 2024-08-19 13:55:47 +00:00
bootrom.h bhyve: Make boot ROM handling more consistent 2024-08-19 13:55:47 +00:00
config.c
config.h
console.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
console.h
debug.h
gdb.c bhyve: Optionally put vCPUs back in the debug state after resuming 2024-08-07 19:27:23 +00:00
gdb.h bhyve: refactor gdbstub to enable single-stepping on AMD CPUs 2023-12-12 15:28:59 -08:00
hda_codec.c
hda_reg.h
hdac_reg.h
iov.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
iov.h
ipc.h
libslirp.h bhyve: Add a slirp network backend 2023-11-22 15:18:46 -05:00
Makefile ctl: Support NVMe requests in debug trace functions 2024-05-02 16:31:34 -07:00
Makefile.depend
Makefile.depend.options
mem.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
mem.h
mevent.c bhyve: Extend mevent to support updating timers 2024-04-10 11:17:56 -04:00
mevent.h bhyve: Extend mevent to support updating timers 2024-04-10 11:17:56 -04:00
mevent_test.c
net_backend_netgraph.c bhyve: Split backends into separate files 2023-11-22 15:18:46 -05:00
net_backend_netmap.c bhyve: Split backends into separate files 2023-11-22 15:18:46 -05:00
net_backend_slirp.c bhyve: correct slirp_recv_disable() 2024-01-17 09:12:44 -09:00
net_backends.c bhyve: Split backends into separate files 2023-11-22 15:18:46 -05:00
net_backends.h bhyve: Split backends into separate files 2023-11-22 15:18:46 -05:00
net_backends_priv.h bhyve: Split backends into separate files 2023-11-22 15:18:46 -05:00
net_utils.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
net_utils.h
pci_ahci.c bhyve: Initialize stack buffer in pci_ahci 2024-09-26 14:06:10 -04:00
pci_e82545.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
pci_emul.c bhyve: Fix an inverted check when enabling PCI busmastering 2024-09-21 13:42:15 +00:00
pci_emul.h bhyve: Support legacy PCI interrupts on arm64 2024-04-10 11:17:56 -04:00
pci_fbuf.c bhyve: avoid updating fbaddr when vm_mmap_memseg fails 2024-08-26 16:23:52 -04:00
pci_hda.c bhyve: validate corb->wp to avoid infinite loop 2024-09-22 07:25:02 -04:00
pci_hda.h
pci_hostbridge.c
pci_irq.h bhyve: Support legacy PCI interrupts on arm64 2024-04-10 11:17:56 -04:00
pci_nvme.c bhyve: Use NVMEF macro to construct fields 2024-01-29 11:02:07 -08:00
pci_passthru.c bhyve: Treat the COMMAND register for PCI passthru devices as emulated 2024-07-31 10:50:33 -04:00
pci_passthru.h bhyve: Improve pcifd function naming 2023-10-04 12:53:16 -04:00
pci_uart.c bhyve: Move device model-independent UART code into a separate file 2024-03-21 01:04:48 -04:00
pci_virtio_9p.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
pci_virtio_block.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
pci_virtio_console.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
pci_virtio_input.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
pci_virtio_net.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
pci_virtio_rnd.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
pci_virtio_scsi.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
pci_xhci.c bhyve: simplify slot validation in xHCI emulation 2024-09-21 13:36:10 -04:00
pci_xhci.h
pctestdev.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
pctestdev.h
qemu_fwcfg.c bhyve: fix buffer overflow in QemuFwCfg 2023-10-17 15:57:28 +02:00
qemu_fwcfg.h
qemu_loader.c
qemu_loader.h
rfb.c bhyve: support noVNC SetPixelFormat request 2024-09-09 10:21:17 -07:00
rfb.h
rtc_pl031.c bhyve: Implement a PL031 RTC on arm64 2024-04-10 11:17:56 -04:00
rtc_pl031.h bhyve: Implement a PL031 RTC on arm64 2024-04-10 11:17:56 -04:00
smbiostbl.c bhyve: Use vm_get_highmem_base() instead of hard-coding the value 2024-04-10 11:17:55 -04:00
smbiostbl.h
snapshot.c bhyve: Use vm_get_highmem_base() instead of hard-coding the value 2024-04-10 11:17:55 -04:00
snapshot.h bhyve: Remove init_snapshot() and initialize static vars 2023-10-17 14:26:51 -04:00
sockstream.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
sockstream.h
tpm_device.c bhyve: add cmdline option for TPM emulation 2023-08-17 08:17:59 +02:00
tpm_device.h bhyve: add cmdline option for TPM emulation 2023-08-17 08:17:59 +02:00
tpm_emul.h
tpm_emul_passthru.c
tpm_intf.h
tpm_intf_crb.c bhyve: avoid a potential deadlock 2024-08-05 09:48:22 +02:00
tpm_ppi.h
tpm_ppi_qemu.c bhyve: fix Out-Of-Bounds read/write heap in tpm_ppi_mem_handler 2024-09-04 14:38:11 +00:00
uart_backend.c bhyve: Add raw tcp to uart backend 2024-09-19 09:20:25 +00:00
uart_backend.h bhyve: Move lock of uart frontend to uart backend 2024-05-01 11:09:31 -04:00
uart_emul.c bhyve: Move lock of uart frontend to uart backend 2024-05-01 11:09:31 -04:00
uart_emul.h bhyve: Add PL011 UART emulation 2024-04-10 11:17:55 -04:00
uart_pl011.c bhyve: Move lock of uart frontend to uart backend 2024-05-01 11:09:31 -04:00
usb_emul.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
usb_emul.h
usb_mouse.c Fix issue with Linux guest XHCI tablet probing. 2024-01-14 21:38:55 +10:00
virtio.c bhyve: avoid TOCTOU on iov_len in virtio_vq_recordon() 2024-09-27 10:20:53 -04:00
virtio.h usr.sbin: Remove repeated words 2024-04-11 11:53:37 -06:00
vmexit.h bhyve: Split vmexit handling into a separate file 2023-10-04 12:53:16 -04:00
vmgenc.c usr.sbin: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:01 -07:00
vmgenc.h