qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] exec: avoid possible overwriting of mmaped area


From: Gonglei
Subject: Re: [Qemu-devel] [PATCH] exec: avoid possible overwriting of mmaped area in qemu_ram_remap
Date: Thu, 26 Mar 2015 10:26:29 +0800
User-agent: Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

On 2015/3/25 21:15, Paolo Bonzini wrote:
> 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.
> 

Yes, it is.

> 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.
> 
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
>         Please review. :)
> 
>  exec.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/exec.c b/exec.c
> index 8b922db..6d1e1e4 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -1638,7 +1638,6 @@ void qemu_ram_remap(ram_addr_t addr, ram_addr_t length)
>                  abort();
>              } else {
>                  flags = MAP_FIXED;
> -                munmap(vaddr, length);
>                  if (block->fd >= 0) {
>                      flags |= (block->flags & RAM_SHARED ?
>                                MAP_SHARED : MAP_PRIVATE);
> 
Looks good to me, so

Reviewed-by: Gonglei <address@hidden>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]