qemu-e2k/hw
Daniel P. Berrangé 950c4e6c94 opts: don't silently truncate long option values
The existing QemuOpts parsing code uses a fixed size 1024 byte buffer
for storing the option values. If a value exceeded this size it was
silently truncated and no error reported to the user. Long option values
is not a common scenario, but it is conceivable that they will happen.
eg if the user has a very deeply nested filesystem it would be possible
to come up with a disk path that was > 1024 bytes. Most of the time if
such data was silently truncated, the user would get an error about
opening a non-existant disk. If they're unlucky though, QEMU might use a
completely different disk image from another VM, which could be
considered a security issue. Another example program was in using the
-smbios command line arg with very large data blobs. In this case the
silent truncation will be providing semantically incorrect data to the
guest OS for SMBIOS tables.

If the operating system didn't limit the user's argv when spawning QEMU,
the code should honour whatever length arguments were given without
imposing its own length restrictions. This patch thus changes the code
to use a heap allocated buffer for storing the values during parsing,
lifting the arbitrary length restriction.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20180416111743.8473-4-berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-05-09 00:13:39 +02:00
..
9pfs 9p: add trace event for v9fs_setattr() 2018-05-02 08:59:24 +02:00
acpi virt_arm: acpi: reuse common build_fadt() 2018-03-13 23:09:50 +02:00
adc Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
alpha hw/alpha/dp264: Use the TYPE_SMC37C669_SUPERIO 2018-03-12 16:12:49 +01:00
arm hw/arm/virt: Introduce the iommu option 2018-05-04 18:52:58 +01:00
audio hw/audio: Fix crashes when devices are used on ISA bus without DMA 2018-03-26 14:37:13 +02:00
block hw/block/pflash_cfi: fix off-by-one error 2018-04-10 16:33:08 +02:00
bt hw/bt: Replace fprintf(stderr, "*\n" with error_report() 2018-01-22 09:51:00 +01:00
char hw/char/cmsdk-apb-uart.c: Accept more input after character read 2018-05-04 18:05:50 +01:00
core Use cpu_create(type) instead of cpu_init(cpu_model) 2018-03-19 14:10:36 -03:00
cpu hw: use "qemu/osdep.h" as first #include in source files 2017-12-18 17:07:02 +03:00
cris Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
display qxl: fix local renderer crash 2018-05-07 11:47:57 +02:00
dma hw/dma/i82374: Avoid double creation of the 82374 controller 2018-04-09 16:36:39 +02:00
gpio Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
hppa Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
i2c hw/i2c-ddc: Do not fail writes 2018-03-01 11:05:45 +00:00
i386 opts: don't silently truncate long option values 2018-05-09 00:13:39 +02:00
ide macio: fix NULL pointer dereference when issuing IDE trim 2018-03-27 00:38:00 -04:00
input hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
intc heathrow: remove obsolete heathow_init() function 2018-04-27 18:05:22 +10:00
ipack pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
ipmi qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
isa Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
lm32 Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
m68k hw/m68k/mcf5208: Fix trivial typo in board description 2018-05-01 15:37:54 +02:00
mem pc-dimm: move actual plug/unplug of a memory region to MemoryDevice 2018-05-07 10:00:02 -03:00
microblaze Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
mips serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS 2018-04-26 13:57:00 +01:00
misc mac_newworld: move wiring of macio IRQs to macio_newworld_realize() 2018-05-04 15:00:37 +10:00
moxie Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
net hw/net/smc91c111: Convert away from old_mmio 2018-05-04 18:05:50 +01:00
nios2 Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
nvram Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
openrisc Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
pci virtio,vhost,pci,pc: features, cleanups 2018-03-20 15:48:34 +00:00
pci-bridge virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
pci-host uninorth: create new uninorth device 2018-05-04 15:00:37 +10:00
pcmcia hw: Clean up includes 2016-01-29 15:07:25 +00:00
ppc Machine queue, 2018-05-07 2018-05-08 15:25:17 +01:00
rdma hw/rdma: Fix possible out of bounds access to port GID index 2018-05-03 20:52:29 +03:00
riscv RISC-V: Mark ROM read-only after copying in code 2018-05-06 10:54:21 +12:00
s390x pc-bios/s390-ccw: fix loadparm initialization and int conversion 2018-05-02 11:27:14 +02:00
scsi hw/scsi: support SCSI-2 passthrough without PI 2018-04-09 16:36:39 +02:00
sd hw/sd/bcm2835_sdhost: Don't raise spurious interrupts 2018-04-10 13:02:25 +01:00
sh4 Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
smbios Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
sparc Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
sparc64 serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS 2018-04-26 13:57:00 +01:00
ssi xilinx_spips: Correct SNOOP_NONE state when flushing the txfifo 2018-04-26 11:04:40 +01:00
timer timer/aspeed: fix vmstate version id 2018-04-26 11:04:39 +01:00
tpm tpm: CRB: Enforce locality is requested before processing buffer 2018-03-29 17:41:02 -04:00
tricore hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-03-12 16:12:46 +01:00
unicore32 hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
usb usb: fixes for mtp and host. 2018-05-08 12:02:18 +01:00
vfio vfio-ccw: introduce vfio_ccw_get_device() 2018-04-30 10:31:41 +02:00
virtio vhost: do not verify ring mappings when IOMMU is enabled 2018-04-16 19:11:38 +03:00
watchdog qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
xen xen: Expect xenstore write to fail when restricted 2018-04-26 16:29:51 +01:00
xenpv hw/xen*: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:46 +01:00
xtensa Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
Makefile.objs hw/rdma: Add wrappers and macros 2018-02-19 13:03:24 +02:00