Skip to content

Commit

Permalink
linux-user/hppa: lock both words of function descriptor
Browse files Browse the repository at this point in the history
The code in setup_rt_frame reads two words at haddr, but locks only one.
This patch fixes it to lock both.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Acked-by: Helge Deller <deller@gmx.de>
Cc: qemu-stable@nongnu.org
Signed-off-by: Helge Deller <deller@gmx.de>
  • Loading branch information
Mikulas Patocka authored and hdeller committed Sep 19, 2023
1 parent 2529497 commit 5b1270e
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions linux-user/hppa/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,12 +149,13 @@ void setup_rt_frame(int sig, struct target_sigaction *ka,
target_ulong *fdesc, dest;

haddr &= -4;
if (!lock_user_struct(VERIFY_READ, fdesc, haddr, 1)) {
fdesc = lock_user(VERIFY_READ, haddr, 2 * sizeof(target_ulong), 1);
if (!fdesc) {
goto give_sigsegv;
}
__get_user(dest, fdesc);
__get_user(env->gr[19], fdesc + 1);
unlock_user_struct(fdesc, haddr, 1);
unlock_user(fdesc, haddr, 0);
haddr = dest;
}
env->iaoq_f = haddr;
Expand Down

0 comments on commit 5b1270e

Please sign in to comment.