Patchwork [10/11] linux-user: zero fstat buffer to initialize nsec fields

mail settings
Submitter Riku Voipio
Date Aug. 13, 2009, 8:06 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/31363/
State Superseded
Headers show


Riku Voipio - Aug. 13, 2009, 8:06 p.m.
From: Ulrich Hecht <>

The fstat implementation does not initialize the nanosecond fields in the
stat buffer; this caused funny values to turn up there, preventing, for
instance, cp -p from preserving timestamps because utimensat rejected
the out-of-bounds nanosecond values. Resetting the entire structure
to zero fixes that.

Signed-off-by: Ulrich Hecht <>
Signed-off-by: Riku Voipio <>
 linux-user/syscall.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)


diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index f90be71..66a25a0 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5526,6 +5526,7 @@  abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
                 if (!lock_user_struct(VERIFY_WRITE, target_st, arg2, 0))
                     goto efault;
+                memset(target_st, 0, sizeof(*target_st));
                 __put_user(st.st_dev, &target_st->st_dev);
                 __put_user(st.st_ino, &target_st->st_ino);
                 __put_user(st.st_mode, &target_st->st_mode);