[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end
From: |
Chen Gang |
Subject: |
Re: [Qemu-devel] [PATCH] linux-user/mmap.c: Use end instead of real_end in target_mmap |
Date: |
Thu, 24 Dec 2015 23:25:32 +0800 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
On 12/24/15 17:54, Laurent Vivier wrote:
>
> Le 24/12/2015 02:07, address@hidden a écrit :
>> From: Chen Gang <address@hidden>
>>
>> In this case, real_end is larger than end, which may cause mmap_frag
>> process the incorrect memory region.
>>
>> Signed-off-by: Chen Gang <address@hidden>
>> ---
>> linux-user/mmap.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
>> index 7b459d5..57b0361 100644
>> --- a/linux-user/mmap.c
>> +++ b/linux-user/mmap.c
>> @@ -536,7 +536,7 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int
>> prot,
>> /* handle the end of the mapping */
>> if (end < real_end) {
>> ret = mmap_frag(real_end - qemu_host_page_size,
>> - real_end - qemu_host_page_size, real_end,
>> + real_end - qemu_host_page_size, end,
>> prot, flags, fd,
>> offset + real_end - qemu_host_page_size -
>> start);
>> if (ret == -1)
>>
>
> The fragment must effectively be mapped only to "end" not to "real_end"
> (which is a host page aligned address, and thus this is not a fragment).
> It is consistent with what it is done in the case of one single page.
>
> Reviewed-by: Laurent Vivier <address@hidden>
Thank you for your comments. I only met this issue, and knew it should
be fixed in this way, but really don't know the related details.
Thanks.
--
Chen Gang
Open, share, and attitude like air, water, and life which God blessed