From: Max Filippov Date: Tue, 27 Feb 2018 23:28:44 +0000 (-0800) Subject: linux-user: fix target_mprotect/target_munmap error return values X-Git-Tag: qemu-xen-4.12.0-rc1~372^2~4 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=72d75bb3166047c74db2931eecb92f9684e70ead;p=qemu-xen.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 Cc: Laurent Vivier Reviewed-by: Laurent Vivier Signed-off-by: Max Filippov --- diff --git a/linux-user/mmap.c b/linux-user/mmap.c index df81f9b803..84b15c9a16 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();