[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 15/18] linux-user: Correct signedness of target_
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH 15/18] linux-user: Correct signedness of target_flock l_start and l_len fields |
Date: |
Tue, 7 Jun 2016 22:00:35 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 |
Le 06/06/2016 à 20:58, Peter Maydell a écrit :
> The l_start and l_len fields in the various target_flock structures are
> supposed to be '__kernel_off_t' or '__kernel_loff_t', which means they
> should be signed, not unsigned. Correcting the structure definitions means
> that __get_user() and __put_user() will correctly sign extend them if
> the guest is using 32 bit offsets and the host is using 64 bit offsets.
>
> This fixes failures in the LTP 'fcntl14' tests where it checks that
> negative seek offsets work correctly.
>
> We reindent the structures to drop hard tabs since we're touching 40%
> of the fields anyway.
>
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> linux-user/syscall_defs.h | 34 +++++++++++++++++-----------------
> 1 file changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> index 124754f..8a801e0 100644
> --- a/linux-user/syscall_defs.h
> +++ b/linux-user/syscall_defs.h
> @@ -2289,34 +2289,34 @@ struct target_statfs64 {
> #endif
>
> struct target_flock {
> - short l_type;
> - short l_whence;
> - abi_ulong l_start;
> - abi_ulong l_len;
> - int l_pid;
> + short l_type;
> + short l_whence;
> + abi_long l_start;
> + abi_long l_len;
> + int l_pid;
> };
>
> struct target_flock64 {
> - short l_type;
> - short l_whence;
> + short l_type;
> + short l_whence;
> #if defined(TARGET_PPC) || defined(TARGET_X86_64) || defined(TARGET_MIPS) \
> || defined(TARGET_SPARC) || defined(TARGET_HPPA) \
> || defined(TARGET_MICROBLAZE) || defined(TARGET_TILEGX)
> - int __pad;
> + int __pad;
> #endif
> - unsigned long long l_start;
> - unsigned long long l_len;
> - int l_pid;
> + long long l_start;
> + long long l_len;
to be correct, they should be abi_llong.
> + int l_pid;
> } QEMU_PACKED;
>
> #ifdef TARGET_ARM
> struct target_eabi_flock64 {
> - short l_type;
> - short l_whence;
> - int __pad;
> - unsigned long long l_start;
> - unsigned long long l_len;
> - int l_pid;
> + short l_type;
> + short l_whence;
> + int __pad;
> + long long l_start;
> + long long l_len;
abi_llong
> + int l_pid;
> } QEMU_PACKED;
> #endif
>
>
- [Qemu-devel] [PATCH 00/18] linux-user: Extend safe_syscall wrapper use, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 02/18] linux-user: Use safe_syscall wrapper for connect syscall, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 04/18] linux-user: Use safe_syscall wrapper for msgsnd and msgrcv, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 06/18] linux-user: Use safe_syscall wrapper for flock, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 07/18] linux-user: Use safe_syscall wrapper for rt_sigtimedwait syscall, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 09/18] linux-user: Use safe_syscall wrapper for poll and ppoll syscalls, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 13/18] linux-user: Use safe_syscall wrapper for ioctl, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 15/18] linux-user: Correct signedness of target_flock l_start and l_len fields, Peter Maydell, 2016/06/06
- Re: [Qemu-devel] [PATCH 15/18] linux-user: Correct signedness of target_flock l_start and l_len fields,
Laurent Vivier <=
- [Qemu-devel] [PATCH 11/18] linux-user: Use safe_syscall wrapper for semop, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 17/18] linux-user: Make target_strerror() return 'const char *', Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 01/18] linux-user: Use safe_syscall wrapper for readv and writev syscalls, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 16/18] linux-user: Use safe_syscall wrapper for fcntl, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 12/18] linux-user: Use safe_syscall wrapper for accept and accept4 syscalls, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 10/18] linux-user: Use safe_syscall wrapper for epoll_wait syscalls, Peter Maydell, 2016/06/06
- [Qemu-devel] [PATCH 14/18] linux-user: Use __get_user() and __put_user() to handle structs in do_fcntl(), Peter Maydell, 2016/06/06