mirror of https://github.com/xemu-project/xemu.git
linux-user: fix target_mprotect/target_munmap error return values
target_mprotect/target_munmap return value goes through get_errno at the call site, thus the functions must either set errno to host error code and return -1 or return negative guest error code. Do the latter. Cc: qemu-stable@nongnu.org Cc: Riku Voipio <riku.voipio@iki.fi> Cc: Laurent Vivier <laurent@vivier.eu> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <20180228221609.11265-8-jcmvbkbc@gmail.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
3c5f6a5f88
commit
78cf339039
|
@ -77,11 +77,11 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((start & ~TARGET_PAGE_MASK) != 0)
|
if ((start & ~TARGET_PAGE_MASK) != 0)
|
||||||
return -EINVAL;
|
return -TARGET_EINVAL;
|
||||||
len = TARGET_PAGE_ALIGN(len);
|
len = TARGET_PAGE_ALIGN(len);
|
||||||
end = start + len;
|
end = start + len;
|
||||||
if (!guest_range_valid(start, len)) {
|
if (!guest_range_valid(start, len)) {
|
||||||
return -ENOMEM;
|
return -TARGET_ENOMEM;
|
||||||
}
|
}
|
||||||
prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
|
prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
|
||||||
if (len == 0)
|
if (len == 0)
|
||||||
|
@ -621,10 +621,10 @@ int target_munmap(abi_ulong start, abi_ulong len)
|
||||||
start, len);
|
start, len);
|
||||||
#endif
|
#endif
|
||||||
if (start & ~TARGET_PAGE_MASK)
|
if (start & ~TARGET_PAGE_MASK)
|
||||||
return -EINVAL;
|
return -TARGET_EINVAL;
|
||||||
len = TARGET_PAGE_ALIGN(len);
|
len = TARGET_PAGE_ALIGN(len);
|
||||||
if (len == 0 || !guest_range_valid(start, len)) {
|
if (len == 0 || !guest_range_valid(start, len)) {
|
||||||
return -EINVAL;
|
return -TARGET_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
mmap_lock();
|
mmap_lock();
|
||||||
|
|
Loading…
Reference in New Issue