[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 6/9] linux-user: Sanitize interp_info and, for mip
From: |
Laurent Vivier |
Subject: |
[Qemu-devel] [PULL v2 6/9] linux-user: Sanitize interp_info and, for mips only, init field fp_abi |
Date: |
Fri, 24 May 2019 13:25:17 +0200 |
From: Daniel Santos <address@hidden>
Sanitize interp_info structure in load_elf_binary() and, for MIPS only,
init its field fp_abi to MIPS_ABI_FP_UNKNOWN. This fixes appearances of
"Unexpected FPU mode" message in some MIPS use cases. Currently, this
bug is a complete stopper for some MIPS binaries.
In load_elf_binary(), struct image_info interp_info is used without
being properly initialized. One result is that when the ELF's program
header doesn't contain an entry for the ABI flags, then the value of
the struct image_info's fp_abi field is set to whatever happened to
be in stack memory at the time.
Backporting to 4.0 and, if possible, to 3.1 is recommended.
Fixes: https://bugs.launchpad.net/qemu/+bug/1825002
Signed-off-by: Daniel Santos <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
---
linux-user/elfload.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index ef42e02d8233..02832adfbc0c 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -2706,6 +2706,11 @@ int load_elf_binary(struct linux_binprm *bprm, struct
image_info *info)
char *elf_interpreter = NULL;
char *scratch;
+ memset(&interp_info, 0, sizeof(interp_info));
+#ifdef TARGET_MIPS
+ interp_info.fp_abi = MIPS_ABI_FP_UNKNOWN;
+#endif
+
info->start_mmap = (abi_ulong)ELF_START_MMAP;
load_elf_image(bprm->filename, bprm->fd, info,
--
2.20.1
- [Qemu-devel] [PULL v2 0/9] Linux user for 4.1 patches, Laurent Vivier, 2019/05/24
- [Qemu-devel] [PULL v2 3/9] linux-user: Fix support for SIOCATMARK and SIOCGPGRP ioctls for xtensa, Laurent Vivier, 2019/05/24
- [Qemu-devel] [PULL v2 1/9] linux-user: add pseudo /proc/cpuinfo for sparc, Laurent Vivier, 2019/05/24
- [Qemu-devel] [PULL v2 4/9] linux-user: Add support for SIOCSPGRP ioctl for all targets, Laurent Vivier, 2019/05/24
- [Qemu-devel] [PULL v2 8/9] linux-user: Align mmap_find_vma to host page size, Laurent Vivier, 2019/05/24
- [Qemu-devel] [PULL v2 5/9] linux-user: Add support for SIOC<G|S>IFPFLAGS ioctls for all targets, Laurent Vivier, 2019/05/24
- [Qemu-devel] [PULL v2 2/9] linux-user: add pseudo /proc/hardware for m68k, Laurent Vivier, 2019/05/24
- [Qemu-devel] [PULL v2 7/9] linux-user: Fix shmat emulation by honoring host SHMLBA, Laurent Vivier, 2019/05/24
- [Qemu-devel] [PULL v2 9/9] linux-user: Pass through nanosecond timestamp components for stat syscalls, Laurent Vivier, 2019/05/24
- [Qemu-devel] [PULL v2 6/9] linux-user: Sanitize interp_info and, for mips only, init field fp_abi,
Laurent Vivier <=
- Re: [Qemu-devel] [PULL v2 0/9] Linux user for 4.1 patches, Peter Maydell, 2019/05/24