unicorn/qemu
Paolo Bonzini 71beea204c
exec: avoid possible overwriting of mmaped area in qemu_ram_remap
It is not necessary to munmap an area before remapping it with MAP_FIXED;
if the memory region specified by addr and len overlaps pages of any
existing mapping, then the overlapped part of the existing mapping will
be discarded.

On the other hand, if QEMU does munmap the pages, there is a small
probability that another mmap sneaks in and catches the just-freed
portion of the address space.  In effect, munmap followed by
mmap(MAP_FIXED) is a use-after-free error, and Coverity flags it
as such.  Fix it.

Backports commit f18c69cfc554cf9776eb3c35b7510e17541afacb from qemu
2018-02-18 19:09:37 -05:00
..
crypto Drop unused crypto source files 2018-02-17 15:23:57 -05:00
default-configs arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu softfloat: expand out STATUS macro 2018-02-12 13:43:13 -05:00
hw hw/arm: Clean up includes 2018-02-17 21:10:57 -05:00
include memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
qapi qstring: Make conversion from QObject * accept null 2018-02-17 15:24:12 -05:00
qobject qstring: Make conversion from QObject * accept null 2018-02-17 15:24:12 -05:00
qom qom: Introduce ObjectPropertyIterator struct for iteration 2018-02-17 18:39:00 -05:00
scripts Save copies of generated qapi files. 2017-01-21 00:30:50 +11:00
target-arm exec.c: Drop TARGET_HAS_ICE define and checks 2018-02-18 18:17:14 -05:00
target-i386 exec.c: Drop TARGET_HAS_ICE define and checks 2018-02-18 18:17:14 -05:00
target-m68k exec.c: Drop TARGET_HAS_ICE define and checks 2018-02-18 18:17:14 -05:00
target-mips exec.c: Drop TARGET_HAS_ICE define and checks 2018-02-18 18:17:14 -05:00
target-sparc exec.c: Drop TARGET_HAS_ICE define and checks 2018-02-18 18:17:14 -05:00
tcg tcg: Fix highwater check 2018-02-17 18:53:18 -05:00
util error: Improve documentation 2018-02-17 20:52:49 -05:00
aarch64.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
aarch64eb.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
accel.c Automated leading tab to spaces conversion. 2017-01-21 12:28:22 +11:00
arm.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
armeb.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure tcg: Drop ia64 host support 2018-02-04 18:33:02 -05:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING.LIB import 2015-08-21 15:04:50 +08:00
cpu-exec-common.c cputlb.c: Use correct address space when looking up MemoryRegionSection 2018-02-17 23:15:22 -05:00
cpu-exec.c cpu-exec: Fix compiler warning (-Werror=clobbered) 2018-02-17 15:24:15 -05:00
cpus.c exec.c: Allow target CPUs to define multiple AddressSpaces 2018-02-17 22:35:13 -05:00
cputlb.c exec.c: Pass MemTxAttrs to iotlb_to_region so it uses the right AS 2018-02-17 23:19:00 -05:00
exec.c exec: avoid possible overwriting of mmaped area in qemu_ram_remap 2018-02-18 19:09:37 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c crypto: introduce new module for computing hash digests 2018-02-17 15:23:17 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
ioport.c ioport: do not use CPU_LOG_IOPORT 2018-02-17 15:24:15 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
Makefile crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.objs crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.target tcg: split tcg_op_defs to -common 2018-02-17 15:23:51 -05:00
memory.c memory: Silence unused variable warning 2018-02-18 17:52:03 -05:00
memory_mapping.c memory_mapping: Rework cpu related includes 2018-02-17 15:23:15 -05:00
mips.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
mips64.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
mips64el.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
mipsel.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
powerpc.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
qapi-schema.json import 2015-08-21 15:04:50 +08:00
qemu-log.c import 2015-08-21 15:04:50 +08:00
qemu-timer.c timer is redundant 2017-01-20 16:46:58 +08:00
rules.mak import 2015-08-21 15:04:50 +08:00
softmmu_template.h exec.c: Pass MemTxAttrs to iotlb_to_region so it uses the right AS 2018-02-17 23:19:00 -05:00
sparc.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
sparc64.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00
tcg-runtime.c platform.h move #3 2017-01-21 00:13:21 +11:00
translate-all.c exec.c: Drop TARGET_HAS_ICE define and checks 2018-02-18 18:17:14 -05:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2018-02-13 09:04:51 -05:00
translate-common.c translate-all: Move tcg_handle_interrupt() to -common 2018-02-17 15:23:51 -05:00
unicorn_common.h This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
VERSION import 2015-08-21 15:04:50 +08:00
vl.c vl.c: Remove periods and exclamation points from error messages 2018-02-17 15:24:14 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h memory: Add address_space_init_shareable() 2018-02-18 00:18:21 -05:00