Commit 72d75bb3 authored by Max Filippov's avatar Max Filippov
Browse files

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: default avatarLaurent Vivier <laurent@vivier.eu>
Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
parent 21b869a3
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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();