[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 6/9] linux-user: don't short-circuit read with zero l
From: |
Laurent Vivier |
Subject: |
[Qemu-devel] [PULL 6/9] linux-user: don't short-circuit read with zero length |
Date: |
Thu, 7 Mar 2019 11:06:53 +0100 |
From: Andreas Schwab <address@hidden>
A zero-length read still needs to do the usual checks, thus it may return
errors like EBADF. This makes the read syscall emulation consistent with
the pread64 syscall emulation.
Signed-off-by: Andreas Schwab <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
---
linux-user/syscall.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 5f72209debc9..9f7eb7d7a896 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7009,8 +7009,8 @@ static abi_long do_syscall1(void *cpu_env, int num,
abi_long arg1,
_exit(arg1);
return 0; /* avoid warning */
case TARGET_NR_read:
- if (arg3 == 0) {
- return 0;
+ if (arg2 == 0 && arg3 == 0) {
+ return get_errno(safe_read(arg1, 0, 0));
} else {
if (!(p = lock_user(VERIFY_WRITE, arg2, arg3, 0)))
return -TARGET_EFAULT;
--
2.20.1
- [Qemu-devel] [PULL 0/9] Linux user for 4.0 patches, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 4/9] linux-user: fix emulation of accept4/getpeername/getsockname/recvfrom syscalls, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 2/9] linux-user: Add ELF_PLATFORM for arm, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 3/9] linux-user: Fix ELF_PLATFORM for aarch64_be-linux-user, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 6/9] linux-user: don't short-circuit read with zero length,
Laurent Vivier <=
- [Qemu-devel] [PULL 7/9] linux-user: fix "may be used uninitialized" warnings, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 8/9] linux-user: Nicer strace output of chroot() syscall, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 5/9] Fix breakpoint support in Nios II user-mode emulation., Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 1/9] linux-user: fix recvmsg emulation, Laurent Vivier, 2019/03/07
- [Qemu-devel] [PULL 9/9] linux-user: add new netlink types, Laurent Vivier, 2019/03/07
- Re: [Qemu-devel] [PULL 0/9] Linux user for 4.0 patches, Peter Maydell, 2019/03/08