[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 49/59] linux-user: Fix erroneous conversion in copy_file_range
From: |
Laurent Vivier |
Subject: |
[PULL 49/59] linux-user: Fix erroneous conversion in copy_file_range |
Date: |
Tue, 18 May 2021 07:31:21 +0200 |
From: Giuseppe Musacchio <thatlemon@gmail.com>
The implicit cast from abi_long to size_t may introduce an intermediate
unwanted sign-extension of the value for 32bit targets running on 64bit
hosts.
Signed-off-by: Giuseppe Musacchio <thatlemon@gmail.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20210503174159.54302-3-thatlemon@gmail.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/syscall.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 4d52b2cfe36d..e05870c33884 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -13244,8 +13244,9 @@ static abi_long do_syscall1(void *cpu_env, int num,
abi_long arg1,
}
poutoff = &outoff;
}
+ /* Do not sign-extend the count parameter. */
ret = get_errno(safe_copy_file_range(arg1, pinoff, arg3, poutoff,
- arg5, arg6));
+ (abi_ulong)arg5, arg6));
if (!is_error(ret) && ret > 0) {
if (arg2) {
if (put_user_u64(inoff, arg2)) {
--
2.31.1
- [PULL 28/59] linux-user/sparc: Minor corrections to do_sigreturn, (continued)
- [PULL 28/59] linux-user/sparc: Minor corrections to do_sigreturn, Laurent Vivier, 2021/05/18
- [PULL 30/59] linux-user/sparc: Implement sparc32 rt signals, Laurent Vivier, 2021/05/18
- [PULL 20/59] linux-user/sparc: Remove target_rt_signal_frame as unused, Laurent Vivier, 2021/05/18
- [PULL 33/59] linux-user/s390x: Fix sigframe types, Laurent Vivier, 2021/05/18
- [PULL 23/59] linux-user/sparc: Split out save_reg_win, Laurent Vivier, 2021/05/18
- [PULL 37/59] linux-user/s390x: Fix trace in restore_regs, Laurent Vivier, 2021/05/18
- [PULL 32/59] tests/tcg/sparc64: Re-enable linux-test, Laurent Vivier, 2021/05/18
- [PULL 34/59] linux-user/s390x: Use uint16_t for signal retcode, Laurent Vivier, 2021/05/18
- [PULL 44/59] linux-user/s390x: Fix frame_addr corruption in setup_frame, Laurent Vivier, 2021/05/18
- [PULL 45/59] linux-user/s390x: Add build asserts for sigset sizes, Laurent Vivier, 2021/05/18
- [PULL 49/59] linux-user: Fix erroneous conversion in copy_file_range,
Laurent Vivier <=
- [PULL 48/59] linux-user: Add copy_file_range to strace.list, Laurent Vivier, 2021/05/18
- [PULL 27/59] linux-user/sparc: Clean up setup_frame, Laurent Vivier, 2021/05/18
- [PULL 50/59] linux-user: use GDateTime for formatting timestamp for core file, Laurent Vivier, 2021/05/18
- [PULL 53/59] linux-user: Pass ka_restorer to do_sigaction, Laurent Vivier, 2021/05/18
- [PULL 31/59] linux-user/sparc: Implement sparc64 rt signals, Laurent Vivier, 2021/05/18
- [PULL 36/59] linux-user/s390x: Remove restore_sigregs return value, Laurent Vivier, 2021/05/18
- [PULL 38/59] linux-user/s390x: Fix sigcontext sregs value, Laurent Vivier, 2021/05/18
- [PULL 40/59] linux-user/s390x: Tidy save_sigregs, Laurent Vivier, 2021/05/18
- [PULL 47/59] linux-user/s390x: Handle vector regs in signal stack, Laurent Vivier, 2021/05/18
- [PULL 35/59] linux-user/s390x: Remove PSW_ADDR_AMODE, Laurent Vivier, 2021/05/18