qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 7f047d: linux-user: Restrict usage of sa_rest


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 7f047d: linux-user: Restrict usage of sa_restorer
Date: Tue, 21 Nov 2017 03:19:24 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 7f047de18cf6cd51915d4fdbe1a7e66c38b45e98
      
https://github.com/qemu/qemu/commit/7f047de18cf6cd51915d4fdbe1a7e66c38b45e98
  Author: Richard Henderson <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/signal.c
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  linux-user: Restrict usage of sa_restorer

Reading and writing to an sa_restorer member that isn't supposed to
exist corrupts user memory.  Introduce TARGET_ARCH_HAS_SA_RESTORER,
similar to the kernel's __ARCH_HAS_SA_RESTORER.

Reported-by: Helge Deller <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: 2da6e76ccaf5c5aad4192fddaa2062480ad82345
      
https://github.com/qemu/qemu/commit/2da6e76ccaf5c5aad4192fddaa2062480ad82345
  Author: Helge Deller <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  linux-user/hppa: Fix TARGET_SA_* defines

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Helge Deller <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: fc37dcfe1a049090e72fd3f4810f0b221cc5399c
      
https://github.com/qemu/qemu/commit/fc37dcfe1a049090e72fd3f4810f0b221cc5399c
  Author: Richard Henderson <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/hppa/target_cpu.h

  Log Message:
  -----------
  linux-user/hppa: Fix cpu_clone_regs

By failing to return from the syscall in the child, the child
issues another clone syscall and hilarity ensues.

Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: 92afb153103c38c1ccc9d4c34512cf1767e676c5
      
https://github.com/qemu/qemu/commit/92afb153103c38c1ccc9d4c34512cf1767e676c5
  Author: Helge Deller <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/hppa/syscall_nr.h

  Log Message:
  -----------
  linux-user/hppa: Fix typo for TARGET_NR_epoll_wait

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Helge Deller <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: e65be6a7cfe5c991d97ef259c6a88e99ca65e875
      
https://github.com/qemu/qemu/commit/e65be6a7cfe5c991d97ef259c6a88e99ca65e875
  Author: Helge Deller <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  linux-user/hppa: Fix TARGET_MAP_TYPE

TARGET_MAP_TYPE needs to be 0x03 instead of 0x0f on the hppa
architecture, otherwise it conflicts with MAP_FIXED which is 0x04.

Signed-off-by: Helge Deller <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-ID: <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: 3d60c84deaa11826ff0bc7599aeb73cad54c4fbf
      
https://github.com/qemu/qemu/commit/3d60c84deaa11826ff0bc7599aeb73cad54c4fbf
  Author: Helge Deller <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  linux-user/hppa: Fix TARGET_F_RDLCK, TARGET_F_WRLCK, TARGET_F_UNLCK

Signed-off-by: Helge Deller <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-ID: <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: 541e1690420d293c1b09eeb128fac74e98cbef7a
      
https://github.com/qemu/qemu/commit/541e1690420d293c1b09eeb128fac74e98cbef7a
  Author: Helge Deller <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/syscall.c
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  linux-user: Handle TARGET_MAP_STACK and TARGET_MAP_HUGETLB

Add the missing defines and for TARGET_MAP_STACK and TARGET_MAP_HUGETLB
for alpha, mips, ppc, x86, hppa.  Fix the mmap_flags translation table
to translate MAP_HUGETLB between host and target architecture, and to
drop MAP_STACK.

Signed-off-by: Helge Deller <address@hidden>
Message-Id: <address@hidden>
[rth: Drop MAP_STACK instead of translating it, since it is ignored
in the kernel anyway.  Fix tabs to spaces.]
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: 8bf8e9df4a7d82c7a47cc961c9cdee1615595de0
      
https://github.com/qemu/qemu/commit/8bf8e9df4a7d82c7a47cc961c9cdee1615595de0
  Author: James Clarke <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64

Fixes: https://bugs.launchpad.net/qemu/+bug/1716767
Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-By: John Paul Adrian Glaubitz <address@hidden>
Signed-off-by: James Clarke <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: a4dd3d5172c951e05a7424f14c0f9372522b48f8
      
https://github.com/qemu/qemu/commit/a4dd3d5172c951e05a7424f14c0f9372522b48f8
  Author: Emilio G. Cota <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fix 'finshed' typo in comment

Signed-off-by: Emilio G. Cota <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: a8b154a637b586441bad42259a8a9b9619cd117c
      
https://github.com/qemu/qemu/commit/a8b154a637b586441bad42259a8a9b9619cd117c
  Author: James Cowgill <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: return EINVAL from prctl(PR_*_SECCOMP)

If an application tries to install a seccomp filter using
prctl(PR_SET_SECCOMP), the filter is likely for the target instead of the host
architecture. This will probably cause qemu to be immediately killed when it
executes another syscall.

Prevent this from happening by returning EINVAL from both seccomp prctl
calls. This is the error returned by the kernel when seccomp support is
disabled.

Fixes: https://bugs.launchpad.net/qemu/+bug/1726394
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: James Cowgill <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: f2d34df3c1a88a2cf86eb0afc88c369d799ae431
      
https://github.com/qemu/qemu/commit/f2d34df3c1a88a2cf86eb0afc88c369d799ae431
  Author: Peter Maydell <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/main.c

  Log Message:
  -----------
  linux-user/s390x: Mask si_addr for SIGSEGV

For s390x, the address passed to a signal handler in the
siginfo_t si_addr field is masked (in the kernel this is done in
do_sigbus() and do_sigsegv() in arch/s390/mm/fault.c). Implement
this architecture-specific oddity in linux-user.

This is one of the issues described in
https://bugs.launchpad.net/qemu/+bug/1705118

Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: 15e692a6fc716f32976eea47946a4892e8ad7a3f
      
https://github.com/qemu/qemu/commit/15e692a6fc716f32976eea47946a4892e8ad7a3f
  Author: Peter Maydell <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/main.c

  Log Message:
  -----------
  linux-user/ppc: Report correct fault address for data faults

For faults on loads and stores, ppc_cpu_handle_mmu_fault() in
target/ppc/user_only_helper.c stores the offending address
in env->spr[SPR_DAR]. Report this correctly to the guest
in si_addr, rather than incorrectly using the address of the
instruction that caused the fault.

This fixes the test case in
https://bugs.launchpad.net/qemu/+bug/1077116
for ppc, ppc64 and ppc64le.

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: 8d8cb956e0a679fcf0a8e24f1b2f34e038cdd48e
      
https://github.com/qemu/qemu/commit/8d8cb956e0a679fcf0a8e24f1b2f34e038cdd48e
  Author: Peter Maydell <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M target/sparc/mmu_helper.c

  Log Message:
  -----------
  linux-user/sparc: Put address for data faults where linux-user expects it

In the user-mode-only version of sparc_cpu_handle_mmu_fault(),
we must save the fault address for a data fault into the CPU
state's mmu registers, because the code in linux-user/main.c
expects to find it there in order to populate the si_addr
field of the guest siginfo.

Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: 78bfef72fbf8705f002c5c57cf3f1d3b8e83399e
      
https://github.com/qemu/qemu/commit/78bfef72fbf8705f002c5c57cf3f1d3b8e83399e
  Author: Peter Maydell <address@hidden>
  Date:   2017-11-07 (Tue, 07 Nov 2017)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: Handle rt_sigaction correctly for SPARC

SPARC is like Alpha in its handling of the rt_sigaction syscall:
it takes an extra parameter 'restorer' which needs to be copied
into the sa_restorer field of the sigaction struct. The order
of the arguments differs slightly between SPARC and Alpha but
the implementation is otherwise the same. (Compare the
rt_sigaction() functions in arch/sparc/kernel/sys_sparc_64.c
and arch/alpha/kernel/signal.c.)

Note that this change is somewhat moot until SPARC acquires
support for actually delivering RT signals.

Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: f516511ea84d8bb3395d6ea95a7c7b80dc2a05e9
      
https://github.com/qemu/qemu/commit/f516511ea84d8bb3395d6ea95a7c7b80dc2a05e9
  Author: Peter Maydell <address@hidden>
  Date:   2017-11-20 (Mon, 20 Nov 2017)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: Fix calculation of auxv length

In commit 7c4ee5bcc82e643 we changed the order in which we construct
the AUXV, but forgot to adjust the calculation of the length. The
result is that we set info->auxv_len to a bogus and negative value,
and then later on the code in open_self_auxv() gets confused and
ends up presenting the guest with an empty file.

Since we now have to calculate the auxv length up-front as part
of figuring out how much we're going to put on the stack, set
info->auxv_len then; this allows us to assert that we put the
same number of entries into auxv as we pre-calculated, rather
than merely having a comment saying we need to do that.

Fixes: https://bugs.launchpad.net/qemu/+bug/1728116

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>


  Commit: 1b4e6e8cf8d8ff6ba3fd71eb41051ac2621ace7e
      
https://github.com/qemu/qemu/commit/1b4e6e8cf8d8ff6ba3fd71eb41051ac2621ace7e
  Author: Peter Maydell <address@hidden>
  Date:   2017-11-21 (Tue, 21 Nov 2017)

  Changed paths:
    M linux-user/elfload.c
    M linux-user/hppa/syscall_nr.h
    M linux-user/hppa/target_cpu.h
    M linux-user/main.c
    M linux-user/signal.c
    M linux-user/syscall.c
    M linux-user/syscall_defs.h
    M target/sparc/mmu_helper.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/riku/tags/pull-linux-user-20171120' 
into staging

late linux-user fixes for Qemu 2.11

# gpg: Signature made Mon 20 Nov 2017 21:19:00 GMT
# gpg:                using RSA key 0xB44890DEDE3C9BC0
# gpg: Good signature from "Riku Voipio <address@hidden>"
# gpg:                 aka "Riku Voipio <address@hidden>"
# Primary key fingerprint: FF82 03C8 C391 98AE 0581  41EF B448 90DE DE3C 9BC0

* remotes/riku/tags/pull-linux-user-20171120:
  linux-user: Fix calculation of auxv length
  linux-user: Handle rt_sigaction correctly for SPARC
  linux-user/sparc: Put address for data faults where linux-user expects it
  linux-user/ppc: Report correct fault address for data faults
  linux-user/s390x: Mask si_addr for SIGSEGV
  linux-user: return EINVAL from prctl(PR_*_SECCOMP)
  linux-user: fix 'finshed' typo in comment
  linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64
  linux-user: Handle TARGET_MAP_STACK and TARGET_MAP_HUGETLB
  linux-user/hppa: Fix TARGET_F_RDLCK, TARGET_F_WRLCK, TARGET_F_UNLCK
  linux-user/hppa: Fix TARGET_MAP_TYPE
  linux-user/hppa: Fix typo for TARGET_NR_epoll_wait
  linux-user/hppa: Fix cpu_clone_regs
  linux-user/hppa: Fix TARGET_SA_* defines
  linux-user: Restrict usage of sa_restorer

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/5f49d73cb3c5...1b4e6e8cf8d8

reply via email to

[Prev in Thread] Current Thread [Next in Thread]