diff options
author | Laurent Vivier <laurent@vivier.eu> | 2021-11-21 16:17:11 +0100 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2021-11-22 09:17:08 +0100 |
commit | 802ae45e94151a6d3ee20eadcb865cf6c875df34 (patch) | |
tree | 620c7da6fcb61a3db56cd47f8a3fbc2fe40b0e54 /linux-user | |
parent | aee14c77f42533f2480dfa8552f531efde6c19ee (diff) | |
download | qemu-802ae45e94151a6d3ee20eadcb865cf6c875df34.zip qemu-802ae45e94151a6d3ee20eadcb865cf6c875df34.tar.gz qemu-802ae45e94151a6d3ee20eadcb865cf6c875df34.tar.bz2 |
linux-user: fix Coverity CID 1464101
target_mmap() can fail and return -1, but we don't check for that and
instead assume it's always valid.
Fixes: db2af69d6ba8 ("linux-user: Add infrastructure for a signal trampoline page")
Cc: richard.henderson@linaro.org
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211121151711.331653-1-laurent@vivier.eu>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'linux-user')
-rw-r--r-- | linux-user/elfload.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 5da8c02..767f54c 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -3254,9 +3254,13 @@ int load_elf_binary(struct linux_binprm *bprm, struct image_info *info) * Otherwise, allocate a private page to hold them. */ if (TARGET_ARCH_HAS_SIGTRAMP_PAGE) { - abi_ulong tramp_page = target_mmap(0, TARGET_PAGE_SIZE, - PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANON, -1, 0); + abi_long tramp_page = target_mmap(0, TARGET_PAGE_SIZE, + PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANON, -1, 0); + if (tramp_page == -1) { + return -errno; + } + setup_sigtramp(tramp_page); target_mprotect(tramp_page, TARGET_PAGE_SIZE, PROT_READ | PROT_EXEC); } |