aboutsummaryrefslogtreecommitdiffstats
path: root/community/qemu/fix-statx-translation.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/qemu/fix-statx-translation.patch')
-rw-r--r--community/qemu/fix-statx-translation.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/community/qemu/fix-statx-translation.patch b/community/qemu/fix-statx-translation.patch
new file mode 100644
index 0000000000..2f6b3cfc39
--- /dev/null
+++ b/community/qemu/fix-statx-translation.patch
@@ -0,0 +1,39 @@
+From 5c39af4d742e06eb8af4822f26d5f389df37ce91 Mon Sep 17 00:00:00 2001
+From: Ariadne Conill <ariadne@dereferenced.org>
+Date: Fri, 22 Nov 2019 11:13:32 -0600
+Subject: [PATCH] linux-user: fix translation of statx structures
+
+All timestamps were copied to atime instead of to their respective
+fields.
+
+Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
+---
+ 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
+