Re: [PATCH] linux-user: fix translation of statx structures

2019-11-25 Thread Laurent Vivier
Le 22/11/2019 à 18:40, Ariadne Conill a écrit :
> All timestamps were copied to atime instead of to their respective
> fields.
> 
> Signed-off-by: Ariadne Conill 
> ---
>  linux-user/syscall.c | 12 ++--
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index ce399a55f0..171c0caef3 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -6743,12 +6743,12 @@ static inline abi_long host_to_target_statx(struct 
> target_statx *host_stx,
>  __put_user(host_stx->stx_attributes_mask, 
> &target_stx->stx_attributes_mask);
>  __put_user(host_stx->stx_atime.tv_sec, &target_stx->stx_atime.tv_sec);
>  __put_user(host_stx->stx_atime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> -__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_atime.tv_sec);
> -__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> -__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_atime.tv_sec);
> -__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> -__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_atime.tv_sec);
> -__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> +__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_btime.tv_sec);
> +__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_btime.tv_nsec);
> +__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_ctime.tv_sec);
> +__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_ctime.tv_nsec);
> +__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_mtime.tv_sec);
> +__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_mtime.tv_nsec);
>  __put_user(host_stx->stx_rdev_major, &target_stx->stx_rdev_major);
>  __put_user(host_stx->stx_rdev_minor, &target_stx->stx_rdev_minor);
>  __put_user(host_stx->stx_dev_major, &target_stx->stx_dev_major);
> 

Applied to my linux-user branch for 4.2.

Thanks,
Laurent




Re: [PATCH] linux-user: fix translation of statx structures

2019-11-22 Thread Ariadne Conill
Hello,

On Fri, Nov 22, 2019 at 12:27 PM Aleksandar Markovic
 wrote:
>
> On Fri, Nov 22, 2019 at 7:22 PM Ariadne Conill  
> wrote:
> >
> > All timestamps were copied to atime instead of to their respective
> > fields.
> >
> > Signed-off-by: Ariadne Conill 
> > ---
>
> What a bug.

Yes, in Alpine qemu+binfmt_misc+chroot environment, this bug caused
all files to have an observed mtime set to the UNIX epoch, which
caused problems with building Autoconf-based applications.  This
really irked me so I took the time to dig into it.

>
> Laurent, perhaps a good candidate for 4.2?
>
> Thanks for submitting this, Ariadne Conill!

Not a problem.

Ariadne



Re: [PATCH] linux-user: fix translation of statx structures

2019-11-22 Thread Laurent Vivier
Le 22/11/2019 à 18:40, Ariadne Conill a écrit :
> All timestamps were copied to atime instead of to their respective
> fields.
> 
> Signed-off-by: Ariadne Conill 
> ---
>  linux-user/syscall.c | 12 ++--
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index ce399a55f0..171c0caef3 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -6743,12 +6743,12 @@ static inline abi_long host_to_target_statx(struct 
> target_statx *host_stx,
>  __put_user(host_stx->stx_attributes_mask, 
> &target_stx->stx_attributes_mask);
>  __put_user(host_stx->stx_atime.tv_sec, &target_stx->stx_atime.tv_sec);
>  __put_user(host_stx->stx_atime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> -__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_atime.tv_sec);
> -__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> -__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_atime.tv_sec);
> -__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> -__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_atime.tv_sec);
> -__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> +__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_btime.tv_sec);
> +__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_btime.tv_nsec);
> +__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_ctime.tv_sec);
> +__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_ctime.tv_nsec);
> +__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_mtime.tv_sec);
> +__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_mtime.tv_nsec);
>  __put_user(host_stx->stx_rdev_major, &target_stx->stx_rdev_major);
>  __put_user(host_stx->stx_rdev_minor, &target_stx->stx_rdev_minor);
>  __put_user(host_stx->stx_dev_major, &target_stx->stx_dev_major);
> 

Reviewed-by: Laurent Vivier 



Re: [PATCH] linux-user: fix translation of statx structures

2019-11-22 Thread Philippe Mathieu-Daudé

On 11/22/19 7:27 PM, Aleksandar Markovic wrote:

On Fri, Nov 22, 2019 at 7:22 PM Ariadne Conill  wrote:


All timestamps were copied to atime instead of to their respective
fields.



Fixes: efa921845c0


Signed-off-by: Ariadne Conill 
---


What a bug.

Laurent, perhaps a good candidate for 4.2?


Agreed.



Thanks for submitting this, Ariadne Conill!


And welcome to QEMU :)


Reviewed-by: Aleksandar Markovic 


Reviewed-by: Philippe Mathieu-Daudé 


  linux-user/syscall.c | 12 ++--
  1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index ce399a55f0..171c0caef3 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -6743,12 +6743,12 @@ static inline abi_long host_to_target_statx(struct 
target_statx *host_stx,
  __put_user(host_stx->stx_attributes_mask, 
&target_stx->stx_attributes_mask);
  __put_user(host_stx->stx_atime.tv_sec, &target_stx->stx_atime.tv_sec);
  __put_user(host_stx->stx_atime.tv_nsec, &target_stx->stx_atime.tv_nsec);
-__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_atime.tv_sec);
-__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_atime.tv_nsec);
-__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_atime.tv_sec);
-__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_atime.tv_nsec);
-__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_atime.tv_sec);
-__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_atime.tv_nsec);
+__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_btime.tv_sec);
+__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_btime.tv_nsec);
+__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_ctime.tv_sec);
+__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_ctime.tv_nsec);
+__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_mtime.tv_sec);
+__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_mtime.tv_nsec);
  __put_user(host_stx->stx_rdev_major, &target_stx->stx_rdev_major);
  __put_user(host_stx->stx_rdev_minor, &target_stx->stx_rdev_minor);
  __put_user(host_stx->stx_dev_major, &target_stx->stx_dev_major);
--
2.24.0









Re: [PATCH] linux-user: fix translation of statx structures

2019-11-22 Thread Aleksandar Markovic
On Fri, Nov 22, 2019 at 7:22 PM Ariadne Conill  wrote:
>
> All timestamps were copied to atime instead of to their respective
> fields.
>
> Signed-off-by: Ariadne Conill 
> ---

What a bug.

Laurent, perhaps a good candidate for 4.2?

Thanks for submitting this, Ariadne Conill!

Reviewed-by: Aleksandar Markovic 

>  linux-user/syscall.c | 12 ++--
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index ce399a55f0..171c0caef3 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -6743,12 +6743,12 @@ static inline abi_long host_to_target_statx(struct 
> target_statx *host_stx,
>  __put_user(host_stx->stx_attributes_mask, 
> &target_stx->stx_attributes_mask);
>  __put_user(host_stx->stx_atime.tv_sec, &target_stx->stx_atime.tv_sec);
>  __put_user(host_stx->stx_atime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> -__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_atime.tv_sec);
> -__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> -__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_atime.tv_sec);
> -__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> -__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_atime.tv_sec);
> -__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_atime.tv_nsec);
> +__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_btime.tv_sec);
> +__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_btime.tv_nsec);
> +__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_ctime.tv_sec);
> +__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_ctime.tv_nsec);
> +__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_mtime.tv_sec);
> +__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_mtime.tv_nsec);
>  __put_user(host_stx->stx_rdev_major, &target_stx->stx_rdev_major);
>  __put_user(host_stx->stx_rdev_minor, &target_stx->stx_rdev_minor);
>  __put_user(host_stx->stx_dev_major, &target_stx->stx_dev_major);
> --
> 2.24.0
>
>