]> git.proxmox.com Git - mirror_qemu.git/commitdiff
bsd-user: Don't truncate the return value from freebsd_syscall
authorDoug Rabson <dfr@rabson.org>
Sat, 10 Dec 2022 08:38:04 +0000 (08:38 +0000)
committerWarner Losh <imp@bsdimp.com>
Wed, 1 Mar 2023 18:09:18 +0000 (11:09 -0700)
System call return values on FreeBSD are in a register (which is spelled
abi_long in qemu). This was being assigned into an int variable which
causes problems for 64bit targets.

Resolves: https://github.com/qemu-bsd-user/qemu-bsd-user/issues/40
Signed-off-by: Doug Rabson <dfr@rabson.org>
Reviewed-by: Warner Losh <imp@bsdimp.com>
[ Edited commit message for upstreaming into qemu-project ]
Signed-off-by: Warner Losh <imp@bsdimp.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
bsd-user/freebsd/os-syscall.c

index 57996cad8aeef73d6e73bd8366fb2b483a63c152..b4a663fc021d7e8c127ebe0ca0dfea7623f62e58 100644 (file)
@@ -512,7 +512,7 @@ abi_long do_freebsd_syscall(void *cpu_env, int num, abi_long arg1,
                             abi_long arg8)
 {
     CPUState *cpu = env_cpu(cpu_env);
-    int ret;
+    abi_long ret;
 
     trace_guest_user_syscall(cpu, num, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
     if (do_strace) {