From: Ulrich Hecht Date: Fri, 24 Jul 2009 17:10:32 +0000 (+0200) Subject: linux-user: zero fstat buffer to initialize nsec fields X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=12727917db45aebb809e4b09c51e883c09a6366f;p=qemu.git linux-user: zero fstat buffer to initialize nsec fields 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 --- diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 7eb09fa8d7..25b95ea05a 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -5529,6 +5529,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);