[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 1/2] linux-user: fix the errno value in print_syscall_err(
From: |
Laurent Vivier |
Subject: |
Re: [PATCH v2 1/2] linux-user: fix the errno value in print_syscall_err() |
Date: |
Mon, 13 Jul 2020 21:29:50 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 |
Le 08/07/2020 à 17:24, Laurent Vivier a écrit :
> errno of the target is returned as a negative value by the syscall,
> not in the host errno variable.
>
> The emulation of the target syscall can return an error while the
> host doesn't set an errno value. Target errnos and host errnos can
> also differ in some cases.
>
> Fixes: c84be71f6854 ("linux-user: Extend strace support to enable argument
> printing after syscall execution")
> Cc: Filip.Bozuta@syrmia.com
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
> linux-user/strace.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/linux-user/strace.c b/linux-user/strace.c
> index 5235b2260cdd..b42664bbd180 100644
> --- a/linux-user/strace.c
> +++ b/linux-user/strace.c
> @@ -731,7 +731,7 @@ print_syscall_err(abi_long ret)
>
> qemu_log(" = ");
> if (ret < 0) {
> - qemu_log("-1 errno=%d", errno);
> + qemu_log("-1 errno=%d", (int)-ret);
> errstr = target_strerror(-ret);
> if (errstr) {
> qemu_log(" (%s)", errstr);
>
Applied to my linux-user-for-5.1 branch.
Thanks,
Laurent