Forwarding to qemu-devel@.
http://bugs.debian.org/920032

Thanks!

21.01.2019 22:09, Ben Hutchings wrote:
Package: qemu-user
Version: 1:3.1+dfsg-2
Severity: important
Tags: patch

On sparc (only) Linux defines timeval::tv_usec with type int, not
long.  However qemu-user's definition of struct target_timeval uses
abi_long unconditionally.  This results in the syscall translation
layer effectively multiplying tv_usec by 2**32.  All sparc syscalls
passing non-zero values for this field fail with -EINVAL.  The
following patch seems to fix this.

Ben.

--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -210,7 +210,11 @@ struct target_linger {
struct target_timeval {
      abi_long tv_sec;
+#if defined (TARGET_SPARC)
+    abi_int tv_usec;
+#else
      abi_long tv_usec;
+#endif
  };
struct target_timespec {
--- END ---

-- System Information:
Debian Release: buster/sid
   APT prefers unstable-debug
   APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 
'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages qemu-user depends on:
ii  libc6         2.28-3
ii  libcapstone3  3.0.5-3
ii  libgcc1       1:8.2.0-13
ii  libglib2.0-0  2.58.1-2
ii  libstdc++6    8.2.0-13
ii  zlib1g        1:1.2.11.dfsg-1

Versions of packages qemu-user recommends:
ii  qemu-user-static [qemu-user-binfmt]  1:3.1+dfsg-2

Versions of packages qemu-user suggests:
ii  sudo  1.8.26-2

-- no debconf information


Reply via email to