exec: avoid possible overwriting of mmaped area in qemu_ram_remap
commitf18c69cfc554cf9776eb3c35b7510e17541afacb
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 25 Mar 2015 13:14:56 +0000 (25 14:14 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 26 Mar 2015 09:43:54 +0000 (26 10:43 +0100)
tree9718fbc710164140315a97dd83e0d19d6b80f9f2
parent8e7ba4ed3a0b68ab35736c7859fd950f6705e0cf
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.

Reviewed-by: Gonglei <arei.gonglei@huawei.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
exec.c