diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2018-02-28 14:16:05 -0800 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2018-03-09 19:22:47 +0100 |
commit | 78cf339039c325b336442f1d7f3ccc531b22c4a0 (patch) | |
tree | ea45610af2fd41961808242ddd8cec5894a24993 /linux-user | |
parent | 3c5f6a5f888729f9fbc64211298f7c3e2fb42b64 (diff) | |
download | qemu-78cf339039c325b336442f1d7f3ccc531b22c4a0.zip qemu-78cf339039c325b336442f1d7f3ccc531b22c4a0.tar.gz qemu-78cf339039c325b336442f1d7f3ccc531b22c4a0.tar.bz2 |
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>
Diffstat (limited to 'linux-user')
-rw-r--r-- | linux-user/mmap.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/linux-user/mmap.c b/linux-user/mmap.c index df81f9b..84b15c9 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -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(); |