[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] syscall: fix special case of write(fd, NULL, 0)
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH] syscall: fix special case of write(fd, NULL, 0) |
Date: |
Thu, 15 Feb 2018 09:50:20 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
Le 15/02/2018 à 00:33, Oliver Smith a écrit :
> Hello there,
>
> I'm a little late to the party. But what is necessary to get this
> upstreamed, and how can I help?
>
> PS: Sorry if I picked the wrong e-mail addresses, I wasn't subscribed to
> the ML at that point and used the addresses I could find for the people
> who answered to the original thread here:
>
> https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg08073.html
According to comments in the ML thread, you need to:
- update the patch to call write() with NULL and 0, something like:
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7912,6 +7912,10 @@ abi_long do_syscall(void *cpu_env, int num,
abi_long arg1,
}
break;
case TARGET_NR_write:
+ if (arg2 == 0 && arg3 == 0) {
+ ret = get_errno(safe_write(arg1, NULL, 0));
+ break;
+ }
if (!(p = lock_user(VERIFY_READ, arg2, arg3, 1)))
goto efault;
if (fd_trans_target_to_host_data(arg1)) {
- change TARGET_NR_read to do the same
- check if we need to do the same for pread64/pwrite64
Thanks,
Laurent