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> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
parent
21b869a321
commit
72d75bb316
|
@ -77,11 +77,11 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
|
|||
#endif
|
||||
|
||||
if ((start & ~TARGET_PAGE_MASK) != 0)
|
||||
return -EINVAL;
|
||||
return -TARGET_EINVAL;
|
||||
len = TARGET_PAGE_ALIGN(len);
|
||||
end = start + len;
|
||||
if (!guest_range_valid(start, len)) {
|
||||
return -ENOMEM;
|
||||
return -TARGET_ENOMEM;
|
||||
}
|
||||
prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
|
||||
if (len == 0)
|
||||
|
@ -621,10 +621,10 @@ int target_munmap(abi_ulong start, abi_ulong len)
|
|||
start, len);
|
||||
#endif
|
||||
if (start & ~TARGET_PAGE_MASK)
|
||||
return -EINVAL;
|
||||
return -TARGET_EINVAL;
|
||||
len = TARGET_PAGE_ALIGN(len);
|
||||
if (len == 0 || !guest_range_valid(start, len)) {
|
||||
return -EINVAL;
|
||||
return -TARGET_EINVAL;
|
||||
}
|
||||
|
||||
mmap_lock();
|
||||
|
|
Loading…
Reference in a new issue