[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: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v2 1/2] linux-user: fix the errno value in print_syscall_err() |
Date: |
Wed, 8 Jul 2020 18:47:44 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
On 7/8/20 5:24 PM, Laurent Vivier wrote:
> 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);
>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>